OSDN Git Service

Merge branch 'v04' of git.sourceforge.jp:/gitroot/pettanr/pettanr into v04
[pettanr/pettanr.git] / app / models / ground_color.rb
1 class GroundColor < ActiveRecord::Base
2   belongs_to :panel
3   belongs_to :color
4   
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}
8   
9   def supply_default
10   end
11   
12   def overwrite
13   end
14   
15   def self.default_page_size
16     25
17   end
18   
19   def self.max_page_size
20     100
21   end
22   
23   def self.page prm = nil
24     page = prm.to_i
25     page = 1 if page < 1
26     page
27   end
28   
29   def self.page_size prm = self.default_page_size
30     page_size = prm.to_i
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
33     page_size
34   end
35   
36   def self.list page = 1, page_size = self.default_page_size
37     opt = {}
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)
42   end
43   
44   def self.list_opt
45     {:include => {:panel => {:author => {}}, :color => {} }}
46   end
47   
48   def self.list_json_opt
49     {:include => {:panel => {:include => {:author => {}}}, :color => {} }}
50   end
51   
52   def self.mylist au, page = 1, page_size = Author.default_ground_color_page_size
53     opt = {}
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)
58   end
59   
60 end