1 class Demander < ActiveRecord::Base
2 belongs_to :demand_user
3 belongs_to :demander_status
5 validates :demand_user_id, :presence => true, :numericality => true, :existence => true
6 validates :name, :presence => true, :length => {:maximum => 50}, :uniqueness => true
7 validates :caption, :presence => true, :length => {:maximum => 30}
8 validates :url, :presence => true, :length => {:maximum => 200}, :url => true
9 validates :description, :presence => true
10 validates :demander_url, :presence => true, :length => {:maximum => 200}, :url => true
11 validates :demander_status_id, :presence => true, :numericality => true, :existence => true
17 self.demand_user_id = du.id
21 return false unless du.is_a?(DemandUser)
22 du.id == self.demand_user_id
26 return false unless du.is_a?(DemandUser)
27 du.id == self.demand_user_id
31 self.demander_status.status
34 def self.default_page_size
38 def self.max_page_size
42 def self.default_panel_size
46 def self.page prm = nil
52 def self.page_size prm = self.default_page_size
54 page_size = self.max_page_size if page_size > self.max_page_size
55 page_size = self.default_page_size if page_size < 1
59 def self.list page = 1, page_size = self.default_page_size
61 opt.merge!(Demander.list_opt)
62 opt.merge!({:limit => page_size, :offset => (page -1) * page_size}) if page_size > 0
63 opt.merge!({:order => 'demanders.name'})
64 Demander.find(:all, opt)
68 {:include => {:demander_status => {}} }
71 def self.list_json_opt
72 {:include => {:demander_status => {}} }
77 opt.merge!(Demander.show_opt)
78 res = Demander.find(pid, opt)
79 raise ActiveRecord::Forbidden unless res.visible?(du)
85 opt.merge!(Demander.show_opt)
86 res = Demander.find(pid, opt)
87 raise ActiveRecord::Forbidden unless res.own?(du)
92 {:include => {:demander_status => {}} }
95 def self.show_json_opt
96 {:include => {:demander_status => {}} }
101 Demander.transaction do
103 ds = DemanderStatus.new
106 self.demander_status_id = ds.id
108 self.demander_status_id = nil
112 raise ActiveRecord::Rollback unless r
118 self.demander_status.stop
121 def licenses_export date_str = nil
122 raise ActiveRecord::Forbidden unless self.status == 3
123 License.export date_str