diff options
| author | Xinhui | 2017-07-26 16:16:19 +0200 |
|---|---|---|
| committer | Xinhui | 2017-07-26 16:16:19 +0200 |
| commit | 33b4fe1f39501ca36b7a32421e9e1fea93f89e12 (patch) | |
| tree | a47a50e125c5fa5552d527437bcfbfa4f9aa8115 /app | |
| parent | 002892b7e0cab8898ec587160ac65be845f77444 (diff) | |
| download | chouette-core-33b4fe1f39501ca36b7a32421e9e1fea93f89e12.tar.bz2 | |
Fix provider_id & default_values on empty string objectid
Diffstat (limited to 'app')
| -rw-r--r-- | app/models/concerns/stif_netex_attributes_support.rb | 23 |
1 files changed, 17 insertions, 6 deletions
diff --git a/app/models/concerns/stif_netex_attributes_support.rb b/app/models/concerns/stif_netex_attributes_support.rb index acacc27de..7a324ac9b 100644 --- a/app/models/concerns/stif_netex_attributes_support.rb +++ b/app/models/concerns/stif_netex_attributes_support.rb @@ -8,25 +8,34 @@ module StifNetexAttributesSupport validates_numericality_of :object_version validate :objectid_format_compliance - before_validation :default_values, :on => :create + before_validation :default_values, on: :create # before_save :increment_workbench_local_id end + module ClassMethods + def object_id_key + model_name + end + + def model_name + ActiveModel::Name.new self, Chouette, self.name.demodulize + end + end + def objectid Chouette::StifNetexObjectid.new read_attribute(:objectid) end def provider_id - self.referential.workbench.organisation + self.referential.workbench.organisation.name.parameterize end def object_type - self.class + self.model_name end - def local_id - '' + 'LOCAL_ID' end def boiv_id @@ -38,7 +47,9 @@ module StifNetexAttributesSupport end def default_values - self.object_id ||= Chouette::StifNetexObjectId.create(provider_id, object_type, local_id, boiv_id) + if self.objectid.to_s.empty? + self.objectid = Chouette::StifNetexObjectid.create(provider_id, object_type, local_id, boiv_id) + end self.object_version ||= 1 end |
