OSDN Git Service

temp
[pettanr/pettanr.git] / app / models / license_group.rb
1 #ライセンスグループ
2 class LicenseGroup < Pettanr::Item
3   has_many :licenses
4   
5   validates :name, :presence => true, :length => {:maximum => 50}, :uniqueness => true
6   validates :classname, :presence => true, :length => {:maximum => 50}
7   validates :caption, :presence => true, :length => {:maximum => 30}
8   validates :url, :presence => true, :length => {:maximum => 200}, :url => {:message => I18n.t('errors.messages.url')}
9   
10   def self.valid_encode_columns
11     super + ['name', 'classname', 'caption', 'url']
12   end
13   
14   def supply_default
15   end
16   
17   def overwrite
18   end
19   
20   def self.list_where
21     ''
22   end
23   
24   def self.list_order
25     'license_groups.name asc'
26   end
27   
28   def self.list_opt
29     {:include => {:licenses => {}}}
30   end
31   
32   def self.list_json_opt
33     {:include => {:licenses => {}}}
34   end
35   
36   def self.show_opt
37     {:include => {:licenses => {}}}
38   end
39   
40   def self.show_json_opt
41     {:include => {:licenses => {}}}
42   end
43   
44   def self.store name, attr
45     #ライセンスデータがあるとライセンスグループのデータ生成で邪魔するので移しておく
46     lattr = attr["licenses_attributes"]
47     attr.delete "licenses_attributes"
48     #ライセンスグループを先に保存してidを決める
49     r = LicenseGroup.modify_object name, attr
50     r.save
51     #取っておいたライセンスデータとidでライセンス作成
52     if (c = License.stores(lattr, r.id)) > 0
53       r.errors.add :base, License.model_name.human + I18n.t('errors.not_create')
54     end
55     r
56   end
57   
58   def self.import filename
59     LicenseGroup.import_file(filename) {|name, attr| LicenseGroup.store(name, attr)}
60   end
61   
62   def self.disp_import_error r
63     if r == false
64       puts "json file error. file does not exist or broken"
65     else
66       unless r.empty?
67         r.each do |lg|
68           put lg.errors.full_messages
69         end
70       end
71     end
72   end
73 end