Commit 2cd8bfbb06a3e4a386898e93427fd192054bcd2e

Authored by Victor Costa
1 parent 8b3a53b8

comment_paragraph: use start_date and end_date to order discussions

plugins/comment_paragraph/lib/comment_paragraph_plugin/discussion_block.rb
... ... @@ -22,7 +22,7 @@ class CommentParagraphPlugin::DiscussionBlock < Block
22 22  
23 23 def discussions
24 24 current_time = Time.now
25   - discussions = holder.articles.where(type: VALID_CONTENT).order('created_at DESC').limit(self.total_items)
  25 + discussions = holder.articles.where(type: VALID_CONTENT).order('start_date ASC, end_date DESC, created_at DESC').limit(self.total_items)
26 26 case discussion_status
27 27 when STATUS_NOT_OPENED
28 28 discussions = discussions.where("start_date > ?", current_time)
... ...
plugins/comment_paragraph/test/unit/discussion_block_test.rb
... ... @@ -188,4 +188,17 @@ class DiscussionBlockViewTest < ActionView::TestCase
188 188 assert_equivalent [a2.id, a1.id], b.api_content['articles'].map {|a| a[:id]}
189 189 end
190 190  
  191 + should 'sort discussions by start_date, end_date and created_at' do
  192 + community = fast_create(Community)
  193 + community.boxes << Box.new
  194 + b = CommentParagraphPlugin::DiscussionBlock.new
  195 + b.box = community.boxes.last
  196 + b.save
  197 + a1 = fast_create(CommentParagraphPlugin::Discussion, :profile_id => community.id, start_date: Time.now)
  198 + a2 = fast_create(CommentParagraphPlugin::Discussion, :profile_id => community.id, start_date: Time.now + 1, end_date: Time.now)
  199 + a3 = fast_create(CommentParagraphPlugin::Discussion, :profile_id => community.id, start_date: Time.now + 1, end_date: Time.now + 1.day)
  200 + a4 = fast_create(CommentParagraphPlugin::Discussion, :profile_id => community.id, start_date: Time.now + 1, end_date: Time.now + 1.day)
  201 + assert_equal [a1.id, a2.id, a3.id, a4.id], b.discussions.map(&:id)
  202 + end
  203 +
191 204 end
... ...