diff options
| -rw-r--r-- | app/controllers/imports_controller.rb | 15 | ||||
| -rw-r--r-- | app/models/import.rb | 8 | ||||
| -rw-r--r-- | app/views/imports/_import.erb | 3 | ||||
| -rw-r--r-- | app/views/imports/index.html.erb | 2 | ||||
| -rw-r--r-- | app/views/imports/rule_parameter_set.html.erb | 161 | ||||
| -rw-r--r-- | config/locales/imports.en.yml | 1 | ||||
| -rw-r--r-- | config/locales/imports.fr.yml | 1 | ||||
| -rw-r--r-- | config/routes.rb | 2 |
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 |
