1 class Artist < ActiveRecord::Base
3 has_many :original_pictures
5 validates :name, :presence => true, :length => {:maximum => 30}
6 # validates :default_license_id, :presence => true, :numericality => true, :existence => true
9 self.name = 'no name' if self.name.blank?
12 def self.find_by_author author
13 Artist.find( :first, :conditions => ['author_id = ?', author.id])
16 def self.default_page_size
20 def self.max_page_size
24 def self.default_panel_size
28 def self.max_panel_size
32 def self.page prm = nil
38 def self.page_size prm = self.default_page_size
40 page_size = self.max_page_size if page_size > self.max_page_size
41 page_size = self.default_page_size if page_size < 1
45 def self.offset cnt, prm = nil
47 offset = cnt - 1 if offset >= cnt
48 offset = cnt - offset.abs if offset < 0
49 offset = 0 if offset < 0
53 def self.list opt = {}, page = 1, page_size = self.default_page_size
54 opt.merge!(self.list_opt) unless opt[:include]
55 opt.merge!({:order => 'updated_at desc', :limit => page_size, :offset => (page -1) * page_size})
56 Artist.find(:all, opt)
63 def self.list_json_opt
67 def self.show aid, opt = {}
68 a = Artist.find(aid, :include => self.show_include_opt(opt))
69 # raise ActiveRecord::Forbidden unless c.visible?(au)
73 def self.show_include_opt opt = {}
75 res.push(opt[:include]) if opt[:include]
79 def self.show_json_include_opt
83 def self.visible_count