diff options
Diffstat (limited to 'app/models')
| -rw-r--r-- | app/models/chouette/area_type.rb | 5 | ||||
| -rw-r--r-- | app/models/chouette/stop_area.rb | 12 | ||||
| -rw-r--r-- | app/models/compliance_control.rb | 2 | ||||
| -rw-r--r-- | app/models/import.rb | 1 | ||||
| -rw-r--r-- | app/models/referential.rb | 1 | ||||
| -rw-r--r-- | app/models/vehicle_journey_control/waiting_time.rb | 2 |
6 files changed, 20 insertions, 3 deletions
diff --git a/app/models/chouette/area_type.rb b/app/models/chouette/area_type.rb index 33cbfbb48..43d96b391 100644 --- a/app/models/chouette/area_type.rb +++ b/app/models/chouette/area_type.rb @@ -1,4 +1,5 @@ class Chouette::AreaType + include Comparable ALL = %i(zdep zder zdlp zdlr lda gdl).freeze @@ -30,6 +31,10 @@ class Chouette::AreaType @code = code end + def <=>(other) + all.index(code) <=> all.index(other.code) + end + def label I18n.translate code, scope: 'area_types.label' end diff --git a/app/models/chouette/stop_area.rb b/app/models/chouette/stop_area.rb index 2f8d7c096..4f1359ff8 100644 --- a/app/models/chouette/stop_area.rb +++ b/app/models/chouette/stop_area.rb @@ -40,12 +40,20 @@ module Chouette validates_format_of :url, :with => %r{\Ahttps?:\/\/([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?\Z}, :allow_nil => true, :allow_blank => true validates_numericality_of :waiting_time, greater_than_or_equal_to: 0, only_integer: true, if: :waiting_time + validate :parent_area_type_must_be_greater def self.nullable_attributes [:registration_number, :street_name, :country_code, :fare_code, :nearest_topic_name, :comment, :long_lat_type, :zip_code, :city_name, :url, :time_zone] end + def parent_area_type_must_be_greater + return unless self.parent + if Chouette::AreaType.find(self.area_type) >= Chouette::AreaType.find(self.parent.area_type) + errors.add(:parent_id, I18n.t('stop_areas.errors.parent_area_type', area_type: self.parent.area_type)) + end + end + after_update :clean_invalid_access_links before_save :coordinates_to_lat_lng @@ -74,6 +82,10 @@ module Chouette end end + def full_name + "#{name} #{zip_code} #{city_name} - #{user_objectid}" + end + def user_objectid if objectid =~ /^.*:([0-9A-Za-z_-]+):STIF$/ $1 diff --git a/app/models/compliance_control.rb b/app/models/compliance_control.rb index 3fcf26f5d..2bde5b95a 100644 --- a/app/models/compliance_control.rb +++ b/app/models/compliance_control.rb @@ -6,7 +6,7 @@ class ComplianceControl < ActiveRecord::Base def prerequisite; I18n.t('compliance_controls.metas.no_prerequisite'); end def predicate; I18n.t("compliance_controls.#{self.name.underscore}.description") end def dynamic_attributes - stored_attributes[:control_attributes] + stored_attributes[:control_attributes] || [] end def policy_class diff --git a/app/models/import.rb b/app/models/import.rb index 19e835986..049a65f40 100644 --- a/app/models/import.rb +++ b/app/models/import.rb @@ -19,7 +19,6 @@ class Import < ActiveRecord::Base validates :name, presence: true validates :file, presence: true validates_presence_of :workbench, :creator - validates_format_of :file, with: %r{\.zip\z}i, message: I18n.t('activerecord.errors.models.import.attributes.file.wrong_file_extension') before_create :initialize_fields diff --git a/app/models/referential.rb b/app/models/referential.rb index 122af65a1..8db009ebd 100644 --- a/app/models/referential.rb +++ b/app/models/referential.rb @@ -282,6 +282,7 @@ class Referential < ActiveRecord::Base def detect_overlapped_referentials self.class.where(id: overlapped_referential_ids).each do |referential| + Rails.logger.info "Referential #{referential.id} #{referential.metadatas.inspect} overlaps #{metadatas.inspect}" errors.add :metadatas, I18n.t("referentials.errors.overlapped_referential", :referential => referential.name) end end diff --git a/app/models/vehicle_journey_control/waiting_time.rb b/app/models/vehicle_journey_control/waiting_time.rb index 252135f04..f2666cb72 100644 --- a/app/models/vehicle_journey_control/waiting_time.rb +++ b/app/models/vehicle_journey_control/waiting_time.rb @@ -2,7 +2,7 @@ module VehicleJourneyControl class WaitingTime < ComplianceControl store_accessor :control_attributes, :maximum - validates :maximum, numericality: true, allow_nil: true + validates_numericality_of :maximum, allow_nil: true, greater_than_or_equal_to: 0 def self.default_code; "3-VehicleJourney-1" end end |
