X-Git-Url: http://git.osdn.net/view?a=blobdiff_plain;f=app%2Fmodels%2Flicense_group.rb;h=eda792f226b055559cb7124f124b5afc30c42beb;hb=92e42b345715a552a4ce833b03ec68aed94792e0;hp=2399b299a5451a41a7874c7dfcef70857f612891;hpb=78065748111229887e7e7d9f56162940fb04cb04;p=pettanr%2Fpettanr.git diff --git a/app/models/license_group.rb b/app/models/license_group.rb index 2399b299..eda792f2 100644 --- a/app/models/license_group.rb +++ b/app/models/license_group.rb @@ -1,23 +1,21 @@ +#ライセンスグループ class LicenseGroup < ActiveRecord::Base has_many :licenses validates :name, :presence => true, :length => {:maximum => 50}, :uniqueness => true validates :classname, :presence => true, :length => {:maximum => 50} validates :caption, :presence => true, :length => {:maximum => 30} - validates :url, :presence => true, :length => {:maximum => 200}, :url => true + validates :url, :presence => true, :length => {:maximum => 200}, :url => {:message => I18n.t('errors.messages.url')} - def self.store name, attr - r = LicenseGroup.modify_object name, attr - r.save - r + def supply_default end - def self.import filename - LicenseGroup.import_file(filename) {|name, attr| LicenseGroup.store(name, attr)} + def overwrite end - def self.list opt = {} - opt.merge!(self.list_opt) unless opt[:include] + def self.list + opt = {} + opt.merge!(self.list_opt) opt.merge!({:order => 'license_groups.name asc'}) LicenseGroup.find(:all, opt) end @@ -30,20 +28,49 @@ class LicenseGroup < ActiveRecord::Base {:include => {:licenses => {}}} end - def self.show rid, opt = {} - r = LicenseGroup.find(rid, :include => self.show_include_opt(opt)) -# raise ActiveRecord::Forbidden unless c.visible?(au) - r + def self.show rid + opt = {} + opt.merge!(self.show_opt) + res = LicenseGroup.find(rid, opt) +# raise ActiveRecord::Forbidden unless res.visible?(au) + res end - def self.show_include_opt opt = {} - res = {:licenses => {}} - res.push(opt[:include]) if opt[:include] - res + def self.show_opt + {:include => {:licenses => {}}} end - def self.show_json_include_opt + def self.show_json_opt {:include => {:licenses => {}}} end + def self.store name, attr + #ライセンスデータがあるとライセンスグループのデータ生成で邪魔するので移しておく + lattr = attr["licenses_attributes"] + attr.delete "licenses_attributes" + #ライセンスグループを先に保存してidを決める + r = LicenseGroup.modify_object name, attr + r.save + #取っておいたライセンスデータとidでライセンス作成 + if (c = License.stores(lattr, r.id)) > 0 + r.errors.add :base, License.model_name.human + I18n.t('errors.not_create') + end + r + end + + def self.import filename + LicenseGroup.import_file(filename) {|name, attr| LicenseGroup.store(name, attr)} + end + + def self.disp_import_error r + if r == false + puts "json file error. file does not exist or broken" + else + unless r.empty? + r.each do |lg| + put lg.errors.full_messages + end + end + end + end end