Commit 6d54bf95f04f5c64e4fb6688b044ded5597e70dd

Authored by Victor Costa
1 parent 174e0852

comment_paragraph: filter discussions by block status

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 &lt; ActiveSupport::TestCase @@ -104,7 +104,8 @@ class DiscussionBlockTest &lt; 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