1 class GroundColor < ActiveRecord::Base
5 validates :panel_id, :numericality => {:allow_blank => true}
6 validates :color_id, :numericality => true, :existence => true
7 validates :z, :presence => true, :numericality => {:greater_than => 0}
15 def self.default_page_size
19 def self.max_page_size
23 def self.page prm = nil
29 def self.page_size prm = self.default_page_size
31 page_size = self.max_page_size if page_size > self.max_page_size
32 page_size = self.default_page_size if page_size < 1
36 def self.list page = 1, page_size = self.default_page_size
38 opt.merge!(GroundColor.list_opt)
39 opt.merge!({:limit => page_size, :offset => (page -1) * page_size}) if page_size > 0
40 opt.merge!({:conditions => 'panels.publish > 0', :order => 'ground_colors.updated_at desc'})
41 GroundColor.find(:all, opt)
45 {:include => {:panel => {:author => {}}, :color => {} }}
48 def self.list_json_opt
49 {:include => {:panel => {:include => {:author => {}}}, :color => {} }}
52 def self.mylist au, page = 1, page_size = Author.default_ground_color_page_size
54 opt.merge!(self.list_opt)
55 opt.merge!({:limit => page_size, :offset => (page -1) * page_size}) if page_size > 0
56 opt.merge!({:conditions => ['panels.author_id = ?', au.id], :order => 'ground_colors.updated_at desc'})
57 GroundColor.find(:all, opt)