diff options
| author | Luc Donnet | 2017-10-14 18:22:45 +0200 |
|---|---|---|
| committer | Luc Donnet | 2017-10-14 18:23:16 +0200 |
| commit | 584bc2b59ecf95ee1021596e8f3583d9af97a5a7 (patch) | |
| tree | d68bc9fefb0102c92e501f9b541987125dc94f29 /app | |
| parent | 16e9fe5e4e75f2df98f0da371062d572fa45a48b (diff) | |
| download | chouette-core-584bc2b59ecf95ee1021596e8f3583d9af97a5a7.tar.bz2 | |
Fix translations for compliance_control type translation, compliance_control validation, compliance_control module
Diffstat (limited to 'app')
| -rw-r--r-- | app/controllers/compliance_controls_controller.rb | 32 | ||||
| -rw-r--r-- | app/models/compliance_control.rb | 13 | ||||
| -rw-r--r-- | app/models/generic_attribute_control/min_max.rb | 3 | ||||
| -rw-r--r-- | app/models/generic_attribute_control/pattern.rb | 8 | ||||
| -rw-r--r-- | app/models/generic_attribute_control/uniqueness.rb | 5 | ||||
| -rw-r--r-- | app/models/vehicle_journey_control/delta.rb | 2 | ||||
| -rw-r--r-- | app/models/vehicle_journey_control/speed.rb | 3 | ||||
| -rw-r--r-- | app/models/vehicle_journey_control/time_table.rb (renamed from app/models/route_control/time_table.rb) | 2 | ||||
| -rw-r--r-- | app/models/vehicle_journey_control/vehicle_journey_at_stops.rb (renamed from app/models/route_control/vehicle_journey_at_stops.rb) | 2 | ||||
| -rw-r--r-- | app/models/vehicle_journey_control/waiting_time.rb | 2 | ||||
| -rw-r--r-- | app/views/compliance_controls/_form.html.slim | 4 | ||||
| -rw-r--r-- | app/views/compliance_controls/select_type.html.slim | 4 | ||||
| -rw-r--r-- | app/views/compliance_controls/show.html.slim | 4 |
13 files changed, 53 insertions, 31 deletions
diff --git a/app/controllers/compliance_controls_controller.rb b/app/controllers/compliance_controls_controller.rb index d7d84afb3..6fe799267 100644 --- a/app/controllers/compliance_controls_controller.rb +++ b/app/controllers/compliance_controls_controller.rb @@ -7,26 +7,42 @@ class ComplianceControlsController < BreadcrumbController end def new - if params[:sti_class] - @compliance_control_set = parent - @compliance_control = params[:sti_class].constantize.new - else + if params[:sti_class].blank? + flash[:notice] = I18n.t("compliance_controls.errors.mandatory_control_type") redirect_to(action: :select_type) end + new! end def create - create! { compliance_control_set_path(parent) } + create! do |success, failure| + success.html { redirect_to compliance_control_set_path(parent) } + failure.html { render( :action => 'new' ) } + end + end + + protected + + alias_method :compliance_control_set, :parent + alias_method :compliance_control, :resource + + def build_resource + @compliance_control ||= compliance_control_class.new compliance_control_set: parent end private + + def compliance_control_class + (params[:sti_class] || params[:compliance_control][:type]).constantize + end + def dynamic_attributes_params - params.require(:compliance_control).permit(:type).values[0].constantize.dynamic_attributes + compliance_control_class.dynamic_attributes end def compliance_control_params base = [:name, :code, :origin_code, :criticity, :comment, :control_attributes, :type, :compliance_control_block_id] - permited = base + dynamic_attributes_params - params.require(:compliance_control).permit(permited) + permitted = base + dynamic_attributes_params + params.require(:compliance_control).permit(permitted) end end diff --git a/app/models/compliance_control.rb b/app/models/compliance_control.rb index 363ef5d61..bfbc075c6 100644 --- a/app/models/compliance_control.rb +++ b/app/models/compliance_control.rb @@ -44,10 +44,11 @@ class ComplianceControl < ActiveRecord::Base end end - before_validation(on: :create) do - self.name ||= self.class.name - self.code ||= self.class.default_code - self.origin_code ||= self.class.default_code + def initialize(attributes = {}) + super + self.name ||= I18n.t("activerecord.models.#{self.class.name.underscore}.one") + self.code ||= self.class.default_code + self.origin_code ||= self.class.default_code end end @@ -67,9 +68,7 @@ require_dependency 'route_control/omnibus_journey_pattern' require_dependency 'route_control/opposite_route_terminus' require_dependency 'route_control/opposite_route' require_dependency 'route_control/stop_points_in_journey_pattern' -require_dependency 'route_control/time_table' require_dependency 'route_control/unactivated_stop_points' -require_dependency 'route_control/vehicle_journey_at_stops' require_dependency 'route_control/zdl_stop_area' require_dependency 'routing_constraint_zone_control/maximum_length' require_dependency 'routing_constraint_zone_control/minimum_length' @@ -77,3 +76,5 @@ require_dependency 'routing_constraint_zone_control/unactivated_stop_point' require_dependency 'vehicle_journey_control/delta' require_dependency 'vehicle_journey_control/waiting_time' require_dependency 'vehicle_journey_control/speed' +require_dependency 'vehicle_journey_control/time_table' +require_dependency 'vehicle_journey_control/vehicle_journey_at_stops' diff --git a/app/models/generic_attribute_control/min_max.rb b/app/models/generic_attribute_control/min_max.rb index 876f56eed..c46ba0453 100644 --- a/app/models/generic_attribute_control/min_max.rb +++ b/app/models/generic_attribute_control/min_max.rb @@ -2,6 +2,9 @@ module GenericAttributeControl class MinMax < ComplianceControl hstore_accessor :control_attributes, minimum: :integer, maximum: :integer, target: :string + validates :minimum, numericality: true, allow_nil: true + validates :maximum, numericality: true, allow_nil: true + #validates :target, presence: true validate :min_max_values def min_max_values true diff --git a/app/models/generic_attribute_control/pattern.rb b/app/models/generic_attribute_control/pattern.rb index 6796da84f..d59f211dc 100644 --- a/app/models/generic_attribute_control/pattern.rb +++ b/app/models/generic_attribute_control/pattern.rb @@ -2,15 +2,13 @@ module GenericAttributeControl class Pattern < ComplianceControl hstore_accessor :control_attributes, pattern: :string, target: :string - validate :pattern_match - def pattern_match - true - end + #validates :target, presence: true + #validates :pattern, presence: true class << self def attribute_type; :string end def default_criticity; :warning end - def default_code; "3-Generic-3" end + def default_code; "3-Generic-1" end end end end diff --git a/app/models/generic_attribute_control/uniqueness.rb b/app/models/generic_attribute_control/uniqueness.rb index f227bf8b6..dbedcd858 100644 --- a/app/models/generic_attribute_control/uniqueness.rb +++ b/app/models/generic_attribute_control/uniqueness.rb @@ -2,10 +2,7 @@ module GenericAttributeControl class Uniqueness < ComplianceControl hstore_accessor :control_attributes, target: :string - validate :unique_values - def unique_values - true - end + #validates :target, presence: true class << self def attribute_type; :string end diff --git a/app/models/vehicle_journey_control/delta.rb b/app/models/vehicle_journey_control/delta.rb index 7be0db261..1f3a4d492 100644 --- a/app/models/vehicle_journey_control/delta.rb +++ b/app/models/vehicle_journey_control/delta.rb @@ -3,6 +3,8 @@ module VehicleJourneyControl hstore_accessor :control_attributes, maximum: :integer + validates :maximum, numericality: true, allow_nil: true + def self.default_code; "3-VehicleJourney-3" end end end diff --git a/app/models/vehicle_journey_control/speed.rb b/app/models/vehicle_journey_control/speed.rb index cc46ee1f9..099a46d1d 100644 --- a/app/models/vehicle_journey_control/speed.rb +++ b/app/models/vehicle_journey_control/speed.rb @@ -2,6 +2,9 @@ module VehicleJourneyControl class Speed < ComplianceControl hstore_accessor :control_attributes, minimum: :integer, maximum: :integer + validates :minimum, numericality: true, allow_nil: true + validates :maximum, numericality: true, allow_nil: true + def self.default_code; "3-VehicleJourney-2" end end end diff --git a/app/models/route_control/time_table.rb b/app/models/vehicle_journey_control/time_table.rb index 069cd0a9e..617ead12b 100644 --- a/app/models/route_control/time_table.rb +++ b/app/models/vehicle_journey_control/time_table.rb @@ -1,4 +1,4 @@ -module RouteControl +module VehicleJourneyControl class TimeTable < ComplianceControl def self.default_code; "3-VehicleJourney-4" end diff --git a/app/models/route_control/vehicle_journey_at_stops.rb b/app/models/vehicle_journey_control/vehicle_journey_at_stops.rb index 7c376a2da..47ee26f82 100644 --- a/app/models/route_control/vehicle_journey_at_stops.rb +++ b/app/models/vehicle_journey_control/vehicle_journey_at_stops.rb @@ -1,4 +1,4 @@ -module RouteControl +module VehicleJourneyControl class VehicleJourneyAtStops < ComplianceControl def self.default_code; "3-VehicleJourney-5" end diff --git a/app/models/vehicle_journey_control/waiting_time.rb b/app/models/vehicle_journey_control/waiting_time.rb index da35bc4a1..68fccb5c1 100644 --- a/app/models/vehicle_journey_control/waiting_time.rb +++ b/app/models/vehicle_journey_control/waiting_time.rb @@ -2,6 +2,8 @@ module VehicleJourneyControl class WaitingTime < ComplianceControl hstore_accessor :control_attributes, maximum: :integer + validates :maximum, numericality: true, allow_nil: true + def self.default_code; "3-VehicleJourney-1" end end end diff --git a/app/views/compliance_controls/_form.html.slim b/app/views/compliance_controls/_form.html.slim index 8c56d145f..1ebbe8802 100644 --- a/app/views/compliance_controls/_form.html.slim +++ b/app/views/compliance_controls/_form.html.slim @@ -2,14 +2,14 @@ .row .col-lg-12 = f.input :name - = f.input :type, as: :select, collection: ComplianceControl.subclasses, disabled: true + = f.input :type, as: :hidden = f.input :code = f.input :criticity = f.association :compliance_control_block, collection: @compliance_control_set.compliance_control_blocks, label_method: :label_method = f.input :comment - f.object.class.dynamic_attributes.each do |attribute| - if attribute == :target - = f.input :target, as: :grouped_select, collection: ModelAttribute.grouped_options(@compliance_control.class.attribute_type), :group_method => :last + = f.input :target, as: :grouped_select, collection: ModelAttribute.grouped_options(@compliance_control.class.attribute_type), group_method: :last, include_blank: false - else = f.input attribute.to_sym end diff --git a/app/views/compliance_controls/select_type.html.slim b/app/views/compliance_controls/select_type.html.slim index 72ac41dc9..a4ae1ed27 100644 --- a/app/views/compliance_controls/select_type.html.slim +++ b/app/views/compliance_controls/select_type.html.slim @@ -12,7 +12,7 @@ = form_tag(new_compliance_control_set_compliance_control_path, method: :get) do - @sti_subclasses.each do |klass| .radio - = radio_button_tag(:sti_class, klass) - = I18n.t("activerecord.models.#{klass.name.underscore}.one") + = radio_button_tag(:sti_class, klass, @sti_subclasses.first) + = "#{klass.default_code} - #{I18n.t("activerecord.models.#{klass.name.underscore}.one")}" .text-right = submit_tag t('compliance_control_sets.actions.loaded'), class: "btn btn-outline-primary" diff --git a/app/views/compliance_controls/show.html.slim b/app/views/compliance_controls/show.html.slim index 7affcf2a3..2cf8051fc 100644 --- a/app/views/compliance_controls/show.html.slim +++ b/app/views/compliance_controls/show.html.slim @@ -16,8 +16,8 @@ ComplianceControl.human_attribute_name(:comment) => @compliance_control.comment, }.merge( \ {}.tap do |hash| \ - @compliance_control.control_attributes.each do |k, v| \ - hash[ComplianceControl.human_attribute_name(k)] = v \ + @compliance_control.class.dynamic_attributes.each do |attribute| \ + hash[ComplianceControl.human_attribute_name(attribute)] = @compliance_control.send(attribute) \ end \ end \ ) |
