Defect #11170

Topics sort order is broken in Redmine 2.x

Added by Vitaly Klimov over 5 years ago. Updated over 5 years ago.

Status:ClosedStart date:
Priority:NormalDue date:
Assignee:Jean-Philippe Lang% Done:

0%

Category:Forums
Target version:2.0.3
Resolution:Fixed Affected version:2.0.2

Description

Because of Rails 3 by default uses order from has_many :order statement before any defined order, messages are always sorted by creation time first regardless of sticky attribute.

To fix it, line 46 in file app/controllers/boards_controller.rb

@topics =  @board.topics.find :all, :order => ["#{Message.table_name}.sticky DESC", sort_clause].compact.join(', '),
   :include => [:author, {:last_reply => :author}],
   :limit  =>  @topic_pages.items_per_page,
   :offset =>  @topic_pages.current.offset

should be changed to

@topics =  @board.topics.reorder(["#{Message.table_name}.sticky DESC", sort_clause].compact.join(', ')).all(
   :include => [:author, {:last_reply => :author}],
   :limit  =>  @topic_pages.items_per_page,
   :offset =>  @topic_pages.current.offset)

Associated revisions

Revision 9836
Added by Jean-Philippe Lang over 5 years ago

Fixed that sticky messages are not displayed first (#11170).

History

#1 Updated by Etienne Massip over 5 years ago

Why not move the sort order to the has_many association declaration in source:/tags/2.0.2/app/models/board.rb#L21?

#2 Updated by Vitaly Klimov over 5 years ago

Etienne Massip wrote:

Why not move the sort order to the has_many association declaration in source:/tags/2.0.2/app/models/board.rb#L21?

I am not sure why topics are sorted by creation time by default, but if it is does not matter - then yes, moving sticky sort order to association will simplify things a bit.

#3 Updated by Jean-Philippe Lang over 5 years ago

  • Status changed from New to Resolved
  • Assignee set to Jean-Philippe Lang
  • Target version set to 2.0.3
  • Resolution set to Fixed

Fixed in r9836, thanks for pointing this out.
We do not always want the messages in the same order (eg. board display vs. atom feed), so having this handled by the association sort order is not a better solution.

#4 Updated by Jean-Philippe Lang over 5 years ago

  • Status changed from Resolved to Closed

Merged.

Also available in: Atom PDF