OSDN Git Service

fic picture publishing
[pettanr/pettanr.git] / app / models / license.rb
index 50c5116..abb7c2c 100644 (file)
@@ -1,24 +1,17 @@
 #
-class License < ActiveRecord::Base
+class License < Peta::SystemResource
+  load_manifest
   belongs_to :license_group
   belongs_to :system_picture
   has_many :resource_pictures
   
   validates :license_group_id, :presence => true, :numericality => true, :existence => {:both => false}
+  validates :license_group_classname, :presence => true, :length => {:maximum => 50}
   validates :name, :presence => true, :length => {:maximum => 50}
   validates :caption, :presence => true, :length => {:maximum => 30}
-  validates :url, :presence => true, :length => {:maximum => 200}, :uniqueness => true, :url => {:message => I18n.t('errors.messages.url')} #{:allow_blank => true}
+  validates :url, :presence => true, :length => {:maximum => 200}, :uniqueness => {:scope => :name}, :url => {:message => I18n.t('errors.messages.url')} #{:allow_blank => true}
   validates :system_picture_id, :presence => true, :numericality => true, :existence => {:both => false}
   
-  before_validation :valid_encode
-  
-  def valid_encode
-    ['name', 'caption', 'url', 'settings', 'credit_pictures'].each do |a|
-      next if attributes[a] == nil
-      raise Pettanr::BadRequest unless attributes[a].valid_encoding?
-    end
-  end
-  
   def supply_default
   end
   
@@ -33,16 +26,8 @@ class License < ActiveRecord::Base
     ''
   end
   
-  def self.list
-    self.where(self.list_where()).includes(self.list_opt).order('licenses.name')
-  end
-  
-  def self.list_by_license_group_where license_group_id
-    ['licenses.license_group_id = ?', license_group_id]
-  end
-  
-  def self.list_by_license_group license_group_id, roles, page = 1, page_size = self.default_page_size
-    self.where(self.list_by_license_group_where(license_group_id)).includes(self.list_opt).order('licenses.updated_at desc').offset((page -1) * page_size).limit(page_size)
+  def self.list_order
+    'licenses.name'
   end
   
   def self.list_opt
@@ -53,14 +38,6 @@ class License < ActiveRecord::Base
     {:include => {:license_group => {}}}
   end
   
-  def self.show rid, roles = nil
-    opt = {}
-    opt.merge!(License.show_opt)
-    res = License.find(rid, opt)
-#    raise ActiveRecord::Forbidden unless res.visible?(au)
-    res
-  end
-  
   def self.show_opt
     {:include => {:license_group => {}}}
   end
@@ -75,7 +52,8 @@ class License < ActiveRecord::Base
   
   def self.store name, attr
     r = License.replace_system_picture attr
-    attr['credit_pictures'] = attr['credit_pictures'].to_json
+    attr['credit_picture_settings'] = attr['credit_picture_settings'].to_json
+    attr['license_group_settings'] = attr['license_group_settings'].to_json
     l = License.modify_object name, attr
     if r == false
       l.errors.add :base, SystemPicture.model_name.human + I18n.t('errors.not_create')