OSDN Git Service

fix leaf view
[pettanr/pettanr.git] / app / models / artist.rb
index 973be0f..3f39903 100644 (file)
@@ -1,9 +1,56 @@
-class Artist < ActiveRecord::Base
-  belongs_to :author
+class Artist < Peta::Owner
+  load_manifest
+  belongs_to :user
   has_many :original_pictures
+  has_many :pictures
+  has_many :resource_pictures
+  
+  validates :name, :presence => true, :length => {:maximum => 30}
+  validates :user_id, :numericality => true, :existence => {:both => false}
+  validates :provider_id, :numericality => {:allow_nil => true}
+  
+  def supply_default
+    self.name = 'no name' if self.name.blank?
+  end
   
   def self.find_by_author author
     Artist.find( :first, :conditions => ['author_id = ?', author.id])
   end
   
+  def self.list_where
+    'artists.provider_id is null'
+  end
+  
+  def self.list_order
+    'artists.created_at desc'
+  end
+  
+  def self.list_opt
+    {:user => {:author => {}} }
+  end
+  
+  def self.list_json_opt
+    {:include => {:user => {:author => {}}} }
+  end
+  
+  def self.show_opt
+    {:include => {:user => {:author => {}}} }
+  end
+  
+  def self.show_json_opt
+    {:include => {:user => {:author => {}}} }
+  end
+  
+  def self.export(dt = nil)
+    opt = {}
+    cond = if dt
+      ['artists.artists.provider = 0 and artists.updated_at >= ?', dt]
+    else
+      'artists.artists.provider = 0'
+    end
+    opt.merge!({:conditions => cond}) 
+    opt.merge!({:order => 'id'})
+    Artist.find(:all, opt)
+  end
+  
 end