X-Git-Url: http://git.osdn.net/view?a=blobdiff_plain;f=app%2Fmodels%2Flicense.rb;h=abb7c2c236252e7300de2a0de5042f34b17c875e;hb=a6cc2e1d02637b226e971eebe2fb8952d6410a6f;hp=704e3489965b9e3eb382553721b0b22b208d3cb0;hpb=b7f9906380e4b62096d776fe9ad15ba3c4fd4ba4;p=pettanr%2Fpettanr.git diff --git a/app/models/license.rb b/app/models/license.rb index 704e3489..abb7c2c2 100644 --- a/app/models/license.rb +++ b/app/models/license.rb @@ -1,19 +1,62 @@ # -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 => true + 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 => true #{:allow_blank => true} - validates :system_picture_id, :presence => true, :numericality => true, :existence => 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} + + def supply_default + end + + def overwrite + end + + def caption_with_group + self.license_group.caption + '/' + self.caption + end + + def self.list_where + '' + end + + def self.list_order + 'licenses.name' + end + + def self.list_opt + {:license_group => {}} + end + + def self.list_json_opt + {:include => {:license_group => {}}} + end + + def self.show_opt + {:include => {:license_group => {}}} + end + + def self.show_json_opt + {:include => {:license_group => {}}} + end + + def self.list_by_name name + License.find :all, :conditions => ['licenses.name = ?', name], :order => 'licenses.updated_at desc' + end def self.store name, attr r = License.replace_system_picture attr + 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, 'system picture can not create' + l.errors.add :base, SystemPicture.model_name.human + I18n.t('errors.not_create') else l.save end @@ -31,34 +74,21 @@ class License < ActiveRecord::Base res end - def self.list opt = {} - opt.merge!(self.list_opt) unless opt[:include] - opt.merge!({:order => 'name'}) - License.find(:all, opt) - end - - def self.list_opt - {:include => {:license_group => {}}} - end - - def self.list_json_opt - {:include => {:license_group => {}}} - end - - def self.show rid, opt = {} - r = License.find(rid, :include => self.show_include_opt(opt)) -# raise ActiveRecord::Forbidden unless c.visible?(au) - r - end - - def self.show_include_opt opt = {} - res = [:license_group] - res.push(opt[:include]) if opt[:include] - res + def credit_pictures_attr + return @credit_pictures_attr if @credit_pictures_attr + begin + @credit_pictures_attr = JSON.parse(self.credit_pictures) + rescue + end + @credit_pictures_attr = {} unless @credit_pictures_attr + @credit_pictures_attr end - def self.show_json_include_opt - {:include => {:license_group => {}}} + def self.export(dt = nil) + opt = {} + opt.merge!({:conditions => ['updated_at >= ?', dt]}) if dt +# opt.merge!({:order => 'name'}) + License.find(:all, opt) end end