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 => {:both => false}
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 => {:message => I18n.t('errors.messages.url')}
9 validates :description, :presence => true
10 validates :demander_url, :presence => true, :length => {:maximum => 200}, :url => {:message => I18n.t('errors.messages.url')}
11 validates :demander_status_id, :presence => true, :numericality => true, :existence => {:both => false}
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 = nil
122 raise ActiveRecord::Forbidden unless self.status == 3
126 def artists_export date = nil
127 raise ActiveRecord::Forbidden unless self.status == 3
131 def original_pictures_export date = nil
132 raise ActiveRecord::Forbidden unless self.status == 3
133 OriginalPicture.export date
136 def pictures_export date = nil
137 raise ActiveRecord::Forbidden unless self.status == 3
142 raise ActiveRecord::Forbidden unless self.status == 3
144 :licenses => self.licenses_export(date),
145 :artists => self.artists_export(date),
146 :original_pictures => self.original_pictures_export(date),
147 :pictures => self.pictures_export(date)