OSDN Git Service

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