From 89092ca98ba6d1d692871db3e4b46f31dc9336ed Mon Sep 17 00:00:00 2001 From: Alban Peignier Date: Thu, 5 May 2016 15:12:50 +0200 Subject: Use RuleParameterSet.validable_object_names instead of RuleParameterSet.validable_objects in views. Refs #829 --- app/models/rule_parameter_set.rb | 12 ++++++++++++ app/views/rule_parameter_sets/_column_fields.html.erb | 6 +++--- app/views/rule_parameter_sets/_form.html.erb | 10 +++++----- app/views/rule_parameter_sets/show.html.erb | 18 +++++++++--------- 4 files changed, 29 insertions(+), 17 deletions(-) diff --git a/app/models/rule_parameter_set.rb b/app/models/rule_parameter_set.rb index 1a32bbae2..ba13b6d27 100644 --- a/app/models/rule_parameter_set.rb +++ b/app/models/rule_parameter_set.rb @@ -48,6 +48,18 @@ class RuleParameterSet < ActiveRecord::Base 'vehicle_journey' => ['objectid','published_journey_name','published_journey_identifier','number'] } end + @@objects_by_name = Hash[[validable_object_names, validable_objects].transpose].freeze + + def self.validable_object_class(object_name) + @@objects_by_name[object_name] + end + + def self.validable_column_type(object_name, column) + if object_class = validable_object_class(object_name) + object_class.columns_hash[column].try(:type) + end + end + def self.column_attribute_prefixes %w( unique pattern min_size max_size ) end diff --git a/app/views/rule_parameter_sets/_column_fields.html.erb b/app/views/rule_parameter_sets/_column_fields.html.erb index abb2af4a8..0a9c70f96 100644 --- a/app/views/rule_parameter_sets/_column_fields.html.erb +++ b/app/views/rule_parameter_sets/_column_fields.html.erb @@ -1,8 +1,8 @@ - <%= t("activerecord.attributes.#{obj.table_name.singularize}.#{column}") %> - <% suffix = "column_#{column}_object_#{obj.table_name.singularize}"%> + <%= t("activerecord.attributes.#{object_name}.#{column}") %> + <% suffix = "column_#{column}_object_#{object_name}"%> <%= f.check_box "unique_#{suffix}".to_sym, :class => "special" %> - <% if obj.columns_hash[column].type == :string %> + <% if RuleParameterSet.validable_column_type(object_name, column) == :string %> <%= f.select "pattern_#{suffix}".to_sym, options_for_select([[t("rule_parameter_sets.labels.free_char"), "0"], [t("rule_parameter_sets.labels.num_char"), "1"], [t("rule_parameter_sets.labels.alpha_char"), "2"], [t("rule_parameter_sets.labels.upper_char"), "3"], [t("rule_parameter_sets.labels.lower_char"), "4"]]) %> <% else %> <%= t "rule_parameter_sets.labels.num_char" %> diff --git a/app/views/rule_parameter_sets/_form.html.erb b/app/views/rule_parameter_sets/_form.html.erb index a2d1c2bc1..95316a42f 100644 --- a/app/views/rule_parameter_sets/_form.html.erb +++ b/app/views/rule_parameter_sets/_form.html.erb @@ -46,10 +46,10 @@ <%= t("rule_parameter_sets.labels.columns_restrictions") %> - <% RuleParameterSet.validable_objects.each do |obj| %> + <% RuleParameterSet.validable_object_names.each do |object_name| %> - + @@ -58,9 +58,9 @@ - <% RuleParameterSet.validable_columns[obj.table_name.singularize].each do |col| %> - "> - <%= render :partial => "column_fields", :locals => { :f => form, :obj => obj, :column => col} %> + <% RuleParameterSet.validable_columns[object_name].each do |col| %> + "> + <%= render :partial => "column_fields", :locals => { :f => form, :object_name => object_name, :column => col} %> <% end %> diff --git a/app/views/rule_parameter_sets/show.html.erb b/app/views/rule_parameter_sets/show.html.erb index 335e0ae33..626fb295c 100644 --- a/app/views/rule_parameter_sets/show.html.erb +++ b/app/views/rule_parameter_sets/show.html.erb @@ -108,13 +108,13 @@ <% end %> <% end %> - + <% Chouette::Line.transport_modes.map(&:to_s).each do |mode| %> <% if @rule_parameter_set.allowed(mode) %> <% RuleParameterSet.mode_attribute_prefixes.each do |prefix| %> - + <% unless prefix == "allowed_transport" %> <% end %> @@ -127,11 +127,11 @@
<%= form.check_box "check_#{obj.table_name.singularize}".to_sym, :class => "special" %> <%= t("activerecord.models.#{obj.table_name.singularize}.one") %><%= form.check_box "check_#{object_name}".to_sym, :class => "special" %> <%= t("activerecord.models.#{object_name}.one") %> <%= RuleParameterSet.human_attribute_name("attribute") %> <%= RuleParameterSet.human_attribute_name("unique") %> <%= RuleParameterSet.human_attribute_name("string_type") %>
<%= t("transport_modes.label.#{mode}") %><%= @rule_parameter_set.send "#{prefix}_mode_#{mode}" %>
- <% RuleParameterSet.validable_objects.each do |obj| %> - <% if @rule_parameter_set.selected(obj.table_name.singularize) %> + <% RuleParameterSet.validable_object_names.each do |object_name| %> + <% if @rule_parameter_set.selected(object_name) %> - + @@ -140,12 +140,12 @@ - <% RuleParameterSet.validable_columns[obj.table_name.singularize].each do |col| %> - <% if @rule_parameter_set.selected_column(obj.table_name.singularize,col)%> + <% RuleParameterSet.validable_columns[object_name].each do |col| %> + <% if @rule_parameter_set.selected_column(object_name,col)%> - - <% suffix = "column_#{col}_object_#{obj.table_name.singularize}"%> + + <% suffix = "column_#{col}_object_#{object_name}"%> -- cgit v1.2.3
<%= t("activerecord.models.#{obj.table_name.singularize}.one") %> <%= t("activerecord.models.#{object_name}.one") %> <%= RuleParameterSet.human_attribute_name("attribute") %> <%= RuleParameterSet.human_attribute_name("unique") %> <%= RuleParameterSet.human_attribute_name("string_type") %>
<%= t("activerecord.attributes.#{obj.table_name.singularize}.#{col}") %><%= t("activerecord.attributes.#{object_name}.#{col}") %><%= unique(@rule_parameter_set.send "unique_#{suffix}".to_sym) %> <%= pattern(@rule_parameter_set.send "pattern_#{suffix}".to_sym) %> <%= @rule_parameter_set.send "min_size_#{suffix}".to_sym %>