aboutsummaryrefslogtreecommitdiffstats
path: root/app/models
diff options
context:
space:
mode:
authorteddywing2017-11-06 12:36:17 +0100
committerGitHub2017-11-06 12:36:17 +0100
commit1b70d5584f59fb3afd47030904bc16daa9f200bc (patch)
treef90611dec75bf50a2a54e5ce37b469bac61220a2 /app/models
parent94d240c3ae5511591452aa1a43c90811b0c571dd (diff)
parentea1cbc874aa6609c6217514640eb1eca20665d41 (diff)
downloadchouette-core-1b70d5584f59fb3afd47030904bc16daa9f200bc.tar.bz2
Merge pull request #109 from af83/4802-referential-model-normalisation
4802 referential model normalisation
Diffstat (limited to 'app/models')
-rw-r--r--app/models/referential.rb12
-rw-r--r--app/models/referential_suite.rb13
2 files changed, 23 insertions, 2 deletions
diff --git a/app/models/referential.rb b/app/models/referential.rb
index c7b52ddf8..ed13cd077 100644
--- a/app/models/referential.rb
+++ b/app/models/referential.rb
@@ -1,4 +1,3 @@
-# coding: utf-8
class Referential < ActiveRecord::Base
include DataFormatEnumerations
@@ -28,6 +27,15 @@ class Referential < ActiveRecord::Base
belongs_to :organisation
validates_presence_of :organisation
+ validate def validate_consistent_organisation
+ return true if workbench_id.nil?
+ ids = [workbench.organisation_id, organisation_id]
+ return true if ids.first == ids.last
+ errors.add(:inconsistent_organisation,
+ I18n.t('referentials.errors.inconsistent_organisation',
+ indirect_name: workbench.organisation.name,
+ direct_name: organisation.name))
+ end
belongs_to :line_referential
validates_presence_of :line_referential
@@ -290,7 +298,7 @@ class Referential < ActiveRecord::Base
end
def assign_prefix
- self.prefix = self.organisation.name.parameterize.gsub('-', '_')
+ self.prefix = organisation.name.parameterize.gsub('-', '_')
end
def assign_line_and_stop_area_referential
diff --git a/app/models/referential_suite.rb b/app/models/referential_suite.rb
index 9fd25ef3f..93c2c3f36 100644
--- a/app/models/referential_suite.rb
+++ b/app/models/referential_suite.rb
@@ -1,6 +1,19 @@
class ReferentialSuite < ActiveRecord::Base
belongs_to :new, class_name: 'Referential'
+ validate def validate_consistent_new
+ return true if new_id.nil?
+ return true if new.referential_suite_id == id
+ errors.add(:inconsistent_new,
+ I18n.t('referential_suites.errors.inconsistent_new', name: new.name))
+ end
+
belongs_to :current, class_name: 'Referential'
+ validate def validate_consistent_current
+ return true if current_id.nil?
+ return true if current.referential_suite_id == id
+ errors.add(:inconsistent_current,
+ I18n.t('referential_suites.errors.inconsistent_current', name: current.name))
+ end
has_many :referentials
end