aboutsummaryrefslogtreecommitdiffstats
path: root/app/models
diff options
context:
space:
mode:
authorRobert Dober2017-10-31 19:18:56 +0100
committerGitHub2017-10-31 19:18:56 +0100
commit13553712a18435f16f449a6d0c6a2ade24038797 (patch)
tree5e3577a7d8c69f8cbc93ede730d00404b3cd6b24 /app/models
parentb3c941878c8b2224449e7e185d9ea5c7537f0c69 (diff)
parent3b0b05930e14992ffab6429e0319f07bc9c6e560 (diff)
downloadchouette-core-13553712a18435f16f449a6d0c6a2ade24038797.tar.bz2
Merge pull request #105 from af83/4774-compliance_control_sets-filters
4774 compliance control sets filters
Diffstat (limited to 'app/models')
-rw-r--r--app/models/compliance_control.rb72
1 files changed, 43 insertions, 29 deletions
diff --git a/app/models/compliance_control.rb b/app/models/compliance_control.rb
index 08efa7e9a..49fb6513f 100644
--- a/app/models/compliance_control.rb
+++ b/app/models/compliance_control.rb
@@ -1,29 +1,7 @@
class ComplianceControl < ActiveRecord::Base
- extend Enumerize
- belongs_to :compliance_control_set
- belongs_to :compliance_control_block
-
- enumerize :criticity, in: %i(warning error), scope: true, default: :warning
- hstore_accessor :control_attributes, {}
-
- validates :criticity, presence: true
- validates :name, presence: true
- validates :code, presence: true, uniqueness: { scope: :compliance_control_set }
- validates :origin_code, presence: true
- validates :compliance_control_set, presence: true
-
- validate def coherent_control_set
- return true if compliance_control_block_id.nil?
- ids = [compliance_control_block.compliance_control_set_id, compliance_control_set_id]
- return true if ids.first == ids.last
- names = ids.map{|id| ComplianceControlSet.find(id).name}
- errors.add(:coherent_control_set,
- I18n.t('compliance_controls.errors.incoherent_control_sets',
- indirect_set_name: names.first,
- direct_set_name: names.last))
- end
class << self
+ def criticities; %i(warning error) end
def default_code; "" end
def dynamic_attributes
hstore_metadata_for_control_attributes.keys
@@ -33,6 +11,17 @@ class ComplianceControl < ActiveRecord::Base
ComplianceControlPolicy
end
+ def subclass_patterns
+ {
+ generic: 'Generic',
+ journey_pattern: 'JourneyPattern',
+ line: 'Line',
+ route: 'Route',
+ routing_constraint_zone: 'RoutingConstraint',
+ vehicle_journey: 'VehicleJourney'
+ }
+ end
+
def inherited(child)
child.instance_eval do
def model_name
@@ -43,12 +32,37 @@ class ComplianceControl < ActiveRecord::Base
end
end
- def initialize(attributes = {})
- super
- self.name ||= I18n.t("activerecord.models.#{self.class.name.underscore}.one")
- self.code ||= self.class.default_code
- self.origin_code ||= self.class.default_code
- end
+ extend Enumerize
+ belongs_to :compliance_control_set
+ belongs_to :compliance_control_block
+
+ enumerize :criticity, in: criticities, scope: true, default: :warning
+ hstore_accessor :control_attributes, {}
+
+ validates :criticity, presence: true
+ validates :name, presence: true
+ validates :code, presence: true, uniqueness: { scope: :compliance_control_set }
+ validates :origin_code, presence: true
+ validates :compliance_control_set, presence: true
+
+ validate def coherent_control_set
+ return true if compliance_control_block_id.nil?
+ ids = [compliance_control_block.compliance_control_set_id, compliance_control_set_id]
+ return true if ids.first == ids.last
+ names = ids.map{|id| ComplianceControlSet.find(id).name}
+ errors.add(:coherent_control_set,
+ I18n.t('compliance_controls.errors.incoherent_control_sets',
+ indirect_set_name: names.first,
+ direct_set_name: names.last))
+end
+
+
+def initialize(attributes = {})
+ super
+ self.name ||= I18n.t("activerecord.models.#{self.class.name.underscore}.one")
+ self.code ||= self.class.default_code
+ self.origin_code ||= self.class.default_code
+end
end