+ def self.list page = 1, page_size = self.default_page_size
+ opt = {}
+ opt.merge!(self.list_opt)
+ opt.merge!({:limit => page_size, :offset => (page -1) * page_size}) if page_size > 0
+ opt.merge!({:order => 'updated_at desc'})
+ ResourcePicture.find(:all, opt)
+ end
+
+ def self.list_opt
+ {:include => {:license => {}, :artist => {}, :picture => {}} }
+ end
+
+ def self.list_json_opt
+ {:include => {:license => {}, :artist => {}, :picture => {}} }
+ end
+
+ def self.mylist ar, page = 1, page_size = Author.default_resource_picture_page_size
+ opt = {}
+ opt.merge!(ResourcePicture.list_opt)
+ opt.merge!({:limit => page_size, :offset => (page -1) * page_size}) if page_size > 0
+ opt.merge!({:conditions => ['resource_pictures.artist_id = ?', ar.id], :order => 'resource_pictures.updated_at desc'})
+ ResourcePicture.find(:all, opt)
+ end
+
+ def self.show rid, roles
+ opt = {}
+ opt.merge!(self.show_opt)
+ r = ResourcePicture.find(rid, opt)
+ raise ActiveRecord::Forbidden unless r.visible?(roles)
+ r