diff options
Diffstat (limited to 'app')
39 files changed, 196 insertions, 232 deletions
| diff --git a/app/controllers/compliance_control_sets_controller.rb b/app/controllers/compliance_control_sets_controller.rb index 20ddcbe97..306b2eac7 100644 --- a/app/controllers/compliance_control_sets_controller.rb +++ b/app/controllers/compliance_control_sets_controller.rb @@ -14,11 +14,15 @@ class ComplianceControlSetsController < BreadcrumbController    end    def show -    show! do -      @compliance_control_set = @compliance_control_set.decorate +    show! do |format| +      format.html { +        @compliance_control_set = @compliance_control_set.decorate +        @compliance_controls = decorate_compliance_controls(@compliance_control_set.compliance_controls) +      }      end    end +  private    def decorate_compliance_control_sets(compliance_control_sets)      ModelDecorator.decorate(        compliance_control_sets, @@ -33,6 +37,12 @@ class ComplianceControlSetsController < BreadcrumbController    # end    private +  def decorate_compliance_controls(compliance_controls) +    ModelDecorator.decorate( +      compliance_controls, +      with: ComplianceControlDecorator, +    ) +  end    def ransack_updated_at_params      start_date = [] diff --git a/app/controllers/compliance_controls_controller.rb b/app/controllers/compliance_controls_controller.rb index dad9b935a..eb1ba68ea 100644 --- a/app/controllers/compliance_controls_controller.rb +++ b/app/controllers/compliance_controls_controller.rb @@ -1,18 +1,11 @@  class ComplianceControlsController < BreadcrumbController -  include PolicyChecker    defaults resource_class: ComplianceControl    belongs_to :compliance_control_set -  def index -    index! do |format| -      format.html { -        @compliance_controls = decorate_compliance_controls(@compliance_controls) -      } -    end -  end - -  def create -    create!(notice: t('notice.compliance_control.created')) +  def new +    @compliance_control_set = parent +    @compliance_control = GenericAttributeControl::MinMax.new +    @compliance_control.build_compliance_control_block    end    def update @@ -20,19 +13,14 @@ class ComplianceControlsController < BreadcrumbController      update!(notice: t('notice.compliance_control.updated')) { path }    end -  def destroy -    destroy!(notice: t('notice.compliance_control.destroyed')) -  end -    private -  def decorate_compliance_controls(compliance_controls) -    ModelDecorator.decorate( -      compliance_controls, -      with: ComplianceControlDecorator, -    ) +  def dynamic_attributes_params +    params.require(:compliance_control).permit(:type).values[0].constantize.dynamic_attributes    end    def compliance_control_params -    params.require(:compliance_control).permit(:name, :code, :criticity, :comment, :control_attributes) +    base = [:name, :code, :origin_code, :criticity, :comment, :control_attributes, :type, compliance_control_block_attributes: [:name, :transport_mode]] +    permited = base + dynamic_attributes_params +    params.require(:compliance_control).permit(permited)    end  end diff --git a/app/decorators/compliance_control_decorator.rb b/app/decorators/compliance_control_decorator.rb index 38b968ad1..3a05a5c59 100644 --- a/app/decorators/compliance_control_decorator.rb +++ b/app/decorators/compliance_control_decorator.rb @@ -4,21 +4,21 @@ class ComplianceControlDecorator < Draper::Decorator    def action_links      links = [] -    if h.policy(object).destroy? +    # if h.policy(object).destroy?        links << Link.new(          content: h.destroy_link_content,          href: h.compliance_control_set_compliance_control_path(object.compliance_control_set.id, object.id),          method: :delete,          data: { confirm: h.t('compliance_controls.actions.destroy_confirm') }        ) -    end +    # end -    if h.policy(object).edit? +    # if h.policy(object).edit?        links << Link.new(          content: h.t('compliance_controls.actions.edit'), -        href:  h.edit_compliance_control_set_path(object.compliance_control_set.id, object.id) +        href:  h.edit_compliance_control_set_compliance_control_path(object.compliance_control_set.id, object.id)        ) -    end +    # end      links    end diff --git a/app/decorators/compliance_control_set_decorator.rb b/app/decorators/compliance_control_set_decorator.rb index 876a54d09..f9e4de836 100644 --- a/app/decorators/compliance_control_set_decorator.rb +++ b/app/decorators/compliance_control_set_decorator.rb @@ -19,6 +19,13 @@ class ComplianceControlSetDecorator < Draper::Decorator          href:  h.edit_compliance_control_set_path(object.id)        )      # end + +    # if h.policy(ComplianceControl).create? +      links << Link.new( +        content: h.t('compliance_control_sets.actions.add_compliance_control'), +        href:  h.new_compliance_control_set_compliance_control_path(object.id) +      ) +    # end      links    end diff --git a/app/models/compliance_control.rb b/app/models/compliance_control.rb index 12ff4737a..c5389e832 100644 --- a/app/models/compliance_control.rb +++ b/app/models/compliance_control.rb @@ -1,12 +1,42 @@  class ComplianceControl < ActiveRecord::Base +  extend Enumerize    belongs_to :compliance_control_set -  belongs_to :compliance_control_block +  has_one :compliance_control_block, dependent: :destroy +  accepts_nested_attributes_for :compliance_control_block + +  @@default_criticity = :warning +  @@default_code = "" -  extend Enumerize    enumerize :criticity, in: %i(info warning error), scope: true, default: :info    validates :criticity, presence: true    validates :name, presence: true    validates :code, presence: true +  validates :origin_code, presence: true    validates :compliance_control_set, presence: true + +  def self.policy_class +    ComplianceControlPolicy +  end + +  def self.inherited(child) +    child.instance_eval do +      def model_name +        ComplianceControl.model_name +      end +    end +    super +  end + +  before_validation(on: :create) do +   self.name ||= self.class.name +   self.code ||= @@default_code +   self.origin_code ||= @@default_code +   self.criticity ||= @@default_criticity +  end +  end + +# Ensure STI subclasses are loaded +# http://guides.rubyonrails.org/autoloading_and_reloading_constants.html#autoloading-and-sti +require_dependency 'generic_attribute_control/min_max' diff --git a/app/models/compliance_control_block.rb b/app/models/compliance_control_block.rb index cf5a9d72b..a08e271f6 100644 --- a/app/models/compliance_control_block.rb +++ b/app/models/compliance_control_block.rb @@ -1,3 +1,16 @@  class ComplianceControlBlock < ActiveRecord::Base    belongs_to :compliance_control_set +  belongs_to :compliance_control + +  before_save :set_compliance_control_set + +  hstore_accessor :condition_attributes, transport_mode: :string + +  def set_compliance_control_set +    self.compliance_control_set = self.compliance_control.compliance_control_set +  end + +  def self.transport_modes +    ["all"] + StifTransportModeEnumerations.transport_mode.values +  end  end diff --git a/app/models/compliance_control_set.rb b/app/models/compliance_control_set.rb index 4dafd48c7..f8f491cba 100644 --- a/app/models/compliance_control_set.rb +++ b/app/models/compliance_control_set.rb @@ -1,11 +1,9 @@  class ComplianceControlSet < ActiveRecord::Base    belongs_to :organisation -  has_many :compliance_controls +  has_many :compliance_controls, dependent: :destroy    validates :name, presence: true -    scope :where_updated_at_between, ->(start_date, end_date) do      where('updated_at BETWEEN ? AND ?', start_date, end_date)    end -  end diff --git a/app/models/generic_attribute_control/min_max.rb b/app/models/generic_attribute_control/min_max.rb new file mode 100644 index 000000000..6a2e1f284 --- /dev/null +++ b/app/models/generic_attribute_control/min_max.rb @@ -0,0 +1,17 @@ +module GenericAttributeControl +  class MinMax < ComplianceControl +    hstore_accessor :control_attributes, minimum: :integer, maximum: :integer + +    @@default_criticity = :warning +    @@default_code = "3-Generic-2" + +    validate :min_max_values +    def min_max_values +      true +    end + +    def self.dynamic_attributes +      self.hstore_metadata_for_control_attributes.keys +    end +  end +end diff --git a/app/models/generic_attribute_control/pattern.rb b/app/models/generic_attribute_control/pattern.rb new file mode 100644 index 000000000..5b27da54e --- /dev/null +++ b/app/models/generic_attribute_control/pattern.rb @@ -0,0 +1,13 @@ +module GenericAttributeControl +  class Pattern < ComplianceControl +    hstore_accessor :control_attributes, value: :string, pattern: :string + +    @@default_criticity = :warning +    @@default_code = "3-Generic-3" + +    validate :pattern_match +    def pattern_match +      true +    end +  end +end
\ No newline at end of file diff --git a/app/models/generic_attribute_control/uniqueness.rb b/app/models/generic_attribute_control/uniqueness.rb new file mode 100644 index 000000000..4f1a82083 --- /dev/null +++ b/app/models/generic_attribute_control/uniqueness.rb @@ -0,0 +1,13 @@ +module GenericAttributeControl +  class Uniqueness < ComplianceControl +    hstore_accessor :control_attributes, name: :string + +    @@default_criticity = :warning +    @@default_code = "3-Generic-3" + +    validate :unique_values +    def unique_values +      true +    end +  end +end
\ No newline at end of file diff --git a/app/models/generic_attribute_min_max.rb b/app/models/generic_attribute_min_max.rb deleted file mode 100644 index e9a127c56..000000000 --- a/app/models/generic_attribute_min_max.rb +++ /dev/null @@ -1,27 +0,0 @@ -#module ComplianceControls - -  class GenericAttributeMinMax < ComplianceControl - - -    hstore_accessor :control_attributes, minimum: :integer, maximum: :integer -    #attribute :minimum, type: :integer, optionnal: true -    #attribute :maximum, type: :integer, optionnal: true -    # #attribute :target, type: ModelAttribute - -    @@default_criticity = :warning -    @@default_code = "3-Generic-2" - -    validate :min_max_values -    def min_max_values -      true -    end - -    after_initialize do -      self.name = 'GenericAttributeMinMax' -      self.code = @@default_code -      self.criticity = @@default_criticity -    end - -  end - -#end diff --git a/app/models/generic_attribute_pattern.rb b/app/models/generic_attribute_pattern.rb deleted file mode 100644 index 0043f1563..000000000 --- a/app/models/generic_attribute_pattern.rb +++ /dev/null @@ -1,23 +0,0 @@ -#module ComplianceControls - -  class GenericAttributePattern < ComplianceControl - -    hstore_accessor :control_attributes, value: :string, pattern: :string - -    @@default_criticity = :warning -    @@default_code = "3-Generic-3" - -    validate :pattern_match -    def pattern_match -      true -    end - -    after_initialize do -      self.name = 'GenericAttributeMinMax' -      self.code = @@default_code -      self.criticity = @@default_criticity -    end - -  end - -#end
\ No newline at end of file diff --git a/app/models/generic_attribute_uniqueness.rb b/app/models/generic_attribute_uniqueness.rb deleted file mode 100644 index dcf4a16c2..000000000 --- a/app/models/generic_attribute_uniqueness.rb +++ /dev/null @@ -1,23 +0,0 @@ -#module ComplianceControls - -  class GenericAttributeUniqueness < ComplianceControl - -    hstore_accessor :control_attributes, name: :string - -    @@default_criticity = :warning -    @@default_code = "3-Generic-3" - -    validate :unique_values -    def unique_values -      true -    end - -    after_initialize do -      self.name = 'GenericAttributeMinMax' -      self.code = @@default_code -      self.criticity = @@default_criticity -    end - -  end - -#end
\ No newline at end of file diff --git a/app/models/journey_pattern_control/duplicates.rb b/app/models/journey_pattern_control/duplicates.rb index 78ca07e90..d3908cfc0 100644 --- a/app/models/journey_pattern_control/duplicates.rb +++ b/app/models/journey_pattern_control/duplicates.rb @@ -3,11 +3,5 @@ module JourneyPatternControl      @@default_criticity = :warning      @@default_code = "3-JourneyPattern-1" - -    after_initialize do -      self.name = self.class.name -      self.code = @@default_code -      self.criticity = @@default_criticity -    end    end  end diff --git a/app/models/journey_pattern_control/vehicle_journey.rb b/app/models/journey_pattern_control/vehicle_journey.rb index a90c16138..d7151f147 100644 --- a/app/models/journey_pattern_control/vehicle_journey.rb +++ b/app/models/journey_pattern_control/vehicle_journey.rb @@ -3,11 +3,5 @@ module JourneyPatternControl      @@default_criticity = :warning      @@default_code = "3-JourneyPattern-2" - -    after_initialize do -      self.name = self.class.name -      self.code = @@default_code -      self.criticity = @@default_criticity -    end    end  end
\ No newline at end of file diff --git a/app/models/line_control/route.rb b/app/models/line_control/route.rb index 8ac13a080..21c5eca06 100644 --- a/app/models/line_control/route.rb +++ b/app/models/line_control/route.rb @@ -3,11 +3,5 @@ module LineControl      @@default_criticity = :warning      @@default_code = "3-Line-1" - -    after_initialize do -      self.name = self.class.name -      self.code = @@default_code -      self.criticity = @@default_criticity -    end    end  end
\ No newline at end of file diff --git a/app/models/route_control/duplicates.rb b/app/models/route_control/duplicates.rb index 379d7cf98..fb9c34e0a 100644 --- a/app/models/route_control/duplicates.rb +++ b/app/models/route_control/duplicates.rb @@ -3,11 +3,5 @@ module RouteControl      @@default_criticity = :warning      @@default_code = "3-Route-4" - -    after_initialize do -      self.name = self.class.name -      self.code = @@default_code -      self.criticity = @@default_criticity -    end    end  end diff --git a/app/models/route_control/journey_pattern.rb b/app/models/route_control/journey_pattern.rb index 0559fac42..08f603d8f 100644 --- a/app/models/route_control/journey_pattern.rb +++ b/app/models/route_control/journey_pattern.rb @@ -3,11 +3,5 @@ module RouteControl      @@default_criticity = :warning      @@default_code = "3-Route-3" - -    after_initialize do -      self.name = self.class.name -      self.code = @@default_code -      self.criticity = @@default_criticity -    end    end  end
\ No newline at end of file diff --git a/app/models/route_control/minimum_length.rb b/app/models/route_control/minimum_length.rb index 14bc7064f..f42b88748 100644 --- a/app/models/route_control/minimum_length.rb +++ b/app/models/route_control/minimum_length.rb @@ -3,11 +3,5 @@ module RouteControl      @@default_criticity = :error      @@default_code = "3-Route-6" - -    after_initialize do -      self.name = self.class.name -      self.code = @@default_code -      self.criticity = @@default_criticity -    end    end  end diff --git a/app/models/route_control/omnibus_journey_pattern.rb b/app/models/route_control/omnibus_journey_pattern.rb index 2f09ff735..3b9f6d06f 100644 --- a/app/models/route_control/omnibus_journey_pattern.rb +++ b/app/models/route_control/omnibus_journey_pattern.rb @@ -3,11 +3,5 @@ module RouteControl      @@default_criticity = :warning      @@default_code = "3-Route-9" - -    after_initialize do -      self.name = self.class.name -      self.code = @@default_code -      self.criticity = @@default_criticity -    end    end  end diff --git a/app/models/route_control/opposite_route.rb b/app/models/route_control/opposite_route.rb index d5f2bc59e..e91b081e2 100644 --- a/app/models/route_control/opposite_route.rb +++ b/app/models/route_control/opposite_route.rb @@ -3,12 +3,5 @@ module RouteControl      @@default_criticity = :error      @@default_code = "3-Route-2" - -    after_initialize do -      self.name = self.class.name -      self.code = @@default_code -      self.criticity = @@default_criticity -    end -    end  end diff --git a/app/models/route_control/opposite_route_terminus.rb b/app/models/route_control/opposite_route_terminus.rb index e72229ca3..fd62b7684 100644 --- a/app/models/route_control/opposite_route_terminus.rb +++ b/app/models/route_control/opposite_route_terminus.rb @@ -3,11 +3,5 @@ module RouteControl      @@default_criticity = :warning      @@default_code = "3-Route-5" - -    after_initialize do -      self.name = self.class.name -      self.code = @@default_code -      self.criticity = @@default_criticity -    end    end  end
\ No newline at end of file diff --git a/app/models/route_control/speed.rb b/app/models/route_control/speed.rb index fb07b5c87..0a2b6ac76 100644 --- a/app/models/route_control/speed.rb +++ b/app/models/route_control/speed.rb @@ -5,11 +5,5 @@ module VehicleJourneyControl      @@default_criticity = :warning      @@default_code = "3-VehicleJourney-2" - -    after_initialize do -      self.name = self.class.name -      self.code = @@default_code -      self.criticity = @@default_criticity -    end    end  end diff --git a/app/models/route_control/stop_points_in_journey_pattern.rb b/app/models/route_control/stop_points_in_journey_pattern.rb index 195257a4a..dced6c005 100644 --- a/app/models/route_control/stop_points_in_journey_pattern.rb +++ b/app/models/route_control/stop_points_in_journey_pattern.rb @@ -3,11 +3,5 @@ module RouteControl      @@default_criticity = :error      @@default_code = "3-Route-6" - -    after_initialize do -      self.name = self.class.name -      self.code = @@default_code -      self.criticity = @@default_criticity -    end    end  end diff --git a/app/models/route_control/time_table.rb b/app/models/route_control/time_table.rb index 911807ba9..5d0f21b40 100644 --- a/app/models/route_control/time_table.rb +++ b/app/models/route_control/time_table.rb @@ -3,11 +3,5 @@ module VehicleJourneyControl      @@default_criticity = :error      @@default_code = "3-VehicleJourney-4" - -    after_initialize do -      self.name = self.class.name -      self.code = @@default_code -      self.criticity = @@default_criticity -    end    end  end diff --git a/app/models/route_control/unactivated_stop_points.rb b/app/models/route_control/unactivated_stop_points.rb index 8ab680490..dee846cbb 100644 --- a/app/models/route_control/unactivated_stop_points.rb +++ b/app/models/route_control/unactivated_stop_points.rb @@ -3,11 +3,5 @@ module RouteControl      @@default_criticity = :warning      @@default_code = "3-Route-10" - -    after_initialize do -      self.name = self.class.name -      self.code = @@default_code -      self.criticity = @@default_criticity -    end    end  end diff --git a/app/models/route_control/vehicle_journey_at_stops.rb b/app/models/route_control/vehicle_journey_at_stops.rb index 02a43fb10..149282fe6 100644 --- a/app/models/route_control/vehicle_journey_at_stops.rb +++ b/app/models/route_control/vehicle_journey_at_stops.rb @@ -3,11 +3,5 @@ module VehicleJourneyControl      @@default_criticity = :error      @@default_code = "3-VehicleJourney-5" - -    after_initialize do -      self.name = self.class.name -      self.code = @@default_code -      self.criticity = @@default_criticity -    end    end  end diff --git a/app/models/route_control/zdl_stop_area.rb b/app/models/route_control/zdl_stop_area.rb index 4561c9b2e..088a1d2f2 100644 --- a/app/models/route_control/zdl_stop_area.rb +++ b/app/models/route_control/zdl_stop_area.rb @@ -3,11 +3,5 @@ module RouteControl      @@default_criticity = :warning      @@default_code = "3-Route-1" - -    after_initialize do -      self.name = self.class.name -      self.code = @@default_code -      self.criticity = @@default_criticity -    end    end  end diff --git a/app/models/routing_constaint_zone_control/maximum_length.rb b/app/models/routing_constaint_zone_control/maximum_length.rb index fd63ffeda..4d289de63 100644 --- a/app/models/routing_constaint_zone_control/maximum_length.rb +++ b/app/models/routing_constaint_zone_control/maximum_length.rb @@ -3,11 +3,5 @@ module RoutingConstaintZoneControl      @@default_criticity = :warning      @@default_code = "3-ITL-2" - -    after_initialize do -      self.name = self.class.name -      self.code = @@default_code -      self.criticity = @@default_criticity -    end    end  end
\ No newline at end of file diff --git a/app/models/routing_constaint_zone_control/minimum_length.rb b/app/models/routing_constaint_zone_control/minimum_length.rb index c17bbc834..28f0791a7 100644 --- a/app/models/routing_constaint_zone_control/minimum_length.rb +++ b/app/models/routing_constaint_zone_control/minimum_length.rb @@ -3,11 +3,5 @@ module RoutingConstaintZoneControl      @@default_criticity = :warning      @@default_code = "3-ITL-3" - -    after_initialize do -      self.name = self.class.name -      self.code = @@default_code -      self.criticity = @@default_criticity -    end    end  end
\ No newline at end of file diff --git a/app/models/routing_constaint_zone_control/unactivated_stop_point.rb b/app/models/routing_constaint_zone_control/unactivated_stop_point.rb index 92a1d1a58..fe5381a34 100644 --- a/app/models/routing_constaint_zone_control/unactivated_stop_point.rb +++ b/app/models/routing_constaint_zone_control/unactivated_stop_point.rb @@ -3,11 +3,5 @@ module RoutingConstaintZoneControl      @@default_criticity = :warning      @@default_code = "3-ITL-1" - -    after_initialize do -      self.name = self.class.name -      self.code = @@default_code -      self.criticity = @@default_criticity -    end    end  end diff --git a/app/models/vechicle_journey_control/delta.rb b/app/models/vechicle_journey_control/delta.rb index d4e1e6eca..d77eff48a 100644 --- a/app/models/vechicle_journey_control/delta.rb +++ b/app/models/vechicle_journey_control/delta.rb @@ -5,11 +5,5 @@ module VehicleJourneyControl      @@default_criticity = :warning      @@default_code = "3-VehicleJourney-3" - -    after_initialize do -      self.name = self.class.name -      self.code = @@default_code -      self.criticity = @@default_criticity -    end    end  end diff --git a/app/models/vechicle_journey_control/waiting_time.rb b/app/models/vechicle_journey_control/waiting_time.rb index a7e90b6ac..cbffa5526 100644 --- a/app/models/vechicle_journey_control/waiting_time.rb +++ b/app/models/vechicle_journey_control/waiting_time.rb @@ -3,11 +3,5 @@ module VehicleJourneyControl      @@default_criticity = :warning      @@default_code = "3-VehicleJourney-1" - -    after_initialize do -      self.name = self.class.name -      self.code = @@default_code -      self.criticity = @@default_criticity -    end    end  end diff --git a/app/models/workbench.rb b/app/models/workbench.rb index 30692e625..fe4e6cce1 100644 --- a/app/models/workbench.rb +++ b/app/models/workbench.rb @@ -2,6 +2,7 @@ class Workbench < ActiveRecord::Base    belongs_to :organisation    belongs_to :line_referential    belongs_to :stop_area_referential +  belongs_to :output, class_name: 'ReferentialSuite'    has_many :lines, -> (workbench) { Stif::MyWorkbenchScopes.new(workbench).line_scope(self) }, through: :line_referential    has_many :networks, through: :line_referential @@ -13,10 +14,13 @@ class Workbench < ActiveRecord::Base    validates :name, presence: true    validates :organisation, presence: true +  validates :output, presence: true    has_many :referentials    has_many :referential_metadatas, through: :referentials, source: :metadatas +  before_validation :initialize_output +    def all_referentials      if line_ids.empty? @@ -26,4 +30,12 @@ class Workbench < ActiveRecord::Base      end    end +  private + +  def initialize_output +    # Don't reset `output` if it's already initialised +    return if !output.nil? + +    self.output = ReferentialSuite.create +  end  end diff --git a/app/policies/compliance_control_policy.rb b/app/policies/compliance_control_policy.rb index fbea366f5..09250f013 100644 --- a/app/policies/compliance_control_policy.rb +++ b/app/policies/compliance_control_policy.rb @@ -6,14 +6,17 @@ class ComplianceControlPolicy < ApplicationPolicy    end    def destroy? -    user.has_permission?('compliance_controls.destroy') +    # user.has_permission?('compliance_controls.destroy') +    true    end    def create? -    user.has_permission?('compliance_controls.create') +    # user.has_permission?('compliance_controls.create') +    true    end    def update? -    user.has_permission?('compliance_controls.update') +    # user.has_permission?('compliance_controls.update') +    true    end  end diff --git a/app/views/compliance_control_sets/show.html.slim b/app/views/compliance_control_sets/show.html.slim index b4a5b2260..d7d4678ba 100644 --- a/app/views/compliance_control_sets/show.html.slim +++ b/app/views/compliance_control_sets/show.html.slim @@ -22,4 +22,38 @@      .row        .col-lg-6.col-md-6.col-sm-12.col-xs-12          = definition_list t('metadatas'), -            ComplianceControlSet.human_attribute_name(:name) => @compliance_control_set.name
\ No newline at end of file +            ComplianceControlSet.human_attribute_name(:name) => @compliance_control_set.name + +  .container-fluid +    .row +      .col-lg-12 +        /= render 'filters' +      .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' + + diff --git a/app/views/compliance_controls/_form.html.slim b/app/views/compliance_controls/_form.html.slim index 1377ed12b..bb8f68464 100644 --- a/app/views/compliance_controls/_form.html.slim +++ b/app/views/compliance_controls/_form.html.slim @@ -2,11 +2,19 @@    .row      .col-lg-12        = f.input :name -      = f.input :type +      = f.input :type, as: :select, collection: ComplianceControl.subclasses        = f.input :code        = f.input :criticity        = f.input :comment +      - f.object.class.dynamic_attributes.each do |attribute| +        = f.input attribute.to_sym +      end + +      = f.simple_fields_for :compliance_control_block do |c| +        = c.input :name +        = c.input :transport_mode, as: :select, collection:ComplianceControlBlock.transport_modes +      end    .separator    = f.button :submit, t('actions.submit'), class: 'btn btn-default formSubmitr', form: 'compliance_control_form' diff --git a/app/views/compliance_controls/edit.html.slim b/app/views/compliance_controls/edit.html.slim index e69de29bb..6824c7e40 100644 --- a/app/views/compliance_controls/edit.html.slim +++ b/app/views/compliance_controls/edit.html.slim @@ -0,0 +1,9 @@ += pageheader 'compliance-control', +        t('compliance_control.index.edit') + + +.page_content +  .container-fluid +    .row +      .col-lg-8.col-lg-offset-2.col-md-8.col-md-offset-2.col-sm-10.col-sm-offset-1 +        = render 'form' diff --git a/app/views/compliance_controls/show.html.slim b/app/views/compliance_controls/show.html.slim index e69de29bb..a665f1ab1 100644 --- a/app/views/compliance_controls/show.html.slim +++ b/app/views/compliance_controls/show.html.slim @@ -0,0 +1,3 @@ += @compliance_control.inspect +br += @compliance_control.compliance_control_block.inspect | 
