app/models/adminpanel/gallery.rb in adminpanel-1.2.8 vs app/models/adminpanel/gallery.rb in adminpanel-1.2.9

- old
+ new

@@ -4,68 +4,73 @@ class Gallery < ActiveRecord::Base attr_accessible :file mount_uploader :file, Adminpanel::GalleryUploader validates_presence_of :file - before_create :set_position - before_destroy :rearrange_positions + act_as_a_gallery - default_scope { order("position ASC")} + def move_to_better_position + if self.position > 1 + conflicting_gallery = Gallery.find_by_position(position - 1) + self.update_attribute(:position, self.position - 1) + conflicting_gallery.update_attribute( + :position, conflicting_gallery.position + 1 + ) + true + else + false + end + end + def move_to_worst_position + records = self.class.count + if self.position < records + conflicting_gallery = Gallery.find_by_position(position + 1) + update_attribute(:position, self.position + 1) + conflicting_gallery.update_attribute( + :position, conflicting_gallery.position - 1 + ) + true + else + false + end + end - def move_to_better_position - if position > 1 - conflicting_gallery = Gallery.find_by_position(position - 1) - update_attribute(:position, position - 1) - conflicting_gallery.update_attribute( - :position, conflicting_gallery.position + 1 - ) - true - else - false - end - end - def move_to_worst_position - records = Gallery.count - if position < records - conflicting_gallery = Gallery.find_by_position(position + 1) - update_attribute(:position, position + 1) - conflicting_gallery.update_attribute( - :position, conflicting_gallery.position - 1 - ) - true - else - false - end - end - def self.form_attributes [ - {'file' => { 'name' => 'Archivo' }} + {'file' => { + 'type' => 'file_field', + 'name' => 'Archivo' } + } ] end def self.display_name "GalerĂ­a" end - private - def rearrange_positions - unarranged_galleries = Gallery.where("position > ?", position) - unarranged_galleries.each do |gallery| - gallery.update_attribute(:position, gallery.position - 1) - end + def self.icon + 'icon-picture' + end - end + private + def rearrange_positions + unarranged_galleries = Gallery.where("position > ?", self.position) + unarranged_galleries.each do |gallery| + gallery.update_attribute(:position, gallery.position - 1) + end + end + def set_position - last_record = Gallery.last - if last_record.nil? - self.position = 1 - else - self.position = last_record.position + 1 - end + last_record = Gallery.last + if last_record.nil? + self.position = 1 + else + self.position = last_record.position + 1 + end end + end end