X-Git-Url: http://git.osdn.net/view?p=pettanr%2Fpettanr.git;a=blobdiff_plain;f=app%2Fmodels%2Flicense_group.rb;h=9578164a7387d50065f6f948108083ad61da053b;hp=b8f0ea20b5824b3b96a1853c43cf05c2720b114b;hb=d7c8065be895b67dc453b0e11ad0f259f1ca6706;hpb=a4c744c11df4f274b702045ccaa7a0c7c4629716 diff --git a/app/models/license_group.rb b/app/models/license_group.rb index b8f0ea20..9578164a 100644 --- a/app/models/license_group.rb +++ b/app/models/license_group.rb @@ -1,62 +1,28 @@ #ライセンスグループ -class LicenseGroup < Peta::SystemResource +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 => {:message => I18n.t('errors.messages.url')} - def supply_default - end - - def overwrite - end - - def self.list_where - '' - end - - def self.list_order - 'license_groups.name asc' + scope :find_index, -> do + self.all end - def self.list_opt - {:include => {:licenses => {}}} + def supply_default end - def self.list_json_opt - {:include => {:licenses => {}}} + def overwrite end def self.show_opt {:include => {:licenses => {}}} end - def self.show_json_opt - {:include => {:licenses => {}}} - end - - def my_engine_resource - Manifest.manifest.system_resources.engine_resources['system_resources'] - end - - def engine_name - self.my_engine_resource.resource_items[self.classname] - end - - def enable? - self.my_engine_resource.resource_items.include? self.classname - end - - def engine_module_name - self.engine_name.camelize - end - - def engine - Object.const_get self.engine_module_name - end def self.store name, attr #ライセンスデータがあるとライセンスグループのデータ生成で邪魔するので移しておく lattr = attr["licenses_attributes"] @@ -71,6 +37,19 @@ class LicenseGroup < Peta::SystemResource r end + # 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.import filename LicenseGroup.import_file(filename) {|name, attr| LicenseGroup.store(name, attr)} end