aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--app/controllers/imports_controller.rb15
-rw-r--r--app/models/import.rb8
-rw-r--r--app/views/imports/_import.erb3
-rw-r--r--app/views/imports/index.html.erb2
-rw-r--r--app/views/imports/rule_parameter_set.html.erb161
-rw-r--r--config/locales/imports.en.yml1
-rw-r--r--config/locales/imports.fr.yml1
-rw-r--r--config/routes.rb2
8 files changed, 187 insertions, 6 deletions
diff --git a/app/controllers/imports_controller.rb b/app/controllers/imports_controller.rb
index a8a1636c7..51607b835 100644
--- a/app/controllers/imports_controller.rb
+++ b/app/controllers/imports_controller.rb
@@ -1,10 +1,11 @@
+# coding: utf-8
require 'will_paginate/array'
require 'open-uri'
class ImportsController < ChouetteController
defaults :resource_class => Import
- respond_to :html, :only => [:show, :index, :destroy, :imported_file]
+ respond_to :html, :only => [:show, :index, :destroy, :imported_file, :rule_parameter_set]
respond_to :js, :only => [:show, :index]
belongs_to :referential
@@ -51,6 +52,18 @@ class ImportsController < ChouetteController
redirect_to referential_path(@referential)
end
end
+
+ def rule_parameter_set
+ begin
+ build_breadcrumb :show
+ @rule_parameter_set = RuleParameterSet.new(:name => "").tap{ |rps| rps.parameters = resource.rule_parameter_set["validation"] }
+ render "rule_parameter_set"
+ rescue Ievkit::Error => error
+ logger.error("Iev failure : #{error.message}")
+ flash[:error] = t('iev.failure')
+ redirect_to referential_path(@referential)
+ end
+ end
protected
alias_method :import, :resource
diff --git a/app/models/import.rb b/app/models/import.rb
index 4fc5e7685..ade1f5eb6 100644
--- a/app/models/import.rb
+++ b/app/models/import.rb
@@ -1,3 +1,5 @@
+require 'open-uri'
+
class Import
extend Enumerize
extend ActiveModel::Naming
@@ -22,7 +24,7 @@ class Import
report_path = links["action_report"]
if report_path
response = Ievkit.get(report_path)
- ImportReport.new(response, id)
+ ImportReport.new(response)
else
raise Ievkit::IevError("Impossible to access report path link for import")
end
@@ -31,9 +33,9 @@ class Import
def rule_parameter_set
rule_parameter_set_path = links["validation_params"]
if rule_parameter_set_path
- response = Ievkit.get(rule_parameter_set_path)
+ ::JSON.load( open(rule_parameter_set_path).read )
else
- raise Ievkit::Error("Impossible to access rule parameter set path link for import")
+ false
end
end
diff --git a/app/views/imports/_import.erb b/app/views/imports/_import.erb
index 80c14ffb2..89669bdf1 100644
--- a/app/views/imports/_import.erb
+++ b/app/views/imports/_import.erb
@@ -17,6 +17,9 @@
</div>
<div class="panel-body">
<p><%= link_to image_tag("icons/file_#{import.filename_extension}.png") + t("imports.show.imported_file"), imported_file_referential_import_path(@referential, import.id) %></p>
+ <% if import.rule_parameter_set %>
+ <p><%= link_to image_tag("icons/link_page.png") + t("imports.show.rule_parameter_set"), rule_parameter_set_referential_import_path(@referential, import.id) %></p>
+ <% end %>
</div>
<div class="panel-footer">
<%= progress_bar_tag(import) %>
diff --git a/app/views/imports/index.html.erb b/app/views/imports/index.html.erb
index 1e29af1d2..6699819b8 100644
--- a/app/views/imports/index.html.erb
+++ b/app/views/imports/index.html.erb
@@ -7,6 +7,6 @@
<% content_for :sidebar do %>
<ul class="actions">
<li><%= link_to t('imports.actions.new'), new_referential_import_task_path(@referential), :class => "add" %></li>
- <li><%= link_to t('rule_parameter_sets.actions.index'), referential_rule_parameter_sets_path(@referential), :class => "link" %></li>
+ <li><%= link_to t('rule_parameter_sets.actions.index'), organisation_rule_parameter_sets_path, :class => "link" %></li>
</ul>
<% end %>
diff --git a/app/views/imports/rule_parameter_set.html.erb b/app/views/imports/rule_parameter_set.html.erb
new file mode 100644
index 000000000..7c3677140
--- /dev/null
+++ b/app/views/imports/rule_parameter_set.html.erb
@@ -0,0 +1,161 @@
+<%= title_tag t('rule_parameter_sets.show.title', :rule_parameter_set => @rule_parameter_set.name ) %>
+
+<div class="rule_parameter_set_show">
+
+ <div class="summary">
+ <p>
+ <label><%= RuleParameterSet.human_attribute_name("stop_areas_area") %>: </label>
+ <%= @rule_parameter_set.stop_areas_area %>
+ </p>
+ <div class="attributes_group" >
+ <span class="title"><%= t(".min_distance") %></span>
+ <div class="columns">
+ <div class="two_columns">
+ <label><%= t(".inter_stop_area_distance_min") %> : </label>
+ <span class="value"><%= @rule_parameter_set.inter_stop_area_distance_min %></span>
+ </div>
+ <div class="two_columns">
+ <label><%= t(".inter_access_point_distance_min") %> : </label>
+ <span class="value"><%= @rule_parameter_set.inter_access_point_distance_min %></span>
+ </div>
+ </div>
+ </div>
+ <div class="attributes_group" >
+ <span class="title"><%= t(".max_distance") %></span>
+ <div class="columns">
+ <div class="two_columns">
+ <label><%= t(".parent_stop_area_distance_max") %>: </label>
+ <span class="value"><%= @rule_parameter_set.parent_stop_area_distance_max %></span>
+ </div>
+ <div class="two_columns">
+ <label><%= t(".inter_connection_link_distance_max") %>: </label>
+ <span class="value"><%= @rule_parameter_set.inter_connection_link_distance_max %></span>
+ </div>
+ </div>
+ <div class="columns">
+ <div class="two_columns">
+ <label><%= t(".inter_access_link_distance_max") %>: </label>
+ <span class="value"><%= @rule_parameter_set.inter_access_link_distance_max %></span>
+ </div>
+ <div class="two_columns">
+ <label><%= t(".facility_stop_area_distance_max") %>: </label>
+ <span class="value"><%= @rule_parameter_set.facility_stop_area_distance_max %></span>
+ </div>
+ </div>
+ </div>
+ <div class="attributes_group" >
+ <span class="title"><%= t(".walk_speed") %></span>
+ <div class="columns">
+ <div class="four_columns">
+ <label><%= t(".walk_default_speed_max") %>: </label>
+ <span class="value"><%= @rule_parameter_set.walk_default_speed_max %></span>
+ </div>
+ <div class="four_columns">
+ <label><%= t(".walk_occasional_traveller_speed_max") %>: </label>
+ <span class="value"><%= @rule_parameter_set.walk_occasional_traveller_speed_max %></span>
+ </div>
+ <div class="four_columns">
+ <label><%= t(".walk_frequent_traveller_speed_max") %>: </label>
+ <span class="value"><%= @rule_parameter_set.walk_frequent_traveller_speed_max %></span>
+ </div>
+ <div class="four_columns">
+ <label><%= t(".walk_mobility_restricted_traveller_speed_max") %>: </label>
+ <span class="value"><%= @rule_parameter_set.walk_mobility_restricted_traveller_speed_max %></span>
+ </div>
+ </div>
+ </div>
+ <p>
+ <label><%= t(".inter_stop_duration_max") %>: </label>
+ <%= @rule_parameter_set.inter_stop_duration_max %>
+ </p>
+
+ <p>
+ <label><%= RuleParameterSet.human_attribute_name("check_lines_in_groups") %>: </label>
+ <%= boolean_value(@rule_parameter_set.check_lines_in_groups)%>
+ </p>
+
+ <p>
+ <label><%= RuleParameterSet.human_attribute_name("check_line_routes") %>: </label>
+ <%= boolean_value(@rule_parameter_set.check_line_routes) %>
+ </p>
+
+ <p>
+ <label><%= RuleParameterSet.human_attribute_name("check_stop_parent") %>: </label>
+ <%= boolean_value(@rule_parameter_set.check_stop_parent) %>
+ </p>
+
+ <p>
+ <label><%= RuleParameterSet.human_attribute_name("check_connection_link_on_physical") %>: </label>
+ <%= boolean_value(@rule_parameter_set.check_connection_link_on_physical) %>
+ </p>
+
+ </p>
+ <label><%= RuleParameterSet.human_attribute_name("check_allowed_transport_modes") %>: </label>
+ <%= boolean_value(@rule_parameter_set.check_allowed_transport_modes) %>
+ </p>
+
+
+ <div class="rule_parameter_by_mode">
+ <label><%= t(".rule_parameter_by_mode") %>
+ <%= t(".modes_allowed") if @rule_parameter_set.check_allowed_transport_modes %>
+ </label>
+ <table class="table table-striped table-condensed">
+ <tr>
+ <th><%= t("transport_modes.name") %></th>
+ <% RuleParameterSet.mode_attribute_prefixes.each do |prefix| %>
+ <% unless prefix == "allowed_transport" %>
+ <th><%= RuleParameterSet.human_attribute_name(prefix) %></th>
+ <% end %>
+ <% end %>
+ </tr>
+ <% Chouette::Line.transport_modes.map(&:to_s).each do |mode| %>
+ <% if @rule_parameter_set.allowed(mode) %>
+ <tr>
+ <td><%= t("transport_modes.label.#{mode}") %></td>
+ <% RuleParameterSet.mode_attribute_prefixes.each do |prefix| %>
+
+ <% unless prefix == "allowed_transport" %>
+ <td><%= @rule_parameter_set.send "#{prefix}_mode_#{mode}" %></td>
+ <% end %>
+ <% end %>
+ </tr>
+ <% end %>
+ <% end %>
+ </table>
+ </div>
+ <div class="rule_parameter_by_object">
+ <label><%= t("rule_parameter_sets.labels.columns_restrictions") %> </label>
+ <table class="table table-bordered table-condensed">
+ <% RuleParameterSet.validable_objects.each do |obj| %>
+ <% if @rule_parameter_set.selected(obj.table_name.singularize) %>
+ <thead>
+ <tr>
+ <th> <%= t("activerecord.models.#{obj.table_name.singularize}.one") %></th>
+ <th><%= RuleParameterSet.human_attribute_name("attribute") %></th>
+ <th><%= RuleParameterSet.human_attribute_name("unique") %></th>
+ <th><%= RuleParameterSet.human_attribute_name("string_type") %></th>
+ <th><%= RuleParameterSet.human_attribute_name("min_size") %></th>
+ <th><%= RuleParameterSet.human_attribute_name("max_size") %></th>
+ </tr>
+ </thead>
+ <tbody>
+ <% RuleParameterSet.validable_columns[obj.table_name.singularize].each do |col| %>
+ <% if @rule_parameter_set.selected_column(obj.table_name.singularize,col)%>
+ <tr>
+ <td></td>
+ <td><%= t("activerecord.attributes.#{obj.table_name.singularize}.#{col}") %></td>
+ <% suffix = "column_#{col}_object_#{obj.table_name.singularize}"%>
+ <td><%= unique(@rule_parameter_set.send "unique_#{suffix}".to_sym) %></td>
+ <td><%= pattern(@rule_parameter_set.send "pattern_#{suffix}".to_sym) %></td>
+ <td><%= @rule_parameter_set.send "min_size_#{suffix}".to_sym %></td>
+ <td><%= @rule_parameter_set.send "max_size_#{suffix}".to_sym %></td>
+ </tr>
+ <% end %>
+ <% end %>
+ </tbody>
+ <% end %>
+ <% end %>
+ </table>
+ </div>
+ </div>
+</div>
diff --git a/config/locales/imports.en.yml b/config/locales/imports.en.yml
index 512529e8f..e6c82e382 100644
--- a/config/locales/imports.en.yml
+++ b/config/locales/imports.en.yml
@@ -10,6 +10,7 @@ en:
show:
report: "Report"
imported_file: "Imported file"
+ rule_parameter_set: "Rule parameter set"
graph:
files:
title_zip: "Import results for files in zip"
diff --git a/config/locales/imports.fr.yml b/config/locales/imports.fr.yml
index ed350be5a..d95bf50a9 100644
--- a/config/locales/imports.fr.yml
+++ b/config/locales/imports.fr.yml
@@ -10,6 +10,7 @@ fr:
show:
report: "Rapport"
imported_file: "Fichier importé"
+ rule_parameter_set: "Jeu de paramètres"
graph:
files:
title_zip: "Résultat d'import des fichiers du zip"
diff --git a/config/routes.rb b/config/routes.rb
index 5a77f69b9..bc76ab1cf 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -42,7 +42,6 @@ ChouetteIhm::Application.routes.draw do
resources :referentials do
resources :api_keys
- resources :rule_parameter_sets
resources :autocomplete_stop_areas
resources :autocomplete_time_tables
resources :group_of_lines do
@@ -83,6 +82,7 @@ ChouetteIhm::Application.routes.draw do
resources :imports, :only => [:index, :show, :destroy] do
member do
get "imported_file"
+ get "rule_parameter_set"
end
end