aboutsummaryrefslogtreecommitdiffstats
path: root/app/models
diff options
context:
space:
mode:
Diffstat (limited to 'app/models')
-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
30 files changed, 101 insertions, 199 deletions
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