1 class GroundColor < ActiveRecord::Base
5 validates :panel_id, :numericality => {:allow_blank => true}
6 validates :code, :presence => true, :numericality => {:greater_than_or_equal_to => 0, :less_than => 0x1000000}
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)
54 def self.mylist au, page = 1, page_size = Author.default_ground_color_page_size
56 opt.merge!(self.list_opt)
57 opt.merge!({:limit => page_size, :offset => (page -1) * page_size}) if page_size > 0
58 opt.merge!({:conditions => ['panels.author_id = ?', au.id], :order => 'ground_colors.updated_at desc'})
59 GroundColor.find(:all, opt)
62 def self.himlist 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 = ? and panels.publish > 0', au.id], :order => 'ground_colors.updated_at desc'})
67 GroundColor.find(:all, opt)
71 {:include => {:panel => {:author => {}} }}
74 def self.list_json_opt
75 {:include => {:panel => {:include => {:author => {}}} }}
78 def self.show cid, roles
80 opt.merge!(GroundColor.show_opt)
81 res = GroundColor.find(cid, opt)
82 raise ActiveRecord::Forbidden unless res.visible?(roles)
87 {:include => {:panel => {:author => {}} }}
90 def self.show_json_opt
91 {:include => {:panel => {:include => {:author => {}}} }}