diff --git a/plugins/comment_paragraph/lib/comment_paragraph_plugin/discussion_block.rb b/plugins/comment_paragraph/lib/comment_paragraph_plugin/discussion_block.rb index a7a230d..dfb26b2 100644 --- a/plugins/comment_paragraph/lib/comment_paragraph_plugin/discussion_block.rb +++ b/plugins/comment_paragraph/lib/comment_paragraph_plugin/discussion_block.rb @@ -21,7 +21,18 @@ class CommentParagraphPlugin::DiscussionBlock < Block end def discussions - holder.articles.where(type: VALID_CONTENT).order('created_at DESC').limit(self.total_items) + current_time = Time.now + discussions = holder.articles.where(type: VALID_CONTENT).order('created_at DESC').limit(self.total_items) + case discussion_status + when STATUS_NOT_OPENED + discussions = discussions.where("start_date > ?", current_time) + when STATUS_AVAILABLE + discussions = discussions.where("start_date is null or start_date <= ?", current_time) + discussions = discussions.where("end_date is null or end_date >= ?", current_time) + when STATUS_CLOSED + discussions = discussions.where("end_date < ?", current_time) + end + discussions end def holder diff --git a/plugins/comment_paragraph/test/unit/discussion_block_test.rb b/plugins/comment_paragraph/test/unit/discussion_block_test.rb index 6fe10d5..c9de3ca 100644 --- a/plugins/comment_paragraph/test/unit/discussion_block_test.rb +++ b/plugins/comment_paragraph/test/unit/discussion_block_test.rb @@ -104,7 +104,8 @@ class DiscussionBlockTest < ActiveSupport::TestCase a2 = fast_create(CommentParagraphPlugin::Discussion, :profile_id => community.id, :start_date => DateTime.now ) a3 = fast_create(CommentParagraphPlugin::Discussion, :profile_id => community.id, :start_date => DateTime.now - 1.day) a4 = fast_create(CommentParagraphPlugin::Discussion, :profile_id => community.id, :start_date => DateTime.now - 2.day, :end_date => DateTime.now - 1.day) - assert_equivalent [a2,a3], b.discussions + a5 = fast_create(CommentParagraphPlugin::Discussion, :profile_id => community.id, :end_date => DateTime.now + 1.day) + assert_equivalent [a2, a3, a5], b.discussions end should 'return only closed discussions if discussion status is closed' do -- libgit2 0.21.2