diff options
Diffstat (limited to 'app/models')
| -rw-r--r-- | app/models/stop_area_copy.rb | 95 |
1 files changed, 0 insertions, 95 deletions
diff --git a/app/models/stop_area_copy.rb b/app/models/stop_area_copy.rb deleted file mode 100644 index d3eb78557..000000000 --- a/app/models/stop_area_copy.rb +++ /dev/null @@ -1,95 +0,0 @@ -class StopAreaCopy - include ActiveModel::Validations - include ActiveModel::Conversion - extend ActiveModel::Naming - - attr_accessor :source_id, :hierarchy, :area_type, :source, :copy - - validates_presence_of :source_id, :hierarchy, :area_type - - validates :hierarchy, inclusion: { in: %w(child parent) } - - - def initialize(attributes = {}) - attributes.each { |name, value| send("#{name}=", value) } if attributes - if self.area_type.blank? && self.source != nil - self.source_id = self.source.id - if self.hierarchy == "child" - if self.source.area_type.underscore == "stop_place" - self.area_type="commercial_stop_point" - else - self.area_type="boarding_position" - end - else - if self.source.area_type.underscore == "stop_place" || self.source.area_type.underscore == "commercial_stop_point" - self.area_type="stop_place" - else - self.area_type="commercial_stop_point" - end - end - end - end - - def persisted? - false - end - - def source - @source ||= Chouette::StopArea.find self.source_id - end - - def copy - @copy ||= self.source.duplicate - end - - def copy_is_source_parent? - self.hierarchy == "parent" - end - - def copy_is_source_child? - self.hierarchy == "child" - end - - def copy_modfied_attributes - { :name => self.source.name, # TODO: change ninoxe to avoid that !!! - :area_type => self.area_type.camelcase, - :registration_number => nil, - :parent_id => copy_is_source_child? ? self.source_id : nil - } - end - - def source_modified_attributes - return {} unless copy_is_source_parent? - { :parent_id => self.copy.id - } - end - - def save - begin - if self.valid? - Chouette::StopArea.transaction do - copy.update_attributes copy_modfied_attributes - if copy.valid? - unless source_modified_attributes.empty? - source.update_attributes source_modified_attributes - end - true - else - copy.errors.full_messages.each do |m| - errors.add :base, m - end - false - end - end - else - false - end - rescue Exception => exception - Rails.logger.error(exception.message) - Rails.logger.error(exception.backtrace.join("\n")) - errors.add :base, I18n.t("stop_area_copies.errors.exception") - false - end - end - -end |
