aboutsummaryrefslogtreecommitdiffstats
path: root/app
diff options
context:
space:
mode:
Diffstat (limited to 'app')
-rw-r--r--app/controllers/compliance_control_sets_controller.rb14
-rw-r--r--app/controllers/compliance_controls_controller.rb30
-rw-r--r--app/decorators/compliance_control_decorator.rb10
-rw-r--r--app/decorators/compliance_control_set_decorator.rb7
-rw-r--r--app/models/compliance_control.rb34
-rw-r--r--app/models/compliance_control_block.rb13
-rw-r--r--app/models/compliance_control_set.rb4
-rw-r--r--app/models/generic_attribute_control/min_max.rb17
-rw-r--r--app/models/generic_attribute_control/pattern.rb13
-rw-r--r--app/models/generic_attribute_control/uniqueness.rb13
-rw-r--r--app/models/generic_attribute_min_max.rb27
-rw-r--r--app/models/generic_attribute_pattern.rb23
-rw-r--r--app/models/generic_attribute_uniqueness.rb23
-rw-r--r--app/models/journey_pattern_control/duplicates.rb6
-rw-r--r--app/models/journey_pattern_control/vehicle_journey.rb6
-rw-r--r--app/models/line_control/route.rb6
-rw-r--r--app/models/route_control/duplicates.rb6
-rw-r--r--app/models/route_control/journey_pattern.rb6
-rw-r--r--app/models/route_control/minimum_length.rb6
-rw-r--r--app/models/route_control/omnibus_journey_pattern.rb6
-rw-r--r--app/models/route_control/opposite_route.rb7
-rw-r--r--app/models/route_control/opposite_route_terminus.rb6
-rw-r--r--app/models/route_control/speed.rb6
-rw-r--r--app/models/route_control/stop_points_in_journey_pattern.rb6
-rw-r--r--app/models/route_control/time_table.rb6
-rw-r--r--app/models/route_control/unactivated_stop_points.rb6
-rw-r--r--app/models/route_control/vehicle_journey_at_stops.rb6
-rw-r--r--app/models/route_control/zdl_stop_area.rb6
-rw-r--r--app/models/routing_constaint_zone_control/maximum_length.rb6
-rw-r--r--app/models/routing_constaint_zone_control/minimum_length.rb6
-rw-r--r--app/models/routing_constaint_zone_control/unactivated_stop_point.rb6
-rw-r--r--app/models/vechicle_journey_control/delta.rb6
-rw-r--r--app/models/vechicle_journey_control/waiting_time.rb6
-rw-r--r--app/models/workbench.rb12
-rw-r--r--app/policies/compliance_control_policy.rb9
-rw-r--r--app/views/compliance_control_sets/show.html.slim36
-rw-r--r--app/views/compliance_controls/_form.html.slim10
-rw-r--r--app/views/compliance_controls/edit.html.slim9
-rw-r--r--app/views/compliance_controls/show.html.slim3
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