Sha256: 6b63a1f772589042980dcb787975529c9008a500a5f97c6da2e113321d1ca38d

Contents?: true

Size: 1.78 KB

Versions: 10

Compression:

Stored size: 1.78 KB

Contents

require "carrierwave"
require "carrierwave/orm/activerecord"
module Adminpanel
  class Gallery < ActiveRecord::Base
    include Adminpanel::Base

    mount_uploader :file, Adminpanel::GalleryUploader
    validates_presence_of :file

    include Adminpanel::Galleryzation

    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 self.form_attributes
      [
        {
          'file' => {
            'type' => 'file_field',
            'label' => I18n.t('model.attributes.file'),
          }
        }
      ]
    end

    def self.display_name
      I18n.t('model.Gallery')
    end

    def self.icon
      'picture-o'
    end

    def name
      File.basename(file.path)
    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
    end

  end
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
adminpanel-2.2.5 app/models/adminpanel/gallery.rb
adminpanel-2.2.4 app/models/adminpanel/gallery.rb
adminpanel-2.2.3 app/models/adminpanel/gallery.rb
adminpanel-2.2.2 app/models/adminpanel/gallery.rb
adminpanel-2.2.1 app/models/adminpanel/gallery.rb
adminpanel-2.2.0 app/models/adminpanel/gallery.rb
adminpanel-2.1.7 app/models/adminpanel/gallery.rb
adminpanel-2.1.6 app/models/adminpanel/gallery.rb
adminpanel-2.1.5 app/models/adminpanel/gallery.rb
adminpanel-2.1.3 app/models/adminpanel/gallery.rb