Commit 6d54bf95f04f5c64e4fb6688b044ded5597e70dd
1 parent
174e0852
Exists in
ratings_minor_fixes
and in
3 other branches
comment_paragraph: filter discussions by block status
Showing
2 changed files
with
14 additions
and
2 deletions
Show diff stats
plugins/comment_paragraph/lib/comment_paragraph_plugin/discussion_block.rb
@@ -21,7 +21,18 @@ class CommentParagraphPlugin::DiscussionBlock < Block | @@ -21,7 +21,18 @@ class CommentParagraphPlugin::DiscussionBlock < Block | ||
21 | end | 21 | end |
22 | 22 | ||
23 | def discussions | 23 | def discussions |
24 | - holder.articles.where(type: VALID_CONTENT).order('created_at DESC').limit(self.total_items) | 24 | + current_time = Time.now |
25 | + discussions = holder.articles.where(type: VALID_CONTENT).order('created_at DESC').limit(self.total_items) | ||
26 | + case discussion_status | ||
27 | + when STATUS_NOT_OPENED | ||
28 | + discussions = discussions.where("start_date > ?", current_time) | ||
29 | + when STATUS_AVAILABLE | ||
30 | + discussions = discussions.where("start_date is null or start_date <= ?", current_time) | ||
31 | + discussions = discussions.where("end_date is null or end_date >= ?", current_time) | ||
32 | + when STATUS_CLOSED | ||
33 | + discussions = discussions.where("end_date < ?", current_time) | ||
34 | + end | ||
35 | + discussions | ||
25 | end | 36 | end |
26 | 37 | ||
27 | def holder | 38 | def holder |
plugins/comment_paragraph/test/unit/discussion_block_test.rb
@@ -104,7 +104,8 @@ class DiscussionBlockTest < ActiveSupport::TestCase | @@ -104,7 +104,8 @@ class DiscussionBlockTest < ActiveSupport::TestCase | ||
104 | a2 = fast_create(CommentParagraphPlugin::Discussion, :profile_id => community.id, :start_date => DateTime.now ) | 104 | a2 = fast_create(CommentParagraphPlugin::Discussion, :profile_id => community.id, :start_date => DateTime.now ) |
105 | a3 = fast_create(CommentParagraphPlugin::Discussion, :profile_id => community.id, :start_date => DateTime.now - 1.day) | 105 | a3 = fast_create(CommentParagraphPlugin::Discussion, :profile_id => community.id, :start_date => DateTime.now - 1.day) |
106 | a4 = fast_create(CommentParagraphPlugin::Discussion, :profile_id => community.id, :start_date => DateTime.now - 2.day, :end_date => DateTime.now - 1.day) | 106 | a4 = fast_create(CommentParagraphPlugin::Discussion, :profile_id => community.id, :start_date => DateTime.now - 2.day, :end_date => DateTime.now - 1.day) |
107 | - assert_equivalent [a2,a3], b.discussions | 107 | + a5 = fast_create(CommentParagraphPlugin::Discussion, :profile_id => community.id, :end_date => DateTime.now + 1.day) |
108 | + assert_equivalent [a2, a3, a5], b.discussions | ||
108 | end | 109 | end |
109 | 110 | ||
110 | should 'return only closed discussions if discussion status is closed' do | 111 | should 'return only closed discussions if discussion status is closed' do |