diff options
Diffstat (limited to 'app')
40 files changed, 366 insertions, 919 deletions
diff --git a/app/controllers/api/v1/netex_imports_controller.rb b/app/controllers/api/v1/netex_imports_controller.rb index fc85e35dd..8e8c48986 100644 --- a/app/controllers/api/v1/netex_imports_controller.rb +++ b/app/controllers/api/v1/netex_imports_controller.rb @@ -30,11 +30,7 @@ module Api def create_netex_import attributes = netex_import_params.merge creator: "Webservice" - if @new_referential.persisted? - attributes = attributes.merge referential_id: @new_referential.id - else - attributes = attributes.merge status: "failed" - end + attributes = attributes.merge referential_id: @new_referential.id @netex_import = NetexImport.new attributes @netex_import.save! diff --git a/app/controllers/compliance_check_sets_controller.rb b/app/controllers/compliance_check_sets_controller.rb index 95dcfbf05..175c22191 100644 --- a/app/controllers/compliance_check_sets_controller.rb +++ b/app/controllers/compliance_check_sets_controller.rb @@ -18,4 +18,35 @@ class ComplianceCheckSetsController < InheritedResources::Base } end end + + def executed + show! do |format| + # But now nobody is aware anymore that `format.html` passes a parameter into the block + format.html { executed_for_html } + end + end + + + private + + # Action Implementation + # --------------------- + + def executed_for_html + @q_checks_form = @compliance_check_set.compliance_checks.ransack(params[:q]) + @compliance_check_set = @compliance_check_set.decorate + compliance_checks = + decorate_compliance_checks( @q_checks_form.result) + .group_by(&:compliance_check_block) + @direct_compliance_checks = compliance_checks.delete nil + @blocks_to_compliance_checks_map = compliance_checks + end + + # Decoration + # ---------- + def decorate_compliance_checks(compliance_checks) + ModelDecorator.decorate( + compliance_checks, + with: ComplianceCheckDecorator) + end end diff --git a/app/controllers/compliance_checks_controller.rb b/app/controllers/compliance_checks_controller.rb index 07438cf99..81749e292 100644 --- a/app/controllers/compliance_checks_controller.rb +++ b/app/controllers/compliance_checks_controller.rb @@ -1,4 +1,4 @@ -class ComplianceChecksController < ChouetteController +class ComplianceChecksController < InheritedResources::Base end diff --git a/app/controllers/compliance_control_sets_controller.rb b/app/controllers/compliance_control_sets_controller.rb index 5c78d09e3..83a345c6f 100644 --- a/app/controllers/compliance_control_sets_controller.rb +++ b/app/controllers/compliance_control_sets_controller.rb @@ -17,17 +17,12 @@ class ComplianceControlSetsController < InheritedResources::Base def show show! do |format| - format.html { - @q_controls_form = @compliance_control_set.compliance_controls.ransack(params[:q]) - @compliance_control_set = @compliance_control_set.decorate - @compliance_controls = - decorate_compliance_controls( @q_controls_form.result) - .group_by(&:compliance_control_block) - @indirect_compliance_controls = @compliance_controls.delete nil - } + # But now nobody is aware anymore that `format.html` passes a parameter into the block + format.html { show_for_html } end end + def clone ComplianceControlSetCloner.new.copy(params[:id], current_organisation.id) flash[:notice] = I18n.t("compliance_control_sets.errors.operation_in_progress") @@ -59,4 +54,14 @@ class ComplianceControlSetsController < InheritedResources::Base def compliance_control_set_params params.require(:compliance_control_set).permit(:name, :id) end + + def show_for_html + @q_controls_form = @compliance_control_set.compliance_controls.ransack(params[:q]) + @compliance_control_set = @compliance_control_set.decorate + compliance_controls = + decorate_compliance_controls( @q_controls_form.result) + .group_by(&:compliance_control_block) + @direct_compliance_controls = compliance_controls.delete nil + @blocks_to_compliance_controls_map = compliance_controls + end end diff --git a/app/controllers/rule_parameter_sets_controller.rb b/app/controllers/rule_parameter_sets_controller.rb deleted file mode 100644 index de4863a08..000000000 --- a/app/controllers/rule_parameter_sets_controller.rb +++ /dev/null @@ -1,53 +0,0 @@ -class RuleParameterSetsController < InheritedResources::Base - defaults :resource_class => RuleParameterSet - respond_to :html - respond_to :js, :only => [ :mode ] - - def new - @rule_parameter_set = RuleParameterSet.default( current_organisation) - new! - end - - def destroy - if current_organisation.rule_parameter_sets.count == 1 - flash[:alert] = t('rule_parameter_sets.destroy.last_rps_protected') - redirect_to organisation_rule_parameter_sets_path - else - destroy! do |success, failure| - success.html { redirect_to organisation_rule_parameter_sets_path } - end - end - end - - def update - update!(rule_parameter_set_params) do |success, failure| - success.html { redirect_to organisation_rule_parameter_sets_path } - end - end - - def create - create!(rule_parameter_set_params) do |success, failure| - success.html { redirect_to organisation_rule_parameter_sets_path } - end - end - - protected - - alias_method :rule_parameter_set, :resource - - def collection - @rule_parameter_sets = current_organisation.rule_parameter_sets - end - - def create_resource(rule_parameter_sets) - rule_parameter_sets.organisation = current_organisation - super - end - - private - - def rule_parameter_set_params - params.require(:rule_parameter_set).permit(:organisation, :name, :inter_stop_area_distance_min, :parent_stop_area_distance_max, :stop_areas_area, :inter_access_point_distance_min, :inter_connection_link_distance_max, :walk_default_speed_max, :walk_occasional_traveller_speed_max, :walk_frequent_traveller_speed_max, :walk_mobility_restricted_traveller_speed_max, :inter_access_link_distance_max, :inter_stop_duration_max, :facility_stop_area_distance_max, :check_lines_in_groups, :check_line_routes, :check_stop_parent, :check_connection_link_on_physical, :check_allowed_transport_modes, :allowed_transport_mode_coach, :inter_stop_area_distance_min_mode_coach, :inter_stop_area_distance_max_mode_coach, :speed_max_mode_coach, :speed_min_mode_coach, :inter_stop_duration_variation_max_mode_coach, :allowed_transport_mode_air, :inter_stop_area_distance_min_mode_air, :inter_stop_area_distance_max_mode_air, :speed_max_mode_air, :speed_min_mode_air, :inter_stop_duration_variation_max_mode_air, :allowed_transport_mode_waterborne, :inter_stop_area_distance_min_mode_waterborne, :inter_stop_area_distance_max_mode_waterborne, :speed_max_mode_waterborne, :speed_min_mode_waterborne, :inter_stop_duration_variation_max_mode_waterborne, :allowed_transport_mode_bus, :inter_stop_area_distance_min_mode_bus, :inter_stop_area_distance_max_mode_bus, :speed_max_mode_bus, :speed_min_mode_bus, :inter_stop_duration_variation_max_mode_bus, :allowed_transport_mode_ferry, :inter_stop_area_distance_min_mode_ferry, :inter_stop_area_distance_max_mode_ferry, :speed_max_mode_ferry, :speed_min_mode_ferry, :inter_stop_duration_variation_max_mode_ferry, :allowed_transport_mode_walk, :inter_stop_area_distance_min_mode_walk, :inter_stop_area_distance_max_mode_walk, :speed_max_mode_walk, :speed_min_mode_walk, :inter_stop_duration_variation_max_mode_walk, :allowed_transport_mode_metro, :inter_stop_area_distance_min_mode_metro, :inter_stop_area_distance_max_mode_metro, :speed_max_mode_metro, :speed_min_mode_metro, :inter_stop_duration_variation_max_mode_metro, :allowed_transport_mode_shuttle, :inter_stop_area_distance_min_mode_shuttle, :inter_stop_area_distance_max_mode_shuttle, :speed_max_mode_shuttle, :speed_min_mode_shuttle, :inter_stop_duration_variation_max_mode_shuttle, :allowed_transport_mode_rapid_transit, :inter_stop_area_distance_min_mode_rapid_transit, :inter_stop_area_distance_max_mode_rapid_transit, :speed_max_mode_rapid_transit, :speed_min_mode_rapid_transit, :inter_stop_duration_variation_max_mode_rapid_transit, :allowed_transport_mode_taxi, :inter_stop_area_distance_min_mode_taxi, :inter_stop_area_distance_max_mode_taxi, :speed_max_mode_taxi, :speed_min_mode_taxi, :inter_stop_duration_variation_max_mode_taxi, :allowed_transport_mode_local_train, :inter_stop_area_distance_min_mode_local_train, :inter_stop_area_distance_max_mode_local_train, :speed_max_mode_local_train, :speed_min_mode_local_train, :inter_stop_duration_variation_max_mode_local_train, :allowed_transport_mode_train, :inter_stop_area_distance_min_mode_train, :inter_stop_area_distance_max_mode_train, :speed_max_mode_train, :speed_min_mode_train, :inter_stop_duration_variation_max_mode_train, :allowed_transport_mode_long_distance_train, :inter_stop_area_distance_min_mode_long_distance_train, :inter_stop_area_distance_max_mode_long_distance_train, :speed_max_mode_long_distance_train, :speed_min_mode_long_distance_train, :inter_stop_duration_variation_max_mode_long_distance_train, :allowed_transport_mode_tramway, :inter_stop_area_distance_min_mode_tramway, :inter_stop_area_distance_max_mode_tramway, :speed_max_mode_tramway, :speed_min_mode_tramway, :inter_stop_duration_variation_max_mode_tramway, :allowed_transport_mode_trolleybus, :inter_stop_area_distance_min_mode_trolleybus, :inter_stop_area_distance_max_mode_trolleybus, :speed_max_mode_trolleybus, :speed_min_mode_trolleybus, :inter_stop_duration_variation_max_mode_trolleybus, :allowed_transport_mode_private_vehicle, :inter_stop_area_distance_min_mode_private_vehicle, :inter_stop_area_distance_max_mode_private_vehicle, :speed_max_mode_private_vehicle, :speed_min_mode_private_vehicle, :inter_stop_duration_variation_max_mode_private_vehicle, :allowed_transport_mode_bicycle, :inter_stop_area_distance_min_mode_bicycle, :inter_stop_area_distance_max_mode_bicycle, :speed_max_mode_bicycle, :speed_min_mode_bicycle, :inter_stop_duration_variation_max_mode_bicycle, :allowed_transport_mode_other, :inter_stop_area_distance_min_mode_other, :inter_stop_area_distance_max_mode_other, :speed_max_mode_other, :speed_min_mode_other, :inter_stop_duration_variation_max_mode_other, :check_network, :unique_column_objectid_object_network, :pattern_column_objectid_object_network, :min_size_column_objectid_object_network, :max_size_column_objectid_object_network, :unique_column_name_object_network, :pattern_column_name_object_network, :min_size_column_name_object_network, :max_size_column_name_object_network, :unique_column_registration_number_object_network, :pattern_column_registration_number_object_network, :min_size_column_registration_number_object_network, :max_size_column_registration_number_object_network, :check_company, :unique_column_objectid_object_company, :pattern_column_objectid_object_company, :min_size_column_objectid_object_company, :max_size_column_objectid_object_company, :unique_column_name_object_company, :pattern_column_name_object_company, :min_size_column_name_object_company, :max_size_column_name_object_company, :unique_column_registration_number_object_company, :pattern_column_registration_number_object_company, :min_size_column_registration_number_object_company, :max_size_column_registration_number_object_company, :check_group_of_line, :unique_column_objectid_object_group_of_line, :pattern_column_objectid_object_group_of_line, :min_size_column_objectid_object_group_of_line, :max_size_column_objectid_object_group_of_line, :unique_column_name_object_group_of_line, :pattern_column_name_object_group_of_line, :min_size_column_name_object_group_of_line, :max_size_column_name_object_group_of_line, :unique_column_registration_number_object_group_of_line, :pattern_column_registration_number_object_group_of_line, :min_size_column_registration_number_object_group_of_line, :max_size_column_registration_number_object_group_of_line, :check_stop_area, :unique_column_objectid_object_stop_area, :pattern_column_objectid_object_stop_area, :min_size_column_objectid_object_stop_area, :max_size_column_objectid_object_stop_area, :unique_column_name_object_stop_area, :pattern_column_name_object_stop_area, :min_size_column_name_object_stop_area, :max_size_column_name_object_stop_area, :unique_column_registration_number_object_stop_area, :pattern_column_registration_number_object_stop_area, :min_size_column_registration_number_object_stop_area, :max_size_column_registration_number_object_stop_area, :unique_column_city_name_object_stop_area, :pattern_column_city_name_object_stop_area, :min_size_column_city_name_object_stop_area, :max_size_column_city_name_object_stop_area, :unique_column_country_code_object_stop_area, :pattern_column_country_code_object_stop_area, :min_size_column_country_code_object_stop_area, :max_size_column_country_code_object_stop_area, :unique_column_zip_code_object_stop_area, :pattern_column_zip_code_object_stop_area, :min_size_column_zip_code_object_stop_area, :max_size_column_zip_code_object_stop_area, :check_access_point, :unique_column_objectid_object_access_point, :pattern_column_objectid_object_access_point, :min_size_column_objectid_object_access_point, :max_size_column_objectid_object_access_point, :unique_column_name_object_access_point, :pattern_column_name_object_access_point, :min_size_column_name_object_access_point, :max_size_column_name_object_access_point, :unique_column_city_name_object_access_point, :pattern_column_city_name_object_access_point, :min_size_column_city_name_object_access_point, :max_size_column_city_name_object_access_point, :unique_column_country_code_object_access_point, :pattern_column_country_code_object_access_point, :min_size_column_country_code_object_access_point, :max_size_column_country_code_object_access_point, :unique_column_zip_code_object_access_point, :pattern_column_zip_code_object_access_point, :min_size_column_zip_code_object_access_point, :max_size_column_zip_code_object_access_point, :check_access_link, :unique_column_objectid_object_access_link, :pattern_column_objectid_object_access_link, :min_size_column_objectid_object_access_link, :max_size_column_objectid_object_access_link, :unique_column_name_object_access_link, :pattern_column_name_object_access_link, :min_size_column_name_object_access_link, :max_size_column_name_object_access_link, :unique_column_link_distance_object_access_link, :min_size_column_link_distance_object_access_link, :max_size_column_link_distance_object_access_link, :unique_column_default_duration_object_access_link, :min_size_column_default_duration_object_access_link, :max_size_column_default_duration_object_access_link, :check_connection_link, :unique_column_objectid_object_connection_link, :pattern_column_objectid_object_connection_link, :min_size_column_objectid_object_connection_link, :max_size_column_objectid_object_connection_link, :unique_column_name_object_connection_link, :pattern_column_name_object_connection_link, :min_size_column_name_object_connection_link, :max_size_column_name_object_connection_link, :unique_column_link_distance_object_connection_link, :min_size_column_link_distance_object_connection_link, :max_size_column_link_distance_object_connection_link, :unique_column_default_duration_object_connection_link, :min_size_column_default_duration_object_connection_link, :max_size_column_default_duration_object_connection_link, :check_time_table, :unique_column_objectid_object_time_table, :pattern_column_objectid_object_time_table, :min_size_column_objectid_object_time_table, :max_size_column_objectid_object_time_table, :unique_column_comment_object_time_table, :pattern_column_comment_object_time_table, :min_size_column_comment_object_time_table, :max_size_column_comment_object_time_table, :unique_column_version_object_time_table, :pattern_column_version_object_time_table, :min_size_column_version_object_time_table, :max_size_column_version_object_time_table, :check_line, :unique_column_objectid_object_line, :pattern_column_objectid_object_line, :min_size_column_objectid_object_line, :max_size_column_objectid_object_line, :unique_column_name_object_line, :pattern_column_name_object_line, :min_size_column_name_object_line, :max_size_column_name_object_line, :unique_column_registration_number_object_line, :pattern_column_registration_number_object_line, :min_size_column_registration_number_object_line, :max_size_column_registration_number_object_line, :unique_column_number_object_line, :pattern_column_number_object_line, :min_size_column_number_object_line, :max_size_column_number_object_line, :unique_column_published_name_object_line, :pattern_column_published_name_object_line, :min_size_column_published_name_object_line, :max_size_column_published_name_object_line, :check_route, :unique_column_objectid_object_route, :pattern_column_objectid_object_route, :min_size_column_objectid_object_route, :max_size_column_objectid_object_route, :unique_column_name_object_route, :pattern_column_name_object_route, :min_size_column_name_object_route, :max_size_column_name_object_route, :unique_column_number_object_route, :pattern_column_number_object_route, :min_size_column_number_object_route, :max_size_column_number_object_route, :unique_column_published_name_object_route, :pattern_column_published_name_object_route, :min_size_column_published_name_object_route, :max_size_column_published_name_object_route, :check_journey_pattern, :unique_column_objectid_object_journey_pattern, :pattern_column_objectid_object_journey_pattern, :min_size_column_objectid_object_journey_pattern, :max_size_column_objectid_object_journey_pattern, :unique_column_name_object_journey_pattern, :pattern_column_name_object_journey_pattern, :min_size_column_name_object_journey_pattern, :max_size_column_name_object_journey_pattern, :unique_column_registration_number_object_journey_pattern, :pattern_column_registration_number_object_journey_pattern, :min_size_column_registration_number_object_journey_pattern, :max_size_column_registration_number_object_journey_pattern, :unique_column_published_name_object_journey_pattern, :pattern_column_published_name_object_journey_pattern, :min_size_column_published_name_object_journey_pattern, :max_size_column_published_name_object_journey_pattern, :check_vehicle_journey, :unique_column_objectid_object_vehicle_journey, :pattern_column_objectid_object_vehicle_journey, :min_size_column_objectid_object_vehicle_journey, :max_size_column_objectid_object_vehicle_journey, :unique_column_published_journey_name_object_vehicle_journey, :pattern_column_published_journey_name_object_vehicle_journey, :min_size_column_published_journey_name_object_vehicle_journey, :max_size_column_published_journey_name_object_vehicle_journey, :unique_column_published_journey_identifier_object_vehicle_journey, :pattern_column_published_journey_identifier_object_vehicle_journey, :min_size_column_published_journey_identifier_object_vehicle_journey, :max_size_column_published_journey_identifier_object_vehicle_journey, :unique_column_number_object_vehicle_journey, :min_size_column_number_object_vehicle_journey, :max_size_column_number_object_vehicle_journey) - end -end - diff --git a/app/decorators/compliance_check_decorator.rb b/app/decorators/compliance_check_decorator.rb new file mode 100644 index 000000000..5431f5796 --- /dev/null +++ b/app/decorators/compliance_check_decorator.rb @@ -0,0 +1,8 @@ +class ComplianceCheckDecorator < Draper::Decorator + delegate_all + + def action_links + [] + end + +end diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index 9f2e2765f..0a7b0fb75 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -73,8 +73,6 @@ module ApplicationHelper "time_tables" when path.include?("/timebands") "timebands" - when path.include?("/rule_parameter_set") - "parametersets" when path.include?("/import_tasks") "imports" when path.include?("/exports") diff --git a/app/helpers/compliance_check_blocks_helper.rb b/app/helpers/compliance_check_blocks_helper.rb new file mode 100644 index 000000000..b4d858b07 --- /dev/null +++ b/app/helpers/compliance_check_blocks_helper.rb @@ -0,0 +1,3 @@ +module ComplianceCheckBlocksHelper + include TransportModeHelper +end diff --git a/app/helpers/compliance_check_sets_helper.rb b/app/helpers/compliance_check_sets_helper.rb new file mode 100644 index 000000000..fc7165fed --- /dev/null +++ b/app/helpers/compliance_check_sets_helper.rb @@ -0,0 +1,16 @@ +module ComplianceCheckSetsHelper + def compliance_check_set_path(compliance_check_set) + workbench_compliance_check_set_path(compliance_check_set.workbench, compliance_check_set) + end + + def executed_compliance_check_set_path(compliance_check_set) + executed_workbench_compliance_check_set_path(compliance_check_set.workbench, compliance_check_set) + end + + def compliance_check_path(compliance_check) + workbench_compliance_check_set_compliance_check_path( + compliance_check.compliance_check_set.workbench, + compliance_check.compliance_check_set, + compliance_check) + end +end diff --git a/app/helpers/compliance_control_blocks_helper.rb b/app/helpers/compliance_control_blocks_helper.rb index 311e6fb46..b53ac17ae 100644 --- a/app/helpers/compliance_control_blocks_helper.rb +++ b/app/helpers/compliance_control_blocks_helper.rb @@ -1,5 +1,5 @@ module ComplianceControlBlocksHelper - def transport_mode(transport_mode, transport_submode) + def compliance_transport_mode(transport_mode, transport_submode) return "[Tous les modes de transport]" if transport_mode == "" if transport_submode == "" "[" + t("enumerize.transport_mode.#{transport_mode}") + "]" diff --git a/app/helpers/referentials_helper.rb b/app/helpers/referentials_helper.rb index f3c18d9f8..01e5a5879 100644 --- a/app/helpers/referentials_helper.rb +++ b/app/helpers/referentials_helper.rb @@ -1,12 +1,13 @@ module ReferentialsHelper - # Line statuses helper + # Outputs a green check icon and the text "Oui" or a red exclamation mark + # icon and the text "Non" based on `status` def line_status(status) if status - cls = 'danger' - content_tag :span, status ? " #{t('false')} " : " #{t('true')}", class: "fa fa-exclamation-circle fa-lg text-#{cls}" + content_tag(:span, nil, class: 'fa fa-exclamation-circle fa-lg text-danger') + + t('false') else - cls = 'success' - content_tag :span, status ? " #{t('false')} " : " #{t('true')}", class: "fa fa-check-circle fa-lg text-#{cls}" + content_tag(:span, nil, class: 'fa fa-check-circle fa-lg text-success') + + t('true') end end end diff --git a/app/helpers/rule_parameter_sets_helper.rb b/app/helpers/rule_parameter_sets_helper.rb deleted file mode 100644 index bb210d9cd..000000000 --- a/app/helpers/rule_parameter_sets_helper.rb +++ /dev/null @@ -1,28 +0,0 @@ -module RuleParameterSetsHelper - - def unique( value) - return t("true") if value == "1" - t "false" - end - - def pattern(value) - return t("rule_parameter_sets.labels.free_char") if value == "0" - return t("rule_parameter_sets.labels.num_char") if value == "1" - return t("rule_parameter_sets.labels.alpha_char") if value == "2" - return t("rule_parameter_sets.labels.upper_char") if value == "3" - return t("rule_parameter_sets.labels.lower_char") if value == "4" - end - - def boolean_value(value) - return t("true") if value == "1" - t "false" - end - - def transport_mode_label_pairs - Chouette::TransportMode - .all - .zip_map { |mode| t("transport_modes.label.#{mode}") } - end -end - - diff --git a/app/helpers/transport_mode_helper.rb b/app/helpers/transport_mode_helper.rb new file mode 100644 index 000000000..7a486fc2d --- /dev/null +++ b/app/helpers/transport_mode_helper.rb @@ -0,0 +1,16 @@ +module TransportModeHelper + def transport_mode_text(transport_modable=nil) + mode = transport_modable.try(:transport_mode) + return "[Tous les modes de transport]" if mode.blank? + + submode = transport_modable.try(:transport_submode) + [translated_mode_name(:mode, mode), translated_mode_name(:submode, submode)].join + end + + private + def translated_mode_name mode_type, value + return "" if value.blank? + "[#{I18n.t("enumerize.transport_#{mode_type}.#{value}")}]" + end + +end diff --git a/app/models/compliance_check_block.rb b/app/models/compliance_check_block.rb index ee60a8bb1..05240b428 100644 --- a/app/models/compliance_check_block.rb +++ b/app/models/compliance_check_block.rb @@ -1,5 +1,13 @@ class ComplianceCheckBlock < ActiveRecord::Base + include StifTransportModeEnumerations + include StifTransportSubmodeEnumerations + belongs_to :compliance_check_set has_many :compliance_checks + + hstore_accessor :condition_attributes, + transport_mode: :string, + transport_submode: :string + end diff --git a/app/models/compliance_control_block.rb b/app/models/compliance_control_block.rb index 5721c00f4..cfcdfd1a6 100644 --- a/app/models/compliance_control_block.rb +++ b/app/models/compliance_control_block.rb @@ -1,6 +1,6 @@ class ComplianceControlBlock < ActiveRecord::Base - extend StifTransportModeEnumerations - extend StifTransportSubmodeEnumerations + include StifTransportModeEnumerations + include StifTransportSubmodeEnumerations belongs_to :compliance_control_set has_many :compliance_controls, dependent: :destroy diff --git a/app/models/concerns/stif_transport_mode_enumerations.rb b/app/models/concerns/stif_transport_mode_enumerations.rb index c2d38c2c6..74621dfc5 100644 --- a/app/models/concerns/stif_transport_mode_enumerations.rb +++ b/app/models/concerns/stif_transport_mode_enumerations.rb @@ -1,19 +1,18 @@ module StifTransportModeEnumerations extend ActiveSupport::Concern - extend Enumerize - extend self - enumerize :transport_mode, in: %w(bus - metro - rail - tram - funicular) - - def transport_modes - StifTransportModeEnumerations.transport_mode.values + class << self + def transport_modes + %w(bus metro rail tram funicular) + end + def sorted_transport_modes + transport_modes.sort_by{|m| I18n.t("enumerize.transport_mode.#{m}").parameterize } + end end - - def sorted_transport_modes - self.transport_modes.sort_by{|m| I18n.t("enumerize.transport_mode.#{m}").parameterize } + + included do + extend Enumerize + enumerize :transport_mode, in: StifTransportModeEnumerations.transport_modes end + end diff --git a/app/models/concerns/stif_transport_submode_enumerations.rb b/app/models/concerns/stif_transport_submode_enumerations.rb index cf314badd..eb3e56eac 100644 --- a/app/models/concerns/stif_transport_submode_enumerations.rb +++ b/app/models/concerns/stif_transport_submode_enumerations.rb @@ -1,24 +1,28 @@ module StifTransportSubmodeEnumerations extend ActiveSupport::Concern - extend Enumerize - extend self - enumerize :transport_submode, in: %w(demandAndResponseBus - nightBus - airportLinkBus - highFrequencyBus - expressBus - railShuttle - suburbanRailway - regionalRail - interregionalRail -) + class << self + def transport_submodes + %w( + demandAndResponseBus + nightBus + airportLinkBus + highFrequencyBus + expressBus + railShuttle + suburbanRailway + regionalRail + interregionalRail) + end - def transport_submodes - StifTransportSubmodeEnumerations.transport_submode.values + def sorted_transport_submodes + transport_submodes.sort_by{|m| I18n.t("enumerize.transport_submode.#{m}").parameterize } + end end - def sorted_transport_submodes - self.transport_submodes.sort_by{|m| I18n.t("enumerize.transport_submode.#{m}").parameterize } + included do + extend Enumerize + enumerize :transport_submode, in: StifTransportSubmodeEnumerations.transport_submodes end + end diff --git a/app/models/import_task.rb b/app/models/import_task.rb index 0e1ab65be..7dfa2c644 100644 --- a/app/models/import_task.rb +++ b/app/models/import_task.rb @@ -12,7 +12,7 @@ class ImportTask cattr_accessor :root enumerize :data_format, in: %w( neptune netex gtfs ) - attr_accessor :rule_parameter_set_id, :referential_id, :user_id, :user_name, :data_format, :resources, :name, :no_save + attr_accessor :referential_id, :user_id, :user_name, :data_format, :resources, :name, :no_save validates_presence_of :referential_id validates_presence_of :resources @@ -34,10 +34,6 @@ class ImportTask referential.organisation end - def rule_parameter_set - organisation.rule_parameter_sets.find(rule_parameter_set_id) if rule_parameter_set_id.present? - end - def save if valid? # Save resources @@ -68,20 +64,10 @@ class ImportTask def params {}.tap do |h| - h["parameters"] = validation_params ? action_params.merge(validation_params) : action_params + h["parameters"] = {} end end - def action_params - {} - end - - def validation_params - { - "validation" => rule_parameter_set.parameters - } if rule_parameter_set.present? - end - def self.data_formats self.data_format.values end diff --git a/app/models/netex_import.rb b/app/models/netex_import.rb index 32939a741..a7a5bb9b8 100644 --- a/app/models/netex_import.rb +++ b/app/models/netex_import.rb @@ -1,19 +1,36 @@ require 'net/http' class NetexImport < Import + before_destroy :destroy_non_ready_referential + after_commit :launch_java_import, on: :create + before_save def abort_unless_referential + self.status = 'aborted' unless referential + end validates_presence_of :parent def launch_java_import return if self.class.finished_statuses.include?(status) + threaded_call_boiv_iev + end - Thread.new do - begin - Net::HTTP.get(URI("#{Rails.configuration.iev_url}/boiv_iev/referentials/importer/new?id=#{id}")) - rescue Exception => e - logger.error "IEV server error : #{e.message}" - logger.error e.backtrace.inspect - end + private + + def destroy_non_ready_referential + if referential && !referential.ready + referential.destroy end end + + def threaded_call_boiv_iev + Thread.new(&method(:call_boiv_iev)) + end + + def call_boiv_iev + Net::HTTP.get(URI("#{Rails.configuration.iev_url}/boiv_iev/referentials/importer/new?id=#{id}")) + rescue Exception => e + logger.error "IEV server error : #{e.message}" + logger.error e.backtrace.inspect + end + end diff --git a/app/models/organisation.rb b/app/models/organisation.rb index 6104b4431..f6fba2d67 100644 --- a/app/models/organisation.rb +++ b/app/models/organisation.rb @@ -3,7 +3,6 @@ class Organisation < ActiveRecord::Base has_many :users, :dependent => :destroy has_many :referentials, :dependent => :destroy - # has_many :rule_parameter_sets, :dependent => :destroy has_many :compliance_control_sets, :dependent => :destroy has_many :stop_area_referential_memberships @@ -19,12 +18,6 @@ class Organisation < ActiveRecord::Base validates_presence_of :name validates_uniqueness_of :code - # after_create :add_rule_parameter_set - - # def add_rule_parameter_set - # RuleParameterSet.default_for_all_modes( self).save - # end - def self.portail_api_request conf = Rails.application.config.try(:stif_portail_api) raise 'Rails.application.config.stif_portail_api configuration is not defined' unless conf @@ -62,6 +55,7 @@ class Organisation < ActiveRecord::Base organisation_referential = referentials.find_by id: referential_id return organisation_referential if organisation_referential + # TODO: Replace each with find workbenches.each do |workbench| workbench_referential = workbench.all_referentials.find_by id: referential_id return workbench_referential if workbench_referential diff --git a/app/models/rule_parameter_set.rb b/app/models/rule_parameter_set.rb deleted file mode 100644 index 91e575822..000000000 --- a/app/models/rule_parameter_set.rb +++ /dev/null @@ -1,392 +0,0 @@ -class RuleParameterSet < ActiveRecord::Base - belongs_to :organisation - - #validates_presence_of :referential - validates_presence_of :name - - # Access to parent object - attr_accessor :import, :compliance_check - - serialize :parameters, JSON - - def self.mode_attribute_prefixes - %w( allowed_transport inter_stop_area_distance_min inter_stop_area_distance_max speed_max speed_min inter_stop_duration_variation_max) - end - def self.general_attributes - %w( inter_stop_area_distance_min parent_stop_area_distance_max stop_areas_area inter_access_point_distance_min - inter_connection_link_distance_max walk_default_speed_max - walk_occasional_traveller_speed_max walk_frequent_traveller_speed_max walk_mobility_restricted_traveller_speed_max - inter_access_link_distance_max inter_stop_duration_max facility_stop_area_distance_max - check_allowed_transport_modes check_lines_in_groups check_line_routes - check_stop_parent check_connection_link_on_physical) - end - - def self.validable_objects - [Chouette::Network,Chouette::Company,Chouette::GroupOfLine, - Chouette::StopArea,Chouette::AccessPoint,Chouette::AccessLink,Chouette::ConnectionLink, - Chouette::TimeTable,Chouette::Line,Chouette::Route, - Chouette::JourneyPattern,Chouette::VehicleJourney] - end - - def self.validable_object_names - %w( network company group_of_line stop_area access_point access_link connection_link time_table line route - journey_pattern vehicle_journey ) - end - - def self.validable_columns - { 'network' => ['objectid','name','registration_number'], - 'company' => ['objectid','name','registration_number'], - 'group_of_line' => ['objectid','name','registration_number'], - 'stop_area' => ['objectid','name','registration_number','city_name','country_code','zip_code'], - 'access_point' => ['objectid','name','city_name','country_code','zip_code'], - 'access_link' => ['objectid','name','link_distance','default_duration'], - 'connection_link' => ['objectid','name','link_distance','default_duration'], - 'time_table' => ['objectid','comment','version'], - 'line' => ['objectid','name','registration_number','number','published_name'], - 'route' => ['objectid','name','number','published_name'], - 'journey_pattern' => ['objectid','name','registration_number','published_name'], - '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 - - def self.all_modes - ["interchange", - "unknown", - "coach", - "air", - "waterborne", - "bus", - "ferry", - "walk", - "metro", - "shuttle", - "rapid_transit", - "taxi", - "local_train", - "train", - "long_distance_train", - "tramway", - "trolleybus", - "private_vehicle", - "bicycle", - "other"] - end - - def self.mode_attribute?( method_name ) - pattern = /(\w+)_mode_(\w+)/ - return false unless method_name.match( pattern) - - mode_attribute_prefixes.include?( $1) && self.class.all_modes.include?( $2) - end - - def self.column_attribute?( method_name ) - pattern = /(\w+)_column_(\w+)_object_(\w+)/ - return false unless method_name.match( pattern) - return false unless validable_object_names.include?($3) - column_attribute_prefixes.include?( $1) && validable_columns[$3].include?( $2) - end - - def self.mode_of_mode_attribute( method_name ) - method_name.match( /(\w+)_mode_(\w+)/) - $2 - end - def self.attribute_of_mode_attribute( method_name ) - method_name.match( /(\w+)_mode_(\w+)/) - $1 - end - - def self.object_of_column_attribute( method_name ) - method_name.match( /(\w+)_column_(\w+)_object_(\w+)/) - $3 - end - def self.column_of_column_attribute( method_name ) - method_name.match( /(\w+)_column_(\w+)_object_(\w+)/) - $2 - end - def self.attribute_of_column_attribute( method_name ) - method_name.match( /(\w+)_column_(\w+)_object_(\w+)/) - $1 - end - - - def self.mode_parameter(name) - name = name.to_s - #attr_accessible name - - define_method(name) do - attribute_name, mode = RuleParameterSet.attribute_of_mode_attribute( name), RuleParameterSet.mode_of_mode_attribute( name) - self.parameters and self.parameters["mode_#{mode}"] and - self.parameters["mode_#{mode}"][attribute_name] - end - - define_method("#{name}=") do |prefix| - attribute_name, mode = RuleParameterSet.attribute_of_mode_attribute( name), RuleParameterSet.mode_of_mode_attribute( name) - ((self.parameters ||= {})["mode_#{mode}"] ||= {})[attribute_name] = prefix - end - end - - def self.column_parameter(obj,column,prefix) - name = "#{prefix}_column_#{column}_object_#{obj}" - #attr_accessible name - define_method(name) do - attribute_name, column, obj = prefix, column, obj - self.parameters and self.parameters[obj] and - self.parameters[obj][column] and self.parameters[obj][column][attribute_name] - end - - define_method("#{name}=") do |key| - attribute_name, column, obj = prefix, column, obj - (((self.parameters ||= {})[obj] ||= {})[column]||= {})[attribute_name] = key - end - - end - - def self.object_parameter(clazz) - name = clazz.table_name.singularize - #attr_accessible name - - parameter "check_#{clazz.table_name.singularize}" - validable_columns[name].each do |column| - column_attribute_prefixes.each do |prefix| - column_parameter name,column,prefix - end - - end - - end - - def self.parameter(name) - name = name.to_s - #attr_accessible name - - define_method(name) do - self.parameters and self.parameters[name] - end - - define_method("#{name}=") do |prefix| - (self.parameters ||= {})[name] = prefix - end - end - - def self.default_params(mode=nil) - base = { :inter_stop_area_distance_min => 20, - :parent_stop_area_distance_max => 300, - :inter_access_point_distance_min => 20, - :inter_connection_link_distance_max => 400, - :walk_default_speed_max => 4, - :walk_occasional_traveller_speed_max => 2, - :walk_frequent_traveller_speed_max => 5, - :walk_mobility_restricted_traveller_speed_max => 1, - :inter_access_link_distance_max => 300, - :inter_stop_duration_max => 40, - :facility_stop_area_distance_max => 300, - :check_allowed_transport_modes => false, - :check_lines_in_groups => false, - :check_line_routes => false, - :check_stop_parent => false, - :check_connection_link_on_physical => false - } - if mode && self.mode_default_params[ mode.to_sym] - base.merge!( self.mode_default_params[ mode.to_sym]) - end - base - end - def self.mode_default_params - { - :coach => { - :allowed_transport_mode_coach => false, - :inter_stop_area_distance_min_mode_coach => 500, - :inter_stop_area_distance_max_mode_coach => 10000, - :speed_max_mode_coach => 90, - :speed_min_mode_coach => 40, - :inter_stop_duration_variation_max_mode_coach => 20}, - :air => { - :allowed_transport_mode_air => false, - :inter_stop_area_distance_min_mode_air => 200, - :inter_stop_area_distance_max_mode_air => 10000, - :speed_max_mode_air => 800, - :speed_min_mode_air => 700, - :inter_stop_duration_variation_max_mode_air => 60}, - :waterborne => { - :allowed_transport_mode_waterborne => false, - :inter_stop_area_distance_min_mode_waterborne => 200, - :inter_stop_area_distance_max_mode_waterborne => 10000, - :speed_max_mode_waterborne => 40, - :speed_min_mode_waterborne => 5, - :inter_stop_duration_variation_max_mode_waterborne => 60}, - :bus => { - :allowed_transport_mode_bus => false, - :inter_stop_area_distance_min_mode_bus => 100, - :inter_stop_area_distance_max_mode_bus => 10000, - :speed_max_mode_bus => 60, - :speed_min_mode_bus => 10, - :inter_stop_duration_variation_max_mode_bus => 15}, - :ferry => { - :allowed_transport_mode_ferry => false, - :inter_stop_area_distance_min_mode_ferry => 200, - :inter_stop_area_distance_max_mode_ferry => 10000, - :speed_max_mode_ferry => 40, - :speed_min_mode_ferry => 5, - :inter_stop_duration_variation_max_mode_ferry => 60}, - :walk => { - :allowed_transport_mode_walk => false, - :inter_stop_area_distance_min_mode_walk => 1, - :inter_stop_area_distance_max_mode_walk => 10000, - :speed_max_mode_walk => 6, - :speed_min_mode_walk => 1, - :inter_stop_duration_variation_max_mode_walk => 10}, - :metro => { - :allowed_transport_mode_metro => false, - :inter_stop_area_distance_min_mode_metro => 300, - :inter_stop_area_distance_max_mode_metro => 2000, - :speed_max_mode_metro => 60, - :speed_min_mode_metro => 30, - :inter_stop_duration_variation_max_mode_metro => 30}, - :shuttle => { - :allowed_transport_mode_shuttle => false, - :inter_stop_area_distance_min_mode_shuttle => 500, - :inter_stop_area_distance_max_mode_shuttle => 10000, - :speed_max_mode_shuttle => 80, - :speed_min_mode_shuttle => 20, - :inter_stop_duration_variation_max_mode_shuttle => 10}, - :rapid_transit => { - :allowed_transport_mode_rapid_transit => false, - :inter_stop_area_distance_min_mode_rapid_transit => 2000, - :inter_stop_area_distance_max_mode_rapid_transit => 500000, - :speed_max_mode_rapid_transit => 300, - :speed_min_mode_rapid_transit => 20, - :inter_stop_duration_variation_max_mode_rapid_transit => 60}, - :taxi => { - :allowed_transport_mode_taxi => false, - :inter_stop_area_distance_min_mode_taxi => 500, - :inter_stop_area_distance_max_mode_taxi => 300000, - :speed_max_mode_taxi => 130, - :speed_min_mode_taxi => 20, - :inter_stop_duration_variation_max_mode_taxi => 60}, - :local_train => { - :allowed_transport_mode_local_train => false, - :inter_stop_area_distance_min_mode_local_train => 2000, - :inter_stop_area_distance_max_mode_local_train => 500000, - :speed_max_mode_local_train => 300, - :speed_min_mode_local_train => 20, - :inter_stop_duration_variation_max_mode_local_train => 60}, - :train => { - :allowed_transport_mode_train => false, - :inter_stop_area_distance_min_mode_train => 2000, - :inter_stop_area_distance_max_mode_train => 500000, - :speed_max_mode_train => 300, - :speed_min_mode_train => 20, - :inter_stop_duration_variation_max_mode_train => 60}, - :long_distance_train => { - :allowed_transport_mode_long_distance_train => false, - :inter_stop_area_distance_min_mode_long_distance_train => 2000, - :inter_stop_area_distance_max_mode_long_distance_train => 500000, - :speed_max_mode_long_distance_train => 300, - :speed_min_mode_long_distance_train => 20, - :inter_stop_duration_variation_max_mode_long_distance_train => 60}, - :tramway => { - :allowed_transport_mode_tramway => false, - :inter_stop_area_distance_min_mode_tramway => 300, - :inter_stop_area_distance_max_mode_tramway => 2000, - :speed_max_mode_tramway => 50, - :speed_min_mode_tramway => 20, - :inter_stop_duration_variation_max_mode_tramway => 30}, - :trolleybus => { - :allowed_transport_mode_trolleybus => false, - :inter_stop_area_distance_min_mode_trolleybus => 300, - :inter_stop_area_distance_max_mode_trolleybus => 2000, - :speed_max_mode_trolleybus => 50, - :speed_min_mode_trolleybus => 20, - :inter_stop_duration_variation_max_mode_trolleybus => 30}, - :private_vehicle => { - :allowed_transport_mode_private_vehicle => false, - :inter_stop_area_distance_min_mode_private_vehicle => 500, - :inter_stop_area_distance_max_mode_private_vehicle => 300000, - :speed_max_mode_private_vehicle => 130, - :speed_min_mode_private_vehicle => 20, - :inter_stop_duration_variation_max_mode_private_vehicle => 60}, - :bicycle => { - :allowed_transport_mode_bicycle => false, - :inter_stop_area_distance_min_mode_bicycle => 300, - :inter_stop_area_distance_max_mode_bicycle => 30000, - :speed_max_mode_bicycle => 40, - :speed_min_mode_bicycle => 10, - :inter_stop_duration_variation_max_mode_bicycle => 10}, - :other => { - :allowed_transport_mode_other => false, - :inter_stop_area_distance_min_mode_other => 300, - :inter_stop_area_distance_max_mode_other => 30000, - :speed_max_mode_other => 40, - :speed_min_mode_other => 10, - :inter_stop_duration_variation_max_mode_other => 10}, - } - # :waterborne, :bus, :ferry, :walk, :metro, :shuttle, :rapidtransit, :taxi, :localtrain, :train, :longdistancetrain, :tramway, :trolleybus, :privatevehicle, :bicycle, :other - end - def self.default(organisation) - self.default_for_all_modes(organisation).tap do |rps| - rps.name = "" - end - end - def self.default_for_all_modes(organisation) - mode_attributes = mode_default_params.values.inject(self.default_params){|memo, obj| memo.merge! obj} - self.new( - { :organisation_id => organisation.id, - :name => "valeurs par defaut" - }.merge(mode_attributes)) - end - - def allowed(mode) - return true unless self.check_allowed_transport_modes == "1" - # puts "#{mode} = "+self.send("allowed_transport_mode_#{mode}").to_s - return self.send("allowed_transport_mode_#{mode}") == "1" - end - - def selected(object) - # puts "#{mode} = "+self.send("allowed_transport_mode_#{mode}").to_s - return self.send("check_#{object}") == "1" - end - - def selected_column(object,column) - # puts "#{mode} = "+self.send("allowed_transport_mode_#{mode}").to_s - return self.send("unique_column_#{column}_object_#{object}") == "1" || - self.send("pattern_column_#{column}_object_#{object}") != "0" || - !self.send("min_size_column_#{column}_object_#{object}").empty? || - !self.send("max_size_column_#{column}_object_#{object}").empty? - end - - - all_modes.each do |mode| - mode_attribute_prefixes.each do |prefix| - mode_parameter "#{prefix}_mode_#{mode}".to_sym - end - end - - general_attributes.each do |attribute| - parameter attribute.to_sym - unless attribute == "stop_areas_area" || attribute == "check_allowed_transport_modes" - validates attribute.to_sym, :numericality => true, :allow_nil => true, :allow_blank => true - end - end - - - validable_objects.each do |obj| - object_parameter obj - end - - -end diff --git a/app/views/compliance_check_sets/executed.html.slim b/app/views/compliance_check_sets/executed.html.slim new file mode 100644 index 000000000..bb055272d --- /dev/null +++ b/app/views/compliance_check_sets/executed.html.slim @@ -0,0 +1,84 @@ +- breadcrumb :compliance_check_set, @workbench, @compliance_check_set +/ PageHeader += pageheader 'jeux-de-donnees', + t('compliance_check_sets.executed.title', name: @compliance_check_set.name) +/ PageContent +.page_content + .container-fluid + .row + .col-lg-6.col-md-6.col-sm-12.col-xs-12 + = definition_list t('metadatas'), + ComplianceCheckSet.human_attribute_name(:name) => @compliance_check_set.name + + - if params[:q].present? || @blocks_to_compliance_checks_map.any? || @direct_compliance_checks + .row + .col-lg-12 + = render '/compliance_checks/filters' + + - if @direct_compliance_checks.try(:any?) + .row + .col-lg-12 + h2 + = transport_mode_text() + .row + .col-lg-12 + = table_builder_2 @direct_compliance_checks, + [ \ + TableBuilderHelper::Column.new( \ + key: :code, \ + attribute: 'code' \ + ), \ + TableBuilderHelper::Column.new( \ + key: :name, \ + attribute: 'name', \ + link_to: lambda do |compliance_check| \ + compliance_check_path(compliance_check) \ + end \ + ), \ + TableBuilderHelper::Column.new( \ + key: :criticity, \ + attribute: 'criticity' \ + ), \ + TableBuilderHelper::Column.new( \ + key: :comment, \ + attribute: 'comment' \ + ), \ + ], + sortable: true, + cls: 'table has-filter has-search', + model: ComplianceCheck + + - @blocks_to_compliance_checks_map.each do |block, compliance_checks| + + - if compliance_checks.try(:any?) + .row + .col-lg-12 + h2 + = transport_mode_text(block) + .row + .col-lg-12 + = table_builder_2 compliance_checks, + [ \ + TableBuilderHelper::Column.new( \ + key: :code, \ + attribute: 'code' \ + ), \ + TableBuilderHelper::Column.new( \ + key: :name, \ + attribute: 'name', \ + link_to: lambda do |compliance_check| \ + compliance_check_path(compliance_check) \ + end \ + ), \ + TableBuilderHelper::Column.new( \ + key: :criticity, \ + attribute: 'criticity' \ + ), \ + TableBuilderHelper::Column.new( \ + key: :comment, \ + attribute: 'comment' \ + ), \ + ], + sortable: true, + cls: 'table has-filter has-search', + model: ComplianceCheck diff --git a/app/views/compliance_check_sets/show.html.slim b/app/views/compliance_check_sets/show.html.slim deleted file mode 100644 index eefa5363f..000000000 --- a/app/views/compliance_check_sets/show.html.slim +++ /dev/null @@ -1,12 +0,0 @@ -- breadcrumb :compliance_check_set, @workbench, @compliance_check_set -/ PageHeader -= pageheader 'jeux-de-donnees', - @compliance_check_set.referential.name -/ PageContent -.page_content - .container-fluid - .row - .col-lg-6.col-md-6.col-sm-12.col-xs-12 - = definition_list t('metadatas'), - ComplianceCheckSet.human_attribute_name(:id) => @compliance_check_set.referential.id, - ComplianceCheckSet.human_attribute_name(:name) => @compliance_check_set.referential.name diff --git a/app/views/compliance_checks/_filters.html.slim b/app/views/compliance_checks/_filters.html.slim new file mode 100644 index 000000000..0d747da27 --- /dev/null +++ b/app/views/compliance_checks/_filters.html.slim @@ -0,0 +1,47 @@ +/ Compliance Check Filter += search_form_for @q_checks_form, + url: executed_compliance_check_set_path(@compliance_check_set), + builder: SimpleForm::FormBuilder, + class: 'form form-filter' do |f| + + .ffg-row + .input-group.search_bar + = f.search_field :name_cont, + class: 'form-control', + placeholder: t('compliance_checks.filters.name') + span.input-group-btn + button.btn.btn-default type='submit' + span.fa.fa-search + + .ffg-row + .form-group.togglable#compliance_check_block-filter + = f.label t('activerecord.models.compliance_check_block.one'), required: false, class: 'control-label' + = f.input :compliance_check_block_id_eq_any, + collection: @compliance_check_set.compliance_check_blocks, + as: :check_boxes, + label: false, + label_method: lambda {|w| ("<span>#{transport_mode_text(w)}</span>").html_safe}, + required: false, + wrapper_html: {class: 'checkbox_list'} + .form-group.togglable#subclass-filter + = f.label t('compliance_checks.filters.subclass'), required: false, class: 'control-label' + = f.input :origin_code_cont_any, + collection: subclass_selection_list, + as: :check_boxes, + label: false, + label_method: lambda {|w| ("<span>#{w.first}</span>").html_safe}, + required: false, + wrapper_html: {class: 'checkbox_list'} + .form-group.togglable#severity-filter + = f.label t('compliance_checks.filters.criticity'), required: false, class: 'control-label' + = f.input :criticity_eq_any, + collection: ComplianceControl.criticities, + as: :check_boxes, + label: false, + label_method: lambda {|w| ("<span>#{w}</span>").html_safe}, + required: false, + wrapper_html: {class: 'checkbox_list'} + + .actions + = link_to t('actions.erase'), executed_compliance_check_set_path(@compliance_check_set), class: 'btn btn-link' + = f.submit t('actions.filter'), class: 'btn btn-default', id: 'compliance_check_set_compliance_checks_filter_btn' diff --git a/app/views/compliance_control_sets/show.html.slim b/app/views/compliance_control_sets/show.html.slim index 2bd663578..71b71f842 100644 --- a/app/views/compliance_control_sets/show.html.slim +++ b/app/views/compliance_control_sets/show.html.slim @@ -1,8 +1,7 @@ - breadcrumb :compliance_control_set, @compliance_control_set / PageHeader = pageheader 'jeux-de-controle', - t('compliance_control_sets.show.title', name: @compliance_control_set.name), - 'Lorem ipsum dolor sit amet' + t('compliance_control_sets.show.title', name: @compliance_control_set.name) / Below is secondary actions & optional contents (filters, ...) .row.mb-sm @@ -25,21 +24,65 @@ = definition_list t('metadatas'), ComplianceControlSet.human_attribute_name(:name) => @compliance_control_set.name, I18n.t('activerecord.attributes.compliance_control_set.owner_jdc') => @compliance_control_set.organisation.name - - if params[:q].present? or @compliance_controls.any? + + - if params[:q].present? || @blocks_to_compliance_controls_map.any? || @direct_compliance_controls .row .col-lg-12 = render '/compliance_controls/filters' - .row - .col-lg-12 - h2 - = transport_mode("", "") - - if @indirect_compliance_controls.try(:any?) + - if @direct_compliance_controls.try(:any?) + .row + .col-lg-12 + h2 + = transport_mode_text() + .row + .col-lg-12 + .select_table + = table_builder_2 @direct_compliance_controls, + [ \ + TableBuilderHelper::Column.new( \ + key: :code, \ + attribute: 'code' \ + ), \ + TableBuilderHelper::Column.new( \ + key: :name, \ + attribute: 'name', \ + link_to: lambda do |compliance_control| \ + compliance_control_set_compliance_control_path(@compliance_control_set, compliance_control) \ + end \ + ), \ + TableBuilderHelper::Column.new( \ + key: :criticity, \ + attribute: 'criticity' \ + ), \ + TableBuilderHelper::Column.new( \ + key: :comment, \ + attribute: 'comment' \ + ), \ + ], + sortable: true, + cls: 'table has-filter has-search', + model: ComplianceControl + + - @blocks_to_compliance_controls_map.each do |block, compliance_controls| + + - if compliance_controls.try(:any?) + .row + .col-lg-12 + h2 + = transport_mode_text(block) + .btn-group + .btn.dropdown-toggle{ data-toggle="dropdown" } + .span.fa.fa-cog + ul.dropdown-menu + li + = link_to t('compliance_control_sets.actions.edit'), edit_compliance_control_set_compliance_control_block_path(@compliance_control_set.id, block.id) + = link_to t('compliance_control_sets.actions.destroy'), compliance_control_set_compliance_control_block_path(@compliance_control_set.id, block.id), :method => :delete, :data => {:confirm => t('compliance_control_sets.actions.destroy_confirm')} .row .col-lg-12 .select_table - = table_builder_2 @indirect_compliance_controls, + = table_builder_2 compliance_controls, [ \ TableBuilderHelper::Column.new( \ key: :code, \ @@ -65,47 +108,15 @@ cls: 'table has-filter has-search', model: ComplianceControl - - @compliance_controls.each do |block, compliance_controls| - - - if compliance_controls.try(:any?) - .row - .col-lg-12 - h2 - = transport_mode(block.transport_mode, block.transport_submode) - .btn-group - .btn.dropdown-toggle{ data-toggle="dropdown" } - .span.fa.fa-cog - ul.dropdown-menu - li - = link_to t('compliance_control_sets.actions.edit'), edit_compliance_control_set_compliance_control_block_path(@compliance_control_set.id, block.id) if policy(ComplianceControlBlock).update? if policy(ComplianceControlBlock).update? - = link_to t('compliance_control_sets.actions.destroy'), compliance_control_set_compliance_control_block_path(@compliance_control_set.id, block.id), :method => :delete, :data => {:confirm => t('compliance_control_sets.actions.destroy_confirm')} if policy(ComplianceControlBlock).destroy? - .row - .col-lg-12 - .select_table - = table_builder_2 compliance_controls, - [ \ - TableBuilderHelper::Column.new( \ - key: :code, \ - attribute: 'code' \ - ), \ - TableBuilderHelper::Column.new( \ - key: :name, \ - attribute: 'name', \ - link_to: lambda do |compliance_control| \ - compliance_control_set_compliance_control_path(@compliance_control_set, compliance_control) \ - end \ - ), \ - TableBuilderHelper::Column.new( \ - key: :criticity, \ - attribute: 'criticity' \ - ), \ - TableBuilderHelper::Column.new( \ - key: :comment, \ - attribute: 'comment' \ - ), \ - ], - sortable: true, - cls: 'table has-filter has-search', - model: ComplianceControl - - = flotted_links(@compliance_control_set.id)
\ No newline at end of file + .select_toolbox + ul + li.st_action.with_text + = link_to select_type_compliance_control_set_compliance_controls_path(@compliance_control_set.id) + span.fa.fa-plus + span + = t('compliance_control_sets.actions.add_compliance_control') + li.st_action.with_text + = link_to new_compliance_control_set_compliance_control_block_path(@compliance_control_set.id) + span.fa.fa-plus + span + = t('compliance_control_sets.actions.add_compliance_control_block') diff --git a/app/views/compliance_controls/_filters.html.slim b/app/views/compliance_controls/_filters.html.slim index c729190a0..d38da5d2d 100644 --- a/app/views/compliance_controls/_filters.html.slim +++ b/app/views/compliance_controls/_filters.html.slim @@ -1,3 +1,4 @@ +/ Compliance Control Filter = search_form_for @q_controls_form, url: compliance_control_set_path(@compliance_control_set), builder: SimpleForm::FormBuilder, @@ -19,7 +20,7 @@ collection: @compliance_control_set.compliance_control_blocks, as: :check_boxes, label: false, - label_method: lambda {|w| ("<span>#{transport_mode(w.transport_mode, w.transport_submode)}</span>").html_safe}, + label_method: lambda {|w| ("<span>#{transport_mode_text(w)}</span>").html_safe}, required: false, wrapper_html: {class: 'checkbox_list'} .form-group.togglable#subclass-filter diff --git a/app/views/import_tasks/new.html.slim b/app/views/import_tasks/new.html.slim index b4b77d344..dad004759 100644 --- a/app/views/import_tasks/new.html.slim +++ b/app/views/import_tasks/new.html.slim @@ -16,13 +16,12 @@ ul.nav.nav-pills = form.input :referential_id, as: :hidden, :input_html => { :value => @referential.id } = form.input :name = form.input :no_save, as: :boolean - = form.input :rule_parameter_set_id, as: :select, :collection => @referential.organisation.rule_parameter_sets.map { |rps| [ rps.name, rps.id ] }, :include_blank => true = form.input :resources, as: :file = render partial: "fields_#{import_task.data_format}_import", :locals => { :form => form } - + = form.actions do = form.action :submit, as: :button , :label => t( 'formtastic.import' ) = form.action :cancel, as: :link -= javascript_include_tag new_referential_import_task_path(@referential, :format => :js)
\ No newline at end of file += javascript_include_tag new_referential_import_task_path(@referential, :format => :js) diff --git a/app/views/lines/_filters.html.slim b/app/views/lines/_filters.html.slim index 7662c41b5..58f8f2431 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: 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'} + = f.input :transport_mode_eq_any, collection: StifTransportModeEnumerations.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: 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'} + = f.input :transport_submode_eq_any, collection: StifTransportSubmodeEnumerations.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/organisations/show.html.slim b/app/views/organisations/show.html.slim index 89e3b2870..e7ab18dd3 100644 --- a/app/views/organisations/show.html.slim +++ b/app/views/organisations/show.html.slim @@ -27,8 +27,3 @@ = link_to t('organisations.actions.edit'), edit_organisation_path, class: 'edit' li = link_to t('users.actions.new'), new_organisation_user_path, class: 'add' - - / FIXME ref #2007 - - if false - li - = link_to t('rule_parameter_sets.actions.new'), new_organisation_rule_parameter_set_path, class: 'add' diff --git a/app/views/rule_parameter_sets/_column_fields.html.slim b/app/views/rule_parameter_sets/_column_fields.html.slim deleted file mode 100644 index 176318765..000000000 --- a/app/views/rule_parameter_sets/_column_fields.html.slim +++ /dev/null @@ -1,13 +0,0 @@ -td -td = t("activerecord.attributes.#{object_name}.#{column}") -- suffix = "column_#{column}_object_#{object_name}" -td = f.check_box "unique_#{suffix}".to_sym, class: 'special' - -- 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"]]) -- else - td = t('rule_parameter_sets.labels.num_char') - -td = f.number_field "min_size_#{suffix}".to_sym, class: 'special' -td = f.number_field "max_size_#{suffix}".to_sym, class: 'special' diff --git a/app/views/rule_parameter_sets/_form.html.slim b/app/views/rule_parameter_sets/_form.html.slim deleted file mode 100644 index b93caae58..000000000 --- a/app/views/rule_parameter_sets/_form.html.slim +++ /dev/null @@ -1,73 +0,0 @@ -= semantic_form_for [ :organisation, @rule_parameter_set] do |form| - = form.inputs do - = form.input :name - = form.input :inter_stop_area_distance_min, as: :number - = form.input :parent_stop_area_distance_max, as: :number - = form.input :stop_areas_area - = form.input :inter_access_point_distance_min, as: :number - = form.input :inter_connection_link_distance_max, as: :number - = form.input :walk_default_speed_max, as: :number - = form.input :walk_occasional_traveller_speed_max, as: :number - = form.input :walk_frequent_traveller_speed_max, as: :number - = form.input :walk_mobility_restricted_traveller_speed_max, as: :number - - = form.input :inter_access_link_distance_max, as: :number - = form.input :inter_stop_duration_max, as: :number - = form.input :facility_stop_area_distance_max, as: :number - - = form.input :check_lines_in_groups, as: :boolean - = form.input :check_line_routes, as: :boolean - = form.input :check_stop_parent, as: :boolean - = form.input :check_connection_link_on_physical, as: :boolean - = form.input :check_allowed_transport_modes, as: :boolean - - table.table.table-striped.table-condensed - thead - tr - th = t("transport_modes.name") - - - RuleParameterSet.mode_attribute_prefixes.each do |prefix| - - if prefix == "allowed_transport" - - hidden = (@rule_parameter_set.check_allowed_transport_modes == "1") ? "" : 'display:none;' - th.allowed style="#{hidden}" - = RuleParameterSet.human_attribute_name(prefix) - - else - th = RuleParameterSet.human_attribute_name(prefix) - - tbody - / To be removed, see #1936 - - Chouette::Line.transport_mode.values.each do |mode| - tr - == render partial: "mode_fields", :locals => { f: form, mode: mode } - - = t("rule_parameter_sets.labels.columns_restrictions") - - table.table.table-bordered.table-condensed - - RuleParameterSet.validable_object_names.each do |object_name| - thead - tr - th - = form.check_box "check_#{object_name}".to_sym, class: 'special' - = t("activerecord.models.#{object_name}.one") - - th = RuleParameterSet.human_attribute_name("attribute") - th = RuleParameterSet.human_attribute_name("unique") - th = RuleParameterSet.human_attribute_name("string_type") - th = RuleParameterSet.human_attribute_name("min_size") - th = RuleParameterSet.human_attribute_name("max_size") - - tbody - - 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 } - - = form.actions do - = form.action :submit, as: :button - = form.action :cancel, as: :link - -javascript: - $(function() { - $( "#rule_parameter_set_check_allowed_transport_modes").change( function() { - $(".allowed").toggle(); - }); - }); diff --git a/app/views/rule_parameter_sets/_mode_fields.html.slim b/app/views/rule_parameter_sets/_mode_fields.html.slim deleted file mode 100644 index 848e065f3..000000000 --- a/app/views/rule_parameter_sets/_mode_fields.html.slim +++ /dev/null @@ -1,9 +0,0 @@ -td = t("transport_modes.label.#{mode}") - -- RuleParameterSet.mode_attribute_prefixes.each do |prefix| - - if prefix == "allowed_transport" - - hidden = (@rule_parameter_set.check_allowed_transport_modes == "1") ? "" : 'display: none;' - td.allowed style="#{hidden}" - = f.check_box "#{prefix}_mode_#{mode}".to_sym, class: 'special' - - else - td = f.number_field "#{prefix}_mode_#{mode}".to_sym, class: 'special'
\ No newline at end of file diff --git a/app/views/rule_parameter_sets/_mode_selection.html.slim b/app/views/rule_parameter_sets/_mode_selection.html.slim deleted file mode 100644 index b9afd10b6..000000000 --- a/app/views/rule_parameter_sets/_mode_selection.html.slim +++ /dev/null @@ -1,4 +0,0 @@ -/ select.undescribed_modes -/ - Chouette::TransportMode.all.map { |m| m.name.downcase}.each do |mode| -/ option value="#{mode}" -/ = t("transport_modes.label.#{mode}")
\ No newline at end of file diff --git a/app/views/rule_parameter_sets/_rule_parameter_set.html.slim b/app/views/rule_parameter_sets/_rule_parameter_set.html.slim deleted file mode 100644 index 5603d2b80..000000000 --- a/app/views/rule_parameter_sets/_rule_parameter_set.html.slim +++ /dev/null @@ -1,14 +0,0 @@ -#index_item.panel.panel-default.rule_parameter_set - .panel-heading - .panel-title.clearfix - span.pull-right - = link_to edit_organisation_rule_parameter_set_path( rule_parameter_set), class: 'btn btn-default btn-sm' do - span.fa.fa-pencil - - - if rule_parameter_set.organisation.rule_parameter_sets.size > 1 - = link_to organisation_rule_parameter_set_path( rule_parameter_set), method: :delete, data: { confirm: t('rule_parameter_sets.actions.destroy_confirm') }, class: 'btn btn-danger btn-sm' do - span.fa.fa-trash-o - - h5 - = link_to( organisation_rule_parameter_set_path( rule_parameter_set), class: 'preview', title: "#{RuleParameterSet.model_name.human.capitalize} #{rule_parameter_set.name}") do - span.name = truncate(rule_parameter_set.name, length: 20)
\ No newline at end of file diff --git a/app/views/rule_parameter_sets/_transport_mode_parameter_set_fields.html.slim b/app/views/rule_parameter_sets/_transport_mode_parameter_set_fields.html.slim deleted file mode 100644 index ede7e2b75..000000000 --- a/app/views/rule_parameter_sets/_transport_mode_parameter_set_fields.html.slim +++ /dev/null @@ -1,9 +0,0 @@ -= f.inputs class: 'transport_mode_parameter_sets nested-fields' do - = f.input :transport_mode, as: :select, collection: transport_mode_label_pairs, include_blank: false, label: "transport_mode", wrapper_html: { class: 'fl1' } - = f.input :inter_stop_area_distance_min, as: :number, label: "inter_stop_area_distance_min", wrapper_html: { class: 'fl1' } - = f.input :inter_stop_area_distance_max, as: :number, label: "inter_stop_area_distance_max", wrapper_html: { class: 'fl2' } - = f.input :speed_min, as: :number, label: "speed_min", wrapper_html: { class: 'fl2' } - = f.input :speed_max, as: :number, label: "speed_max", wrapper_html: { class: 'fl2' } - = f.input :inter_stop_duration_variation_max, as: :number, label: "inter_stop_duration_variation_max", wrapper_html: { class: 'fl2' } - - = link_to_remove_association t('actions.destroy'), f diff --git a/app/views/rule_parameter_sets/edit.html.slim b/app/views/rule_parameter_sets/edit.html.slim deleted file mode 100644 index b49b02cf6..000000000 --- a/app/views/rule_parameter_sets/edit.html.slim +++ /dev/null @@ -1,3 +0,0 @@ -= title_tag t('rule_parameter_sets.edit.title', rule_parameter_set: @rule_parameter_set.name ) - -== render 'form'
\ No newline at end of file diff --git a/app/views/rule_parameter_sets/index.html.slim b/app/views/rule_parameter_sets/index.html.slim deleted file mode 100644 index 6be57d68e..000000000 --- a/app/views/rule_parameter_sets/index.html.slim +++ /dev/null @@ -1,7 +0,0 @@ -= title_tag t('rule_parameter_sets.index.title') - -= paginated_content(@rule_parameter_sets) - -- content_for :sidebar do - ul.actions - li = link_to t('rule_parameter_sets.actions.new'), new_organisation_rule_parameter_set_path, class: 'add'
\ No newline at end of file diff --git a/app/views/rule_parameter_sets/mode.js.slim b/app/views/rule_parameter_sets/mode.js.slim deleted file mode 100644 index 392446a7c..000000000 --- a/app/views/rule_parameter_sets/mode.js.slim +++ /dev/null @@ -1,9 +0,0 @@ -| if ( $("#specific_parameters_#{@mode}").length == 0 ) { -| - form_content = "" -| - semantic_form_for [@referential, @rule_parameter_set] do |form| -| - form_content += render(partial: 'mode_fields', locals: { mode: @mode, f: form }) -| $('#added_mode_parameter_set').before("#{escape_javascript(form_content).html_safe}"); -| } else { -| $("#_destroy_mode_#{@mode}").attr( "value", false); -| $("#specific_parameters_#{@mode}").toggle(); -| }
\ No newline at end of file diff --git a/app/views/rule_parameter_sets/new.html.slim b/app/views/rule_parameter_sets/new.html.slim deleted file mode 100644 index c4e4c5b4d..000000000 --- a/app/views/rule_parameter_sets/new.html.slim +++ /dev/null @@ -1,3 +0,0 @@ -= title_tag t('rule_parameter_sets.new.title') - -== render 'form'
\ No newline at end of file diff --git a/app/views/rule_parameter_sets/show.html.slim b/app/views/rule_parameter_sets/show.html.slim deleted file mode 100644 index 6adfeab89..000000000 --- a/app/views/rule_parameter_sets/show.html.slim +++ /dev/null @@ -1,143 +0,0 @@ -= title_tag t('rule_parameter_sets.show.title', :rule_parameter_set => @rule_parameter_set.name ) - -.rule_parameter_set_show - .summary - p - label = "#{RuleParameterSet.human_attribute_name('stop_areas_area')} : " - = @rule_parameter_set.stop_areas_area - - .attributes_group - span.title = t(".min_distance") - - .columns - .two_columns - label = "#{t('.inter_stop_area_distance_min')} : " - span.value = @rule_parameter_set.inter_stop_area_distance_min - - .two_columns - label = "#{t('.inter_access_point_distance_min')} : " - span.value = @rule_parameter_set.inter_access_point_distance_min - - .attributes_group - span.title = t(".max_distance") - - .columns - .two_columns - label = "#{t('.parent_stop_area_distance_max')} : " - span.value = @rule_parameter_set.parent_stop_area_distance_max - - .two_columns - label = "#{t('.inter_connection_link_distance_max')} : " - span.value = @rule_parameter_set.inter_connection_link_distance_max - - .columns - .two_columns - label = "#{t('.inter_access_link_distance_max')} : " - span.value = @rule_parameter_set.inter_access_link_distance_max - - .two_columns - label = "#{t('.facility_stop_area_distance_max')} : " - span.value = @rule_parameter_set.facility_stop_area_distance_max - - .attributes_group - span.title = t(".walk_speed") - - .columns - .four_columns - label = "#{t('.walk_default_speed_max')} : " - span.value = @rule_parameter_set.walk_default_speed_max - - .four_columns - label = "#{t('.walk_occasional_traveller_speed_max')} : " - span.value = @rule_parameter_set.walk_occasional_traveller_speed_max - - .four_columns - label = "#{t('.walk_frequent_traveller_speed_max')} : " - span.value = @rule_parameter_set.walk_frequent_traveller_speed_max - - .four_columns - label = "#{t('.walk_mobility_restricted_traveller_speed_max')} : " - span.value = @rule_parameter_set.walk_mobility_restricted_traveller_speed_max - - p - label = "#{t('.inter_stop_duration_max')} :" - = @rule_parameter_set.inter_stop_duration_max - - p - label = "#{RuleParameterSet.human_attribute_name('check_lines_in_groups')} : " - = boolean_value(@rule_parameter_set.check_lines_in_groups) - - p - label = "#{RuleParameterSet.human_attribute_name('check_line_routes')} : " - = boolean_value(@rule_parameter_set.check_line_routes) - - p - label = "#{RuleParameterSet.human_attribute_name('check_stop_parent')} : " - = boolean_value(@rule_parameter_set.check_stop_parent) - - p - label = "#{RuleParameterSet.human_attribute_name('check_connection_link_on_physical')} : " - = boolean_value(@rule_parameter_set.check_connection_link_on_physical) - - p - label = "#{RuleParameterSet.human_attribute_name('check_allowed_transport_modes')} : " - = boolean_value(@rule_parameter_set.check_allowed_transport_modes) - - .rule_parameter_by_mode - label - = t(".rule_parameter_by_mode") - = t(".modes_allowed") if @rule_parameter_set.check_allowed_transport_modes == "1" - - table.table.table-striped.table-condensed - tr - th = t("transport_modes.name") - - - RuleParameterSet.mode_attribute_prefixes.each do |prefix| - - unless prefix == "allowed_transport" - th = RuleParameterSet.human_attribute_name(prefix) - / To be removed, see #1936 - - Chouette::Line.transport_mode.values.each do |mode| - - if @rule_parameter_set.allowed(mode) - tr - td = t("transport_modes.label.#{mode}") - - - RuleParameterSet.mode_attribute_prefixes.each do |prefix| - - unless prefix == "allowed_transport" - td = @rule_parameter_set.send "#{prefix}_mode_#{mode}" - - .rule_parameter_by_object - label = t("rule_parameter_sets.labels.columns_restrictions") - - table.table.table-bordered.table-condensed - - RuleParameterSet.validable_object_names.each do |object_name| - - if @rule_parameter_set.selected(object_name) - thead - tr - th = t("activerecord.models.#{object_name}.one") - th = RuleParameterSet.human_attribute_name("attribute") - th = RuleParameterSet.human_attribute_name("unique") - th = RuleParameterSet.human_attribute_name("string_type") - th = RuleParameterSet.human_attribute_name("min_size") - th = RuleParameterSet.human_attribute_name("max_size") - - tbody - - RuleParameterSet.validable_columns[object_name].each do |col| - - if @rule_parameter_set.selected_column(object_name,col) - tr - td - td = t("activerecord.attributes.#{object_name}.#{col}") - - suffix = "column_#{col}_object_#{object_name}" - td = unique(@rule_parameter_set.send "unique_#{suffix}".to_sym) - td = pattern(@rule_parameter_set.send "pattern_#{suffix}".to_sym) - td = @rule_parameter_set.send "min_size_#{suffix}".to_sym - td = @rule_parameter_set.send "max_size_#{suffix}".to_sym - -- content_for :sidebar do - ul.actions - li = link_to t('rule_parameter_sets.actions.new'), new_organisation_rule_parameter_set_path, class: 'add' - - - if @rule_parameter_set.persisted? - li = link_to t('rule_parameter_sets.actions.edit'), edit_organisation_rule_parameter_set_path( @rule_parameter_set), class: 'edit' - - - if current_organisation.rule_parameter_sets.size > 1 - li = link_to t('rule_parameter_sets.actions.destroy'), organisation_rule_parameter_set_path( @rule_parameter_set), method: :delete, data: { confirm: t('rule_parameter_sets.actions.destroy_confirm') }, class: 'remove' |
