#
-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
+ def caption_with_group
+ self.license_group.caption + '/' + self.caption
end
- def overwrite
- end
-
- def self.list
- opt = {}
- opt.merge!(License.list_opt)
- opt.merge!({:order => 'name'})
- License.find(:all, opt)
+ def self.list_where
+ ''
end
- def self.list_opt
- {:include => {:license_group => {}}}
- end
-
- def self.list_json_opt
- {:include => {:license_group => {}}}
- end
-
- def self.show rid
- opt = {}
- opt.merge!(License.show_opt)
- res = License.find(rid, opt)
-# raise ActiveRecord::Forbidden unless res.visible?(au)
- res
+ def self.list_order
+ 'licenses.name'
end
def self.show_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
res
end
+=begin
+ def supply_default
+ end
+
+ def overwrite
+ end
+
+ def self.list_opt
+ {:license_group => {}}
+ end
+
+ def self.list_json_opt
+ {:include => {:license_group => {}}}
+ end
+
+ 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
+=end
+
+ def self.export(dt = nil)
+ opt = {}
+ opt.merge!({:conditions => ['updated_at >= ?', dt]}) if dt
+# opt.merge!({:order => 'name'})
+ License.find(:all, opt)
+ end
+
end