OSDN Git Service

fix:new elm
[pettanr/pettanr.git] / app / models / original_picture.rb
index 3004bb5..65d99d1 100644 (file)
@@ -1,8 +1,10 @@
-class OriginalPicture < Pettanr::Content
+class OriginalPicture < Peta::Content
+  load_manifest
   belongs_to :artist
   belongs_to :original_picture_license_group
   has_one :resource_picture
   has_many :pictures
+  has_many :resource_picture_pictures
   
   validates :ext, :presence => true, :length => {:maximum => 4}, :inclusion => {:in => ['png', 'jpeg', 'gif']}
   validates :width, :presence => true, :numericality => true, :natural_number => true
@@ -11,11 +13,8 @@ class OriginalPicture < Pettanr::Content
   validates :artist_id, :presence => true, :numericality => true, :existence => {:both => false}
   validates :md5, :presence => true, :length => {:minimum => 32, :maximum => 32}
   
-  def self.owner_type
-    :artist
-  end
-  
   def supply_default
+    self.artist_id = nil
   end
   
   def overwrite operators
@@ -52,8 +51,13 @@ class OriginalPicture < Pettanr::Content
     self.tmb_opt_img_tag
   end
   
+  def filer_caption
+    self.revision
+  end
+  
   def revision
-    self.history.first.revision
+    head = self.history.first
+    head ? head.revision : 'unpublished'
   end
   
   def unpublished?
@@ -74,18 +78,6 @@ class OriginalPicture < Pettanr::Content
     self.published_at != nil
   end
   
-  def self.list_order
-    'original_pictures.updated_at desc'
-  end
-  
-  def self.list_opt
-    {:resource_picture => {}, :pictures => {} }
-  end
-  
-  def self.list_json_opt
-    {:include => {:resource_picture => {}, :pictures => {}}}
-  end
-  
   def history 
     Picture.find(:all, {:conditions => ['pictures.original_picture_id = ?', self.id], :order => 'pictures.revision desc'} )
   end
@@ -94,10 +86,6 @@ class OriginalPicture < Pettanr::Content
     {:include => {:resource_picture => {}, :pictures => {}}}
   end
   
-  def self.show_json_opt
-    {:include => {:resource_picture => {}, :pictures => {}}}
-  end
-  
   def store(imager)
     unless imager
       self.errors.add :base, I18n.t('errors.invalid_image')
@@ -159,6 +147,11 @@ class OriginalPicture < Pettanr::Content
       self.pictures.each do |picture|
         res = picture.unpublish
         raise ActiveRecord::Rollback unless res
+        if picture.resource_picture_picture
+          picture.resource_picture_picture.original_picture_id = nil
+          picture.resource_picture_picture.resource_picture_id = nil
+          raise ActiveRecord::Rollback unless picture.resource_picture_picture.save
+        end
       end
       res = self.destroy
       raise ActiveRecord::Rollback unless res
@@ -172,7 +165,7 @@ class OriginalPicture < Pettanr::Content
     lg = l.license_group
     attr[:license_id] = l.id
     
-    ctl = lg.classname.pluralize + '::Attribute'
+    ctl = lg.module_name.pluralize + '::Attribute'
     le = ctl.constantize.new attr
     
     rp = ResourcePicture.new