aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlban Peignier2016-05-05 15:12:50 +0200
committerAlban Peignier2016-05-05 15:12:50 +0200
commit89092ca98ba6d1d692871db3e4b46f31dc9336ed (patch)
tree58bb3497c5e5075fdc7371254a15d26e96f3b63b
parent5738eb19462f489b541f38f86b449c4c2b0e6e66 (diff)
downloadchouette-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.rb12
-rw-r--r--app/views/rule_parameter_sets/_column_fields.html.erb6
-rw-r--r--app/views/rule_parameter_sets/_form.html.erb10
-rw-r--r--app/views/rule_parameter_sets/show.html.erb18
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>