diff options
| author | Alban Peignier | 2016-05-05 15:12:50 +0200 |
|---|---|---|
| committer | Alban Peignier | 2016-05-05 15:12:50 +0200 |
| commit | 89092ca98ba6d1d692871db3e4b46f31dc9336ed (patch) | |
| tree | 58bb3497c5e5075fdc7371254a15d26e96f3b63b | |
| parent | 5738eb19462f489b541f38f86b449c4c2b0e6e66 (diff) | |
| download | chouette-core-89092ca98ba6d1d692871db3e4b46f31dc9336ed.tar.bz2 | |
Use RuleParameterSet.validable_object_names instead of RuleParameterSet.validable_objects in views. Refs #829
| -rw-r--r-- | app/models/rule_parameter_set.rb | 12 | ||||
| -rw-r--r-- | app/views/rule_parameter_sets/_column_fields.html.erb | 6 | ||||
| -rw-r--r-- | app/views/rule_parameter_sets/_form.html.erb | 10 | ||||
| -rw-r--r-- | 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 @@ <td></td> - <td><%= t("activerecord.attributes.#{obj.table_name.singularize}.#{column}") %></td> - <% suffix = "column_#{column}_object_#{obj.table_name.singularize}"%> + <td><%= t("activerecord.attributes.#{object_name}.#{column}") %></td> + <% suffix = "column_#{column}_object_#{object_name}"%> <td> <%= f.check_box "unique_#{suffix}".to_sym, :class => "special" %></td> - <% if obj.columns_hash[column].type == :string %> + <% if RuleParameterSet.validable_column_type(object_name, column) == :string %> <td><%= 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"]]) %></td> <% else %> <td><%= t "rule_parameter_sets.labels.num_char" %></td> 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") %> <table class="table table-bordered table-condensed"> - <% RuleParameterSet.validable_objects.each do |obj| %> + <% RuleParameterSet.validable_object_names.each do |object_name| %> <thead> <tr> - <th> <%= form.check_box "check_#{obj.table_name.singularize}".to_sym, :class => "special" %> <%= t("activerecord.models.#{obj.table_name.singularize}.one") %></th> + <th><%= form.check_box "check_#{object_name}".to_sym, :class => "special" %> <%= t("activerecord.models.#{object_name}.one") %></th> <th><%= RuleParameterSet.human_attribute_name("attribute") %></th> <th><%= RuleParameterSet.human_attribute_name("unique") %></th> <th><%= RuleParameterSet.human_attribute_name("string_type") %></th> @@ -58,9 +58,9 @@ </tr> </thead> <tbody> - <% RuleParameterSet.validable_columns[obj.table_name.singularize].each do |col| %> - <tr class="<%= "columns_for_#{obj.table_name}" %>"> - <%= render :partial => "column_fields", :locals => { :f => form, :obj => obj, :column => col} %> + <% RuleParameterSet.validable_columns[object_name].each do |col| %> + <tr class="<%= "columns_for_#{object_name.pluralize}" %>"> + <%= render :partial => "column_fields", :locals => { :f => form, :object_name => object_name, :column => col} %> </tr> <% end %> </tbody> 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 %> </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 %> @@ -127,11 +127,11 @@ <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) %> + <% RuleParameterSet.validable_object_names.each do |object_name| %> + <% if @rule_parameter_set.selected(object_name) %> <thead> <tr> - <th> <%= t("activerecord.models.#{obj.table_name.singularize}.one") %></th> + <th> <%= t("activerecord.models.#{object_name}.one") %></th> <th><%= RuleParameterSet.human_attribute_name("attribute") %></th> <th><%= RuleParameterSet.human_attribute_name("unique") %></th> <th><%= RuleParameterSet.human_attribute_name("string_type") %></th> @@ -140,12 +140,12 @@ </tr> </thead> <tbody> - <% 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)%> <tr> <td></td> - <td><%= t("activerecord.attributes.#{obj.table_name.singularize}.#{col}") %></td> - <% suffix = "column_#{col}_object_#{obj.table_name.singularize}"%> + <td><%= t("activerecord.attributes.#{object_name}.#{col}") %></td> + <% suffix = "column_#{col}_object_#{object_name}"%> <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> |
