2012-12-28 02:43:48 +00:00
|
|
|
# class Tag < ProtoTag
|
|
|
|
# belongs_to :module_app
|
|
|
|
|
|
|
|
# end
|
|
|
|
|
|
|
|
class Tag
|
|
|
|
include Mongoid::Document
|
|
|
|
include Mongoid::Timestamps
|
|
|
|
include Impressionist::Impressionable
|
|
|
|
|
|
|
|
is_impressionable :counter_cache => { :column_name => :view_count }
|
|
|
|
|
2013-04-26 03:18:57 +00:00
|
|
|
field :name, localize: true
|
2012-12-28 02:43:48 +00:00
|
|
|
field :view_count, :type => Integer, :default => 0
|
2013-01-08 04:36:50 +00:00
|
|
|
field :cloud_view_count, :type => Integer, :default => 0
|
|
|
|
|
2013-04-26 03:18:57 +00:00
|
|
|
belongs_to :module_tag, polymorphic: true
|
|
|
|
has_many :taggings, dependent: :destroy
|
|
|
|
|
2012-12-28 02:43:48 +00:00
|
|
|
#field :cloud_amper,:type: Integer,:default=> 0
|
|
|
|
|
2013-05-24 10:42:01 +00:00
|
|
|
# def self.sorted_for_cloud
|
|
|
|
# tags = {}
|
|
|
|
# self.all.each{ |tag|
|
|
|
|
# tags.merge!({tag => self.get_impressionist(tag)})
|
|
|
|
# }
|
|
|
|
# if !tags.blank?
|
|
|
|
# sorted_tags = tags.sort{|a,b| a[1]<=>b[1]}.reverse
|
|
|
|
# sorted_tags[0][1] = :hot1
|
|
|
|
# offset = (sorted_tags.size - 1) / 3
|
|
|
|
# i = 1
|
|
|
|
# class_i = 2
|
|
|
|
# sorted_tags[1..-1].collect!{ |x|
|
|
|
|
# x[1] = "hot#{class_i}"
|
|
|
|
# i == offset ? i = 1 : i += 1 if class_i < 4
|
|
|
|
# class_i += 1 if i == offset && class_i < 4
|
|
|
|
# }
|
|
|
|
# sorted_tags
|
|
|
|
# else
|
|
|
|
# []
|
|
|
|
# end
|
|
|
|
# end
|
2012-12-28 02:43:48 +00:00
|
|
|
|
|
|
|
protected
|
|
|
|
|
|
|
|
def self.get_impressionist(item_tag = self)
|
|
|
|
item_tag.impressions.where(:created_at.gte=> 14.days.ago,:created_at.lte => Time.now).count
|
|
|
|
end
|
2012-07-31 03:57:32 +00:00
|
|
|
|
2012-02-14 16:32:20 +00:00
|
|
|
end
|