OSDN Git Service

Merge branch 'v04' of git.sourceforge.jp:/gitroot/pettanr/pettanr into v04
[pettanr/pettanr.git] / app / models / license.rb
1 #
2 class License < ActiveRecord::Base
3   belongs_to :license_group
4   belongs_to :system_picture
5   
6   validates :license_group_id, :presence => true, :numericality => true, :existence => true
7   validates :name, :presence => true, :length => {:maximum => 50}
8   validates :caption, :presence => true, :length => {:maximum => 30}
9   validates :url, :presence => true, :length => {:maximum => 200}, :uniqueness => true, :url => true #{:allow_blank => true}
10   validates :system_picture_id, :presence => true, :numericality => true, :existence => true
11   
12   def self.store name, attr
13     r = License.replace_system_picture attr
14     l = License.modify_object name, attr
15     if r == false
16       l.errors.add :base, 'system picture can not create'
17     else
18       l.save
19     end
20     l
21   end
22   
23   def self.stores attrs, lg_id
24     res = 0
25     return 0 unless attrs.is_a?(Hash)
26     attrs.each do |name, attr|
27       attr["license_group_id"] = lg_id
28       l = License.store name, attr
29       res += 1 unless l.valid?
30     end
31     res
32   end
33   
34   def self.list opt = {}
35     opt.merge!(self.list_opt) unless opt[:include]
36     opt.merge!({:order => 'name'})
37     License.find(:all, opt)
38   end
39   
40   def self.list_opt
41     {:include => {:license_group => {}}}
42   end
43   
44   def self.list_json_opt
45     {:include => {:license_group => {}}}
46   end
47   
48   def self.show rid, opt = {}
49     r = License.find(rid, :include => self.show_include_opt(opt))
50 #    raise ActiveRecord::Forbidden unless c.visible?(au)
51     r
52   end
53   
54   def self.show_include_opt opt = {}
55     res = [:license_group]
56     res.push(opt[:include]) if opt[:include]
57     res
58   end
59   
60   def self.show_json_include_opt
61     {:include => {:license_group => {}}}
62   end
63   
64 end