OSDN Git Service

t#29689:test layout flag droppable
[pettanr/pettanr.git] / app / models / color.rb
1 class Color < ActiveRecord::Base
2   belongs_to :ground_color
3
4   validates :name, :presence => true, :length => {:maximum => 50}, :uniqueness => true
5   validates :code, :presence => true, :numericality => {:greater_than_or_equal_to => 0, :less_than => 0x1000000}
6   validates :t, :presence => true, :numericality => {:greater_than_or_equal_to => 0}
7   
8   def supply_default
9     self.name = 'no name' if self.name.blank?
10   end
11   
12   def overwrite 
13   end
14   
15   def visible? author
16     true
17   end
18   
19   def self.default_page_size
20     25
21   end
22   
23   def self.max_page_size
24     100
25   end
26   
27   def self.default_panel_size
28     30
29   end
30   
31   def self.page prm = nil
32     page = prm.to_i
33     page = 1 if page < 1
34     page
35   end
36   
37   def self.page_size prm = self.default_page_size
38     page_size = prm.to_i
39     page_size = self.max_page_size if page_size > self.max_page_size
40     page_size = self.default_page_size if page_size < 1
41     page_size
42   end
43   
44   def self.list page = 1, page_size = self.default_page_size
45     opt = {}
46     opt.merge!(Color.list_opt)
47     opt.merge!({:limit => page_size, :offset => (page -1) * page_size}) if page_size > 0
48     opt.merge!({:order => 'colors.t'})
49     Color.find(:all, opt)
50   end
51   
52   def self.list_opt
53     {}
54   end
55   
56   def self.list_json_opt
57     {}
58   end
59   
60   def self.show cid, au
61     opt = {}
62     opt.merge!(Color.show_opt)
63     res = Color.find(cid, opt)
64     raise ActiveRecord::Forbidden unless res.visible?(au)
65     res
66   end
67   
68   def self.show_opt
69     {}
70   end
71   
72   def self.show_json_opt
73     {}
74   end
75   
76   def self.import filename
77     Color.import_file(filename) {|name, attr| Color.store(name, attr)}
78   end
79   
80   def self.store name, attr
81     r = Color.modify_object name, attr
82     r.save
83     r
84   end
85   
86 end