Class: MongoidForums::Forum
- Inherits:
-
Object
- Object
- MongoidForums::Forum
show all
- Includes:
- Enableable, ManualSlug, Mongoid::Document, Mongoid::Timestamps, Concerns::Viewable, SortField
- Defined in:
- app/models/mongoid_forums/forum.rb
Instance Method Summary
collapse
#register_view_by, #view_for
Instance Method Details
#count_of_posts ⇒ Object
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_count ⇒ Object
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
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
|
#moderators ⇒ Object
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
|