Class: MongoidForums::Forum

Inherits:
Object
  • Object
show all
Includes:
Enableable, ManualSlug, Mongoid::Document, Mongoid::Timestamps, Concerns::Viewable, SortField
Defined in:
app/models/mongoid_forums/forum.rb

Instance Method Summary collapse

Methods included from Concerns::Viewable

#register_view_by, #view_for

Instance Method Details

#count_of_postsObject



43
44
45
# File 'app/models/mongoid_forums/forum.rb', line 43

def count_of_posts
  topics.inject(0) {|sum, topic| topic.posts.count + sum }
end

#increment_posts_countObject



47
48
49
50
51
52
53
54
# File 'app/models/mongoid_forums/forum.rb', line 47

def increment_posts_count
  if self.posts_count == nil
    self.posts_count = 1
  else
    self.posts_count += 1
  end
  self.save
end

#moderator?(user) ⇒ Boolean

Returns:

  • (Boolean)


57
58
59
60
61
62
63
64
# File 'app/models/mongoid_forums/forum.rb', line 57

def moderator?(user)
  return false unless user
  return true if category.moderator?(user)
  moderator_groups.each do |group|
    return true if group.moderator && group.members.include?(user.id)
  end
  false
end

#moderatorsObject



66
67
68
69
70
71
72
# File 'app/models/mongoid_forums/forum.rb', line 66

def moderators
  array = Array.new
  self.moderator_groups.each do |g|
    array << g.group.members
  end
  return array
end

#unread_topic_count(user) ⇒ Object



31
32
33
34
35
36
37
38
39
40
41
# File 'app/models/mongoid_forums/forum.rb', line 31

def unread_topic_count(user)
  view = View.where(:viewable_id => id, :user_id => user.id).first
  return topics.count unless view.present?
  count = 0
  topics.each do |topics|
    if topics.created_at > view.current_viewed_at
      count+=1
    end
  end
  return count
end