aboutsummaryrefslogtreecommitdiffstats
path: root/app/models/chouette/network.rb
diff options
context:
space:
mode:
authorXinhui2016-02-22 14:17:18 +0100
committerXinhui2016-02-22 14:17:18 +0100
commitd49f47b4ac1db2cd88b96d830772bb7773924601 (patch)
tree191c7b9cda9edf939792e7780df4e7460d685a4a /app/models/chouette/network.rb
parent633004afc5861a6e8158948ddfecd73bf4dd86a8 (diff)
downloadchouette-core-d49f47b4ac1db2cd88b96d830772bb7773924601.tar.bz2
Merge model from ninoxe gem
Diffstat (limited to 'app/models/chouette/network.rb')
-rw-r--r--app/models/chouette/network.rb46
1 files changed, 46 insertions, 0 deletions
diff --git a/app/models/chouette/network.rb b/app/models/chouette/network.rb
new file mode 100644
index 000000000..a631d70ec
--- /dev/null
+++ b/app/models/chouette/network.rb
@@ -0,0 +1,46 @@
+class Chouette::Network < Chouette::TridentActiveRecord
+ # FIXME http://jira.codehaus.org/browse/JRUBY-6358
+ self.primary_key = "id"
+
+ has_many :lines
+
+ attr_accessor :source_type_name
+
+ validates_format_of :registration_number, :with => %r{\A[0-9A-Za-z_-]+\Z}, :allow_nil => true, :allow_blank => true
+ validates_presence_of :name
+
+ def self.object_id_key
+ "PTNetwork"
+ end
+
+ def self.nullable_attributes
+ [:source_name, :source_type, :source_identifier, :comment]
+ end
+
+ def commercial_stop_areas
+ Chouette::StopArea.joins(:children => [:stop_points => [:route => [:line => :network] ] ]).where(:networks => {:id => self.id}).uniq
+ end
+
+ def stop_areas
+ Chouette::StopArea.joins(:stop_points => [:route => [:line => :network] ]).where(:networks => {:id => self.id})
+ end
+
+ def source_type_name
+ # return nil if source_type is nil
+ source_type && Chouette::SourceType.new( source_type.underscore)
+ end
+
+ def source_type_name=(source_type_name)
+ self.source_type = (source_type_name ? source_type_name.camelcase : nil)
+ end
+
+ @@source_type_names = nil
+ def self.source_type_names
+ @@source_type_names ||= Chouette::SourceType.all.select do |source_type_name|
+ source_type_name.to_i > 0
+ end
+ end
+
+
+end
+