diff options
Diffstat (limited to 'app/models/chouette/stop_point.rb')
| -rw-r--r-- | app/models/chouette/stop_point.rb | 41 | 
1 files changed, 41 insertions, 0 deletions
| diff --git a/app/models/chouette/stop_point.rb b/app/models/chouette/stop_point.rb new file mode 100644 index 000000000..b77189fc1 --- /dev/null +++ b/app/models/chouette/stop_point.rb @@ -0,0 +1,41 @@ +module Chouette +  class StopPoint < TridentActiveRecord +    include ForBoardingEnumerations +    include ForAlightingEnumerations +     +    # FIXME http://jira.codehaus.org/browse/JRUBY-6358 +    self.primary_key = "id" + +    belongs_to :stop_area +    belongs_to :route, inverse_of: :stop_points +    has_many :vehicle_journey_at_stops, :dependent => :destroy +    has_many :vehicle_journeys, -> {uniq}, :through => :vehicle_journey_at_stops + +    acts_as_list :scope => :route, top_of_list: 0 + +    validates_presence_of :stop_area +    validate :stop_area_id_validation + +    scope :default_order, order("position") + +    before_destroy :remove_dependent_journey_pattern_stop_points +    def remove_dependent_journey_pattern_stop_points +      route.journey_patterns.each do |jp| +        if jp.stop_point_ids.include?( id) +          jp.stop_point_ids = jp.stop_point_ids - [id] +        end +      end +    end   + +    def stop_area_id_validation +      if stop_area_id.nil? +        errors.add(:stop_area_id, I18n.t("errors.messages.empty")) +      end +    end + +    def self.area_candidates +      Chouette::StopArea.where( :area_type => ['Quay', 'BoardingPosition']) +    end + +  end +end | 
