X-Git-Url: http://git.osdn.net/view?a=blobdiff_plain;f=app%2Fmodels%2Flicense_group.rb;h=9578164a7387d50065f6f948108083ad61da053b;hb=0ead3a286b925e86845cf8211982a7985e522813;hp=fa67c7b812a15ac4ac25ea76e861a16b51337c34;hpb=ccf440ad059d3a8f3234f3fb7561e29a213eb810;p=pettanr%2Fpettanr.git diff --git a/app/models/license_group.rb b/app/models/license_group.rb index fa67c7b8..9578164a 100644 --- a/app/models/license_group.rb +++ b/app/models/license_group.rb @@ -1,11 +1,27 @@ #ライセンスグループ -class LicenseGroup < ActiveRecord::Base +class LicenseGroup < Peta::Template + load_manifest + has_many :resource_pictures has_many :licenses validates :name, :presence => true, :length => {:maximum => 50}, :uniqueness => true - validates :classname, :presence => true, :length => {:maximum => 50} + validates :module_name, :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')} + + scope :find_index, -> do + self.all + end + + def supply_default + end + + def overwrite + end + + def self.show_opt + {:include => {:licenses => {}}} + end def self.store name, attr #ライセンスデータがあるとライセンスグループのデータ生成で邪魔するので移しておく @@ -16,43 +32,37 @@ class LicenseGroup < ActiveRecord::Base r.save #取っておいたライセンスデータとidでライセンス作成 if (c = License.stores(lattr, r.id)) > 0 - r.errors.add :base, 'licenses can not create' + 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.list opt = {} - opt.merge!(self.list_opt) unless opt[:include] - opt.merge!({:order => 'license_groups.name asc'}) - LicenseGroup.find(:all, opt) - end - - def self.list_opt - {:include => {:licenses => {}}} - end - - def self.list_json_opt - {: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 - end - - def self.show_include_opt opt = {} - res = {:licenses => {}} - res.push(opt[:include]) if opt[:include] + # destroy with licenses + def destroy + res = false + self.class.transaction do + self.licenses.each do |license| + raise ActiveRecord::Rollback unless license.destroy + end + res = super + raise ActiveRecord::Rollback unless res + end res end - def self.show_json_include_opt - {:include => {:licenses => {}}} + 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