Sha256: 372a3290d91ea728e366108eadd0698431b487468809a649a1ddf34f97eb7db6

Contents?: true

Size: 1.69 KB

Versions: 19

Compression:

Stored size: 1.69 KB

Contents

class Tag
  
  include Mongoid::Document
  include Mongoid::Timestamps

  field :name, :type => String
  validates :name, :uniqueness => true, :allow_nil => false
  
  field :name_seo, :type => String
  validates :name_seo, :uniqueness => 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 :reports
  has_many :galleries
  has_many :videos

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

  embeds_many :features
  embeds_many :newsitems

  belongs_to :site
  validates :site, :presence => true

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

  before_create do |d|
    if d.name_seo.blank?
      d.name_seo = d.name.to_simple_string
    end
  end

  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

  def self.list
    out = Tag.all.order_by( :name => :desc )
    [['', 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
  
  # @deprecated I don't even know why I have this. Should be simplified into non-being.
  def self.n_features
    4
  end
  
end

Version data entries

19 entries across 19 versions & 3 rubygems

Version Path
ish_models-0.0.33.8 lib/tag.rb
ish_models-0.0.33.7 lib/tag.rb
ish_models-0.0.33.6 lib/tag.rb
ish_models-0.0.33.5 lib/tag.rb
ish_models-0.0.33 lib/tag.rb
ish_models-0.0.32 lib/tag.rb
ish_models-0.0.31 lib/tag.rb
ish_models-0.0.30 lib/tag.rb
ish_models-0.0.29.10 lib/tag.rb
ish_models-0.0.29.9 lib/tag.rb
ish_models-0.0.6 lib/tag.rb
ish_models-0.0.3 lib/tag.rb
ish_lib-0.0.8 app/models/tag.rb
ish_lib_engine-0.0.5 app/models/tag.rb~
ish_lib_engine-0.0.3 app/models/tag.rb
ish_lib_engine-0.0.2 app/models/tag.rb
ish_lib_engine-0.0.1 app/models/tag.rb
ish_lib-0.0.6 lib/app/models/tag.rb
ish_lib-0.0.3 app/models/tag.rb