2 class License < ActiveRecord::Base
3 belongs_to :license_group
4 belongs_to :system_picture
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
12 def self.store name, attr
13 r = License.replace_system_picture attr
14 l = License.modify_object name, attr
16 l.errors.add :base, 'system picture can not create'
23 def self.stores attrs, lg_id
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?
34 def self.list opt = {}
35 opt.merge!(self.list_opt) unless opt[:include]
36 opt.merge!({:order => 'name'})
37 License.find(:all, opt)
41 {:include => {:license_group => {}}}
44 def self.list_json_opt
45 {:include => {:license_group => {}}}
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)
54 def self.show_include_opt opt = {}
55 res = [:license_group]
56 res.push(opt[:include]) if opt[:include]
60 def self.show_json_include_opt
61 {:include => {:license_group => {}}}