+ def self.list_opt
+ {:license => {}, :artist => {}, :picture => {} }
+ end
+
+ def self.list_json_opt
+ {:include => {:license => {}, :artist => {}, :picture => {}} }
+ end
+
+ def self.show_opt
+ {:include => {:license => {}, :artist => {}, :picture => {}} }
+ end
+
+ def self.show_json_opt
+ {:include => {:license => {}, :artist => {}, :picture => {}} }
+ end
+
+ def new_picture imager
+ pc = Picture.new
+ pc.supply_default
+ pc.overwrite self
+ pc.boosts 'post'
+ r = pc.store imager
+ return pc if r
+ self.errors.add :base, Picture.model_name.human + I18n.t('errors.not_create')
+ false
+ end
+
+ def store imager
+ return false unless imager
+ res = false
+ self.overwrite self.original_picture
+ ResourcePicture.transaction do
+ self.original_picture.published_at = Time.now
+ self.original_picture.stopped_at = nil
+ raise ActiveRecord::Rollback unless self.original_picture.save
+ pc = self.new_picture imager
+ if pc
+ self.picture_id = pc.id
+ resource_picture_picture = ResourcePicturePicture.new(
+ :original_picture_id => self.original_picture_id,
+ :resource_picture_id => self.id,
+ :picture_id => pc.id
+ )
+ raise ActiveRecord::Rollback unless resource_picture_picture.save
+ if res = self.save
+ self.original_picture.resource_picture_pictures.each do |resource_picture_picture|
+ resource_picture_picture.resource_picture_id = self.id
+ raise ActiveRecord::Rollback unless resource_picture_picture.save
+ end
+ res = self.store_picture_with_gif(imager)
+ end
+ else
+ end
+ raise ActiveRecord::Rollback unless res