Merge pull request #1805 from C-Otto/tracks-1727

Sort deferred actions by "show from" in tickler, #1727
This commit is contained in:
Reinier Balt 2015-04-13 16:24:17 +02:00
commit 55e28d90a9
4 changed files with 21 additions and 2 deletions

View file

@ -558,7 +558,7 @@ class TodosController < ApplicationController
includes = params[:format]=='xml' ? [:context, :project] : Todo::DEFAULT_INCLUDES
@not_done_todos = current_user.todos.deferred.includes(includes) + current_user.todos.pending.includes(includes)
@not_done_todos = current_user.todos.deferred.includes(includes).reorder('show_from') + current_user.todos.pending.includes(includes)
@todos_without_project = @not_done_todos.select{|t|t.project.nil?}
@down_count = @count = @not_done_todos.size

View file

@ -100,9 +100,13 @@ Given /^I have ([0-9]+) deferred todos$/ do |count|
end
Given /^I have a deferred todo "([^"]*)" in the context "([^"]*)"$/ do |description, context_name|
step "I have a deferred todo \"#{description}\" in the context \"#{context_name}\" deferred by 7 days"
end
Given /^I have a (?:deferred )todo "([^"]*)" in the context "([^"]*)" deferred by (\d+) day(?:s)?$/ do |description, context_name, deferred_by_days|
context = @current_user.contexts.where(:name => context_name).first_or_create
todo = @current_user.todos.create!(:context_id => context.id, :description => description)
todo.show_from = UserTime.new(@current_user).time + 1.week
todo.show_from = UserTime.new(@current_user).time + deferred_by_days.to_i.day
todo.save!
end

View file

@ -110,6 +110,12 @@ Then /^(?:|I )should see "([^"]*)"(?: within "([^"]*)")?$/ do |text, selector|
end
end
Then /^(?:|I )should see "([^"]*)" before "([^"]*)"$/ do |earlier_content, later_content|
expect(page).to have_content(earlier_content)
expect(page).to have_content(later_content)
page.body.index(earlier_content).should < page.body.index(later_content)
end
Then /^(?:|I )should see \/([^\/]*)\/(?: within "([^"]*)")?$/ do |regexp, selector|
regexp = Regexp.new(regexp)
with_scope(selector) do

View file

@ -98,3 +98,12 @@ Feature: Manage deferred todos
| grouping |
| context |
| project |
Scenario: Opening the tickler page shows the deferred todos in order
Given I have a deferred todo "show tomorrow" in the context "Context B" deferred by 1 day
And I have a deferred todo "show in a year" in the context "Context B" deferred by 365 days
And I have a deferred todo "show in a week" in the context "Context B" deferred by 7 days
When I go to the tickler page
Then I should see "show tomorrow" before "show in a week"
And I should see "show tomorrow" before "show in a year"
And I should see "show in a week" before "show in a year"