X-Git-Url: http://git.osdn.net/view?p=pettanr%2Fpettanr.git;a=blobdiff_plain;f=app%2Fmodels%2Flicense.rb;h=f0ebd785ca312d6e6add6c1e63292b2c81184cb9;hp=ffb4b3ba9a8e24aea7590458261943d153cdf0fe;hb=d7c8065be895b67dc453b0e11ad0f259f1ca6706;hpb=387de02ada617308cad50c4bd35e8dbb05c28be4 diff --git a/app/models/license.rb b/app/models/license.rb index ffb4b3ba..f0ebd785 100644 --- a/app/models/license.rb +++ b/app/models/license.rb @@ -1,61 +1,56 @@ # -class License < Pettanr::Item +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 => {:both => false} + validates :license_group_module_name, :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 => {:message => I18n.t('errors.messages.url')} #{:allow_blank => 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} + validates :license_group_settings, :boost => {:boost_name => :license_group} + validates :credit_picture_settings, :boost => {:boost_name => :credit_picture} - def self.valid_encode_columns - super + ['name', 'caption', 'url', 'settings', 'credit_pictures'] + scope :find_index, -> do + self.all end - def supply_default + scope :find_by_license_group, -> (license_group_id) do + where(license_group_id: license_group_id) end - def overwrite + scope :find_by_system_picture, -> (system_picture_id) do + where(system_picture_id: system_picture_id) + end + + def overwrite end def caption_with_group self.license_group.caption + '/' + self.caption end - def self.list_where + def self.index_list_where list '' 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' + License.where(name: name).order(updated_at: :desc) end def self.store name, attr r = License.replace_system_picture attr - attr['credit_pictures'] = attr['credit_pictures'].to_json + 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 + l.boosts 'post' if r == false l.errors.add :base, SystemPicture.model_name.human + I18n.t('errors.not_create') else @@ -75,21 +70,10 @@ class License < Pettanr::Item res 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 - def self.export(dt = nil) - opt = {} - opt.merge!({:conditions => ['updated_at >= ?', dt]}) if dt -# opt.merge!({:order => 'name'}) - License.find(:all, opt) + licenses = License.all + licenses = licenses.where(['licenses.updated_at >= ?', dt]) if dt + licenses.order(:id) end end