1 class GroundColor < ActiveRecord::Base
5 validates :panel_id, :numericality => {:allow_blank => true}
6 validates :color_id, :numericality => true, :existence => {:both => false}
7 validates :z, :presence => true, :numericality => {:greater_than => 0}
16 if MagicNumber['run_mode'] == 0
17 return false unless guest_role_check(roles)
19 return false unless reader_role_check(roles)
21 return true if self.panel.own?(roles)
22 self.panel.visible? roles
25 def self.default_page_size
29 def self.max_page_size
33 def self.page prm = nil
39 def self.page_size prm = self.default_page_size
41 page_size = self.max_page_size if page_size > self.max_page_size
42 page_size = self.default_page_size if page_size < 1
46 def self.list page = 1, page_size = self.default_page_size
48 opt.merge!(GroundColor.list_opt)
49 opt.merge!({:limit => page_size, :offset => (page -1) * page_size}) if page_size > 0
50 opt.merge!({:conditions => 'panels.publish > 0', :order => 'ground_colors.updated_at desc'})
51 GroundColor.find(:all, opt)
55 {:include => {:panel => {:author => {}}, :color => {} }}
58 def self.list_json_opt
59 {:include => {:panel => {:include => {:author => {}}}, :color => {} }}
62 def self.mylist au, page = 1, page_size = Author.default_ground_color_page_size
64 opt.merge!(self.list_opt)
65 opt.merge!({:limit => page_size, :offset => (page -1) * page_size}) if page_size > 0
66 opt.merge!({:conditions => ['panels.author_id = ?', au.id], :order => 'ground_colors.updated_at desc'})
67 GroundColor.find(:all, opt)
70 def self.show cid, roles
72 opt.merge!(GroundColor.show_opt)
73 res = GroundColor.find(cid, opt)
74 raise ActiveRecord::Forbidden unless res.visible?(roles)
79 {:include => {:panel => {:author => {}}, :color => {} }}
82 def self.show_json_opt
83 {:include => {:panel => {:include => {:author => {}}}, :color => {} }}