diff options
Diffstat (limited to 'app')
19 files changed, 42 insertions, 32 deletions
diff --git a/app/controllers/compliance_controls_controller.rb b/app/controllers/compliance_controls_controller.rb index fc4322c76..d7d84afb3 100644 --- a/app/controllers/compliance_controls_controller.rb +++ b/app/controllers/compliance_controls_controller.rb @@ -25,7 +25,7 @@ class ComplianceControlsController < BreadcrumbController end def compliance_control_params - base = [:name, :code, :origin_code, :criticity, :comment, :control_attributes, :type] + 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) end diff --git a/app/controllers/concerns/ransack_date_filter.rb b/app/controllers/concerns/ransack_date_filter.rb index 9c2755186..0fbde91d3 100644 --- a/app/controllers/concerns/ransack_date_filter.rb +++ b/app/controllers/concerns/ransack_date_filter.rb @@ -1,6 +1,5 @@ module RansackDateFilter extend ActiveSupport::Concern - cattr_accessor :date_param included do diff --git a/app/helpers/lines_helper.rb b/app/helpers/lines_helper.rb index e5062e43f..e9a4bd3c5 100644 --- a/app/helpers/lines_helper.rb +++ b/app/helpers/lines_helper.rb @@ -5,14 +5,6 @@ module LinesHelper line.number end - def sorted_transport_submode - Chouette::Line.transport_submodes.sort_by{|m| t("enumerize.transport_submode.#{m}").parameterize } - end - - def sorted_transport_mode - Chouette::Line.transport_modes.sort_by{|m| t("enumerize.transport_mode.#{m}").parameterize } - end - def colors?(line) line.text_color.present? || line.color.present? end diff --git a/app/models/compliance_control.rb b/app/models/compliance_control.rb index e859aaba0..33a075e40 100644 --- a/app/models/compliance_control.rb +++ b/app/models/compliance_control.rb @@ -3,7 +3,7 @@ class ComplianceControl < ActiveRecord::Base belongs_to :compliance_control_set belongs_to :compliance_control_block - enumerize :criticity, in: %i(info warning error), scope: true, default: :info + enumerize :criticity, in: %i(warning error), scope: true, default: :warning hstore_accessor :control_attributes, {} validates :criticity, presence: true @@ -55,7 +55,6 @@ require_dependency 'route_control/minimum_length' require_dependency 'route_control/omnibus_journey_pattern' require_dependency 'route_control/opposite_route_terminus' require_dependency 'route_control/opposite_route' -require_dependency 'route_control/speed' require_dependency 'route_control/stop_points_in_journey_pattern' require_dependency 'route_control/time_table' require_dependency 'route_control/unactivated_stop_points' @@ -66,3 +65,4 @@ require_dependency 'routing_constraint_zone_control/minimum_length' 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' diff --git a/app/models/compliance_control_block.rb b/app/models/compliance_control_block.rb index 5721c00f4..2be8d98a0 100644 --- a/app/models/compliance_control_block.rb +++ b/app/models/compliance_control_block.rb @@ -12,4 +12,7 @@ class ComplianceControlBlock < ActiveRecord::Base validates :transport_mode, presence: true validates :compliance_control_set, presence: true + def label_method + [transport_mode, transport_submode].compact.map {|x| "[#{x}]"}.join + end end diff --git a/app/models/concerns/stif_transport_mode_enumerations.rb b/app/models/concerns/stif_transport_mode_enumerations.rb index dc573b3a0..676154f73 100644 --- a/app/models/concerns/stif_transport_mode_enumerations.rb +++ b/app/models/concerns/stif_transport_mode_enumerations.rb @@ -1,10 +1,15 @@ module StifTransportModeEnumerations extend ActiveSupport::Concern extend Enumerize + extend self enumerize :transport_mode, in: %w(air bus coach ferry metro rail trolleyBus tram water cableway funicular other) def transport_modes - StifTransportModeEnumerations.transport_mode.options.map(&:first) + StifTransportModeEnumerations.transport_mode.values + end + + def sorted_transport_modes + self.transport_modes.sort_by{|m| I18n.t("enumerize.transport_mode.#{m}").parameterize } end end diff --git a/app/models/concerns/stif_transport_submode_enumerations.rb b/app/models/concerns/stif_transport_submode_enumerations.rb index a150381f3..6322b2dae 100644 --- a/app/models/concerns/stif_transport_submode_enumerations.rb +++ b/app/models/concerns/stif_transport_submode_enumerations.rb @@ -1,10 +1,15 @@ module StifTransportSubmodeEnumerations extend ActiveSupport::Concern extend Enumerize + extend self enumerize :transport_submode, in: %w(unknown undefined internationalFlight domesticFlight intercontinentalFlight domesticScheduledFlight shuttleFlight intercontinentalCharterFlight internationalCharterFlight roundTripCharterFlight sightseeingFlight helicopterService domesticCharterFlight SchengenAreaFlight airshipService shortHaulInternationalFlight canalBarge localBus regionalBus expressBus nightBus postBus specialNeedsBus mobilityBus mobilityBusForRegisteredDisabled sightseeingBus shuttleBus highFrequencyBus dedicatedLaneBus schoolBus schoolAndPublicServiceBus railReplacementBus demandAndResponseBus airportLinkBus internationalCoach nationalCoach shuttleCoach regionalCoach specialCoach schoolCoach sightseeingCoach touristCoach commuterCoach metro tube urbanRailway local highSpeedRail suburbanRailway regionalRail interregionalRail longDistance intermational sleeperRailService nightRail carTransportRailService touristRailway railShuttle replacementRailService specialTrain crossCountryRail rackAndPinionRailway cityTram localTram regionalTram sightseeingTram shuttleTram trainTram internationalCarFerry nationalCarFerry regionalCarFerry localCarFerry internationalPassengerFerry nationalPassengerFerry regionalPassengerFerry localPassengerFerry postBoat trainFerry roadFerryLink airportBoatLink highSpeedVehicleService highSpeedPassengerService sightseeingService schoolBoat cableFerry riverBus scheduledFerry shuttleFerryService telecabin cableCar lift chairLift dragLift telecabinLink funicular streetCableCar allFunicularServices undefinedFunicular) def transport_submodes - StifTransportSubmodeEnumerations.transport_submode.options.map(&:first) + StifTransportSubmodeEnumerations.transport_submode.values + end + + def sorted_transport_submodes + self.transport_submodes.sort_by{|m| I18n.t("enumerize.transport_submode.#{m}").parameterize } end end diff --git a/app/models/generic_attribute_control/min_max.rb b/app/models/generic_attribute_control/min_max.rb index 452d1d889..876f56eed 100644 --- a/app/models/generic_attribute_control/min_max.rb +++ b/app/models/generic_attribute_control/min_max.rb @@ -1,6 +1,6 @@ module GenericAttributeControl class MinMax < ComplianceControl - hstore_accessor :control_attributes, minimum: :integer, maximum: :integer + hstore_accessor :control_attributes, minimum: :integer, maximum: :integer, target: :string validate :min_max_values def min_max_values @@ -8,6 +8,7 @@ module GenericAttributeControl end class << self + def attribute_type; :integer end def default_criticity; :warning end def default_code; "3-Generic-2" end end diff --git a/app/models/generic_attribute_control/pattern.rb b/app/models/generic_attribute_control/pattern.rb index 72bb1770a..6796da84f 100644 --- a/app/models/generic_attribute_control/pattern.rb +++ b/app/models/generic_attribute_control/pattern.rb @@ -1,6 +1,6 @@ module GenericAttributeControl class Pattern < ComplianceControl - hstore_accessor :control_attributes, value: :string, pattern: :string + hstore_accessor :control_attributes, pattern: :string, target: :string validate :pattern_match def pattern_match @@ -8,6 +8,7 @@ module GenericAttributeControl end class << self + def attribute_type; :string end def default_criticity; :warning end def default_code; "3-Generic-3" end end diff --git a/app/models/generic_attribute_control/uniqueness.rb b/app/models/generic_attribute_control/uniqueness.rb index 6ffe78565..f227bf8b6 100644 --- a/app/models/generic_attribute_control/uniqueness.rb +++ b/app/models/generic_attribute_control/uniqueness.rb @@ -1,6 +1,6 @@ module GenericAttributeControl class Uniqueness < ComplianceControl - hstore_accessor :control_attributes, name: :string + hstore_accessor :control_attributes, target: :string validate :unique_values def unique_values @@ -8,6 +8,7 @@ module GenericAttributeControl end class << self + def attribute_type; :string end def default_criticity; :warning end def default_code; "3-Generic-3" end end diff --git a/app/models/vehicle_journey_control/delta.rb b/app/models/vehicle_journey_control/delta.rb index 797072fdd..7be0db261 100644 --- a/app/models/vehicle_journey_control/delta.rb +++ b/app/models/vehicle_journey_control/delta.rb @@ -1,7 +1,7 @@ module VehicleJourneyControl class Delta < ComplianceControl - hstore_accessor :control_attributes, delta: :integer + hstore_accessor :control_attributes, maximum: :integer def self.default_code; "3-VehicleJourney-3" end end diff --git a/app/models/route_control/speed.rb b/app/models/vehicle_journey_control/speed.rb index d5798d153..cc46ee1f9 100644 --- a/app/models/route_control/speed.rb +++ b/app/models/vehicle_journey_control/speed.rb @@ -1,6 +1,5 @@ -module RouteControl +module VehicleJourneyControl class Speed < ComplianceControl - hstore_accessor :control_attributes, minimum: :integer, maximum: :integer def self.default_code; "3-VehicleJourney-2" end diff --git a/app/models/vehicle_journey_control/waiting_time.rb b/app/models/vehicle_journey_control/waiting_time.rb index 614f401bb..da35bc4a1 100644 --- a/app/models/vehicle_journey_control/waiting_time.rb +++ b/app/models/vehicle_journey_control/waiting_time.rb @@ -1,5 +1,6 @@ module VehicleJourneyControl class WaitingTime < ComplianceControl + hstore_accessor :control_attributes, maximum: :integer def self.default_code; "3-VehicleJourney-1" end end diff --git a/app/views/compliance_control_blocks/_form.html.slim b/app/views/compliance_control_blocks/_form.html.slim index 88fa7e98b..2e87a877e 100644 --- a/app/views/compliance_control_blocks/_form.html.slim +++ b/app/views/compliance_control_blocks/_form.html.slim @@ -2,8 +2,8 @@ .row .col-lg-12 .form-group - = f.input :transport_mode, as: :select, collection: ComplianceControlBlock.transport_modes, label: t('activerecord.attributes.compliance_control_blocks.transport_mode') - = f.input :transport_submode, as: :select, collection: ComplianceControlBlock.transport_submodes, label: t('activerecord.attributes.compliance_control_blocks.transport_submode') + = f.input :transport_mode, as: :select, collection: ComplianceControlBlock.sorted_transport_modes, label: t('activerecord.attributes.compliance_control_blocks.transport_mode'), label_method: lambda {|t| ("<span>" + t("enumerize.transport_mode.#{t}") + "</span>").html_safe } + = f.input :transport_submode, as: :select, collection: ComplianceControlBlock.sorted_transport_submodes, label: t('activerecord.attributes.compliance_control_blocks.transport_submode'), label_method: lambda {|t| ("<span>" + t("enumerize.transport_submode.#{t}") + "</span>").html_safe } .separator diff --git a/app/views/compliance_controls/_form.html.slim b/app/views/compliance_controls/_form.html.slim index 559643094..8c56d145f 100644 --- a/app/views/compliance_controls/_form.html.slim +++ b/app/views/compliance_controls/_form.html.slim @@ -5,10 +5,13 @@ = f.input :type, as: :select, collection: ComplianceControl.subclasses, disabled: true = 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| - = f.input attribute.to_sym + - if attribute == :target + = f.input :target, as: :grouped_select, collection: ModelAttribute.grouped_options(@compliance_control.class.attribute_type), :group_method => :last + - else + = f.input attribute.to_sym end .separator diff --git a/app/views/lines/_filters.html.slim b/app/views/lines/_filters.html.slim index 01c2da58f..7662c41b5 100644 --- a/app/views/lines/_filters.html.slim +++ b/app/views/lines/_filters.html.slim @@ -17,11 +17,11 @@ .form-group.togglable = f.label Chouette::Line.human_attribute_name(:transport_mode), required: false, class: 'control-label' - = f.input :transport_mode_eq_any, collection: sorted_transport_mode, as: :check_boxes, label: false, label_method: lambda{|l| ("<span>" + t("enumerize.transport_mode.#{l}") + "</span>").html_safe}, required: false, wrapper_html: { class: 'checkbox_list'} + = f.input :transport_mode_eq_any, collection: Chouette::Line.sorted_transport_modes, as: :check_boxes, label: false, label_method: lambda{|l| ("<span>" + t("enumerize.transport_mode.#{l}") + "</span>").html_safe}, required: false, wrapper_html: { class: 'checkbox_list'} .form-group.togglable = f.label Chouette::Line.human_attribute_name(:transport_submode), required: false, class: 'control-label' - = f.input :transport_submode_eq_any, collection: sorted_transport_submode, as: :check_boxes, label: false, label_method: lambda{|l| ("<span>" + t("enumerize.transport_submode.#{l}") + "</span>").html_safe}, required: false, wrapper_html: { class: 'checkbox_list'} + = f.input :transport_submode_eq_any, collection: Chouette::Line.sorted_transport_submodes, as: :check_boxes, label: false, label_method: lambda{|l| ("<span>" + t("enumerize.transport_submode.#{l}") + "</span>").html_safe}, required: false, wrapper_html: { class: 'checkbox_list'} .actions = link_to 'Effacer', @workbench, class: 'btn btn-link' diff --git a/app/views/lines/index.html.slim b/app/views/lines/index.html.slim index 4ee91e8f8..87c3a69e7 100644 --- a/app/views/lines/index.html.slim +++ b/app/views/lines/index.html.slim @@ -48,11 +48,11 @@ ), \ TableBuilderHelper::Column.new( \ key: :transport_mode, \ - attribute: Proc.new { |n| n.transport_mode.nil? ? '-' : t("enumerize.transport_mode.#{n.try(:transport_mode)}") } \ + attribute: Proc.new { |n| n.transport_mode.present? ? t("enumerize.transport_mode.#{n.try(:transport_mode)}") : "-" } \ ), \ TableBuilderHelper::Column.new( \ key: :transport_submode, \ - attribute: Proc.new { |n| n.transport_submode.nil? ? '-' : t("enumerize.transport_submode.#{n.try(:transport_submode)}") } \ + attribute: Proc.new { |n| n.transport_submode.present? ? t("enumerize.transport_submode.#{n.try(:transport_submode)}") : "-" } \ ) \ ], links: [:show], diff --git a/app/views/lines/show.html.slim b/app/views/lines/show.html.slim index 201aa2ae4..b16b6472a 100644 --- a/app/views/lines/show.html.slim +++ b/app/views/lines/show.html.slim @@ -27,7 +27,7 @@ 'Transporteur(s) secondaire(s)' => (@line.secondary_companies.nil? ? t('lines.index.unset') : @line.secondary_companies.collect(&:name).join(', ')), 'Nom court' => @line.number, 'Code public' => (@line.registration_number ? @line.registration_number : '-'), - @line.human_attribute_name(:transport_mode) => (@line.transport_mode ? t("enumerize.transport_mode.#{@line.transport_mode}") : '-'), - @line.human_attribute_name(:transport_submode) => (@line.transport_submode ? t("enumerize.transport_submode.#{@line.transport_submode}") : '-'), + @line.human_attribute_name(:transport_mode) => (@line.transport_mode.present? ? t("enumerize.transport_mode.#{@line.transport_mode}") : '-'), + @line.human_attribute_name(:transport_submode) => (@line.transport_submode.present? ? t("enumerize.transport_submode.#{@line.transport_submode}") : '-'), @line.human_attribute_name(:url) => (@line.url ? @line.url : '-'), @line.human_attribute_name(:seasonal) => (@line.seasonal? ? t('true') : t('false')),} diff --git a/app/views/referential_lines/show.html.slim b/app/views/referential_lines/show.html.slim index 06a52a45d..ffcb9b5e0 100644 --- a/app/views/referential_lines/show.html.slim +++ b/app/views/referential_lines/show.html.slim @@ -27,8 +27,8 @@ 'Transporteur(s) secondaire(s)' => (@line.secondary_companies.nil? ? t('lines.index.unset') : @line.secondary_companies.collect(&:name).join(', ')), 'Nom court' => @line.number, 'Code public' => (@line.registration_number ? @line.registration_number : '-'), - @line.human_attribute_name(:transport_mode) => (@line.transport_mode ? t("enumerize.transport_mode.#{@line.transport_mode}") : '-'), - @line.human_attribute_name(:transport_submode) => (@line.transport_submode ? t("enumerize.transport_submode.#{@line.transport_submode}") : '-'), + @line.human_attribute_name(:transport_mode) => (@line.transport_mode.present? ? t("enumerize.transport_mode.#{@line.transport_mode}") : '-'), + @line.human_attribute_name(:transport_submode) => (@line.transport_submode.present? ? t("enumerize.transport_submode.#{@line.transport_submode}") : '-'), @line.human_attribute_name(:url) => (@line.url ? @line.url : '-'), @line.human_attribute_name(:seasonal) => (@line.seasonal? ? t('true') : t('false')),} |
