Sha256: 50285e1cf6b1e8e3de9d4c8b245ff24aff637a5eb76154331d78146b9511720a

Contents?: true

Size: 1.79 KB

Versions: 25

Compression:

Stored size: 1.79 KB

Contents

class Tag
  include Mongoid::Document
  include Mongoid::Timestamps
  include Ish::Utils

  field :name, :type => String
  # validates :name, :uniqueness => true, :allow_nil => false

  field :slug
  validates :slug, :uniqueness => true, presence: true, allow_nil: false

  field :descr, :type => String, :default => ''

  field :is_public, :type => Boolean, :default => true
  field :is_trash, :type => Boolean, :default => false
  field :is_feature, :type => Boolean, :default => false

  field :weight, :type => Integer, :default => 10

  has_many :children_tags, :class_name => 'Tag', :inverse_of => :parent_tag
  belongs_to :parent_tag, :class_name => 'Tag', :inverse_of => :children_tags, :optional => true

  has_many :features
  has_many :newsitems

  belongs_to :site, :optional => true
  belongs_to :city, :optional => true

  has_and_belongs_to_many :venues
  has_and_belongs_to_many :cities
  has_and_belongs_to_many :galleries
  has_and_belongs_to_many :reports
  has_and_belongs_to_many :videos

  default_scope ->{
    where({ :is_public => true, :is_trash => false }).order_by({ :name => :asc })
  }

  before_validation :set_slug

  def self.clear
    if Rails.env.test?
      Tag.each { |r| r.remove }
    end
  end

  def self.no_parent
    Tag.where( :parent_tag_id => nil )
  end

  # the first blank used to be disabled, not anymore _vp_ 20180418
  def self.list
    out = Tag.unscoped.order_by( :name => :asc )
    return( [['', nil]] + out.map { |item| [ item.name, item.id ] } )
  end

  # @deprecated, there will be no reports or galleries in tags. There will be only features and newsitems
  def self.n_items
    10
  end
  def self.n_reports
    4
  end
  def self.n_galleries
    4
  end
  def self.n_videos
    4
  end

  def self.n_features
    4
  end
  field :n_features, type: Integer, default: 4

end

Version data entries

25 entries across 25 versions & 1 rubygems

Version Path
ish_models-0.0.33.161 lib/tag.rb
ish_models-0.0.33.160 lib/tag.rb
ish_models-0.0.33.159 lib/tag.rb
ish_models-0.0.33.158 lib/tag.rb
ish_models-0.0.33.157 lib/tag.rb
ish_models-0.0.33.156 lib/tag.rb
ish_models-0.0.33.154 lib/tag.rb
ish_models-0.0.33.153 lib/tag.rb
ish_models-0.0.33.152 lib/tag.rb
ish_models-0.0.33.151 lib/tag.rb
ish_models-0.0.33.150 lib/tag.rb
ish_models-0.0.33.149 lib/tag.rb
ish_models-0.0.33.148 lib/tag.rb
ish_models-0.0.33.147 lib/tag.rb
ish_models-0.0.33.146 lib/tag.rb
ish_models-0.0.33.145 lib/tag.rb
ish_models-0.0.33.144 lib/tag.rb
ish_models-0.0.33.143 lib/tag.rb
ish_models-0.0.33.142 lib/tag.rb
ish_models-0.0.33.141 lib/tag.rb