Vote #81048
完了Spent time details are displayed in incorrect order when sorted by week and date
0%
説明
When specifying the sorting condition of Week column and Date column in the custom query, it doesn't sort well.
Defining a custom query
!{width:400px;border:1px solid #ccc;}customquery.png!List of spent time with custom query
!{width:400px;border:1px solid #ccc;}spenttime-with-customquery.png!
journals
The sort condition Date(:spent_on) and Week(:tweek), defined by @app/models/time_entry_query.rb@( source:trunk/app/models/time_entry_query.rb#L24 ) are the same table columns.
<pre><code class="ruby">
# Date
QueryColumn.new(:spent_on, :sortable => ["#{TimeEntry.table_name}.spent_on", "#{TimeEntry.table_name}.created_on"], :default_order => 'desc', :groupable => true),
# Week
QueryColumn.new(:tweek, :sortable => ["#{TimeEntry.table_name}.spent_on", "#{TimeEntry.table_name}.created_on"], :caption => :label_week),
</code></pre>
--------------------------------------------------------------------------------
I think the following patch will fix the problem.
<pre><code class="diff">
diff --git a/app/models/time_entry_query.rb b/app/models/time_entry_query.rb
index c8f8eeaeb..c5c2099ad 100644
--- a/app/models/time_entry_query.rb
+++ b/app/models/time_entry_query.rb
@@ -25,7 +25,7 @@ class TimeEntryQuery < Query
QueryColumn.new(:project, :sortable => "#{Project.table_name}.name", :groupable => true),
QueryColumn.new(:spent_on, :sortable => ["#{TimeEntry.table_name}.spent_on", "#{TimeEntry.table_name}.created_on"], :default_order => 'desc', :groupable => true),
TimestampQueryColumn.new(:created_on, :sortable => "#{TimeEntry.table_name}.created_on", :default_order => 'desc', :groupable => true),
- QueryColumn.new(:tweek, :sortable => ["#{TimeEntry.table_name}.spent_on", "#{TimeEntry.table_name}.created_on"], :caption => :label_week),
+ QueryColumn.new(:tweek, :sortable => ["#{TimeEntry.table_name}.tyear", "#{TimeEntry.table_name}.tweek"], :caption => :label_week),
QueryColumn.new(:author, :sortable => lambda {User.fields_for_order_statement}),
QueryColumn.new(:user, :sortable => lambda {User.fields_for_order_statement}, :groupable => true),
QueryColumn.new(:activity, :sortable => "#{TimeEntryActivity.table_name}.position", :groupable => true),
</code></pre>
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
I have slightly updated the test code.
Setting the target version to 4.1.2.
--------------------------------------------------------------------------------
Go MAEDA wrote:
> I have slightly updated the test code.
I forgot to attach a patch.
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
Committed the patch. Thank you.
--------------------------------------------------------------------------------