Closed Bug 617277 Opened 14 years ago Closed 13 years ago

Incomplete tasks filter doesn't display incomplete tasks without start date if due date is more than 24h in the future

Categories

(Calendar :: Tasks, defect)

x86
All
defect
Not set
normal

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: bugzilla.i.sekler, Assigned: mmecca)

References

Details

(Whiteboard: [needed beta][no l10n impact])

Attachments

(1 file)

User-Agent:       Mozilla/5.0 (X11; Linux i686; rv:2.0b8pre) Gecko/20100101 Firefox/4.0b8pre
Build Identifier: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.14pre) Gecko/20101205 Lightning/1.0b3pre Thunderbird/3.1.8pre

As a result of the checkin in Bug 350174, the filter for incomplete tasks in the task list doesn't match for tasks with no start date and a due date more than 24h in the future res. the selected date in the minimonth. While not showing future tasks in the Today Pane might be justified (though a limitation to 24h is very scary, making it easy to forget tasks until it is too late; a week should be the minimum IMHO), there is no reason to apply this to the task list in the Tasks tab, where the filter for incomplete tasks should show all incomplete tasks regardless of the start/due date and the selected date in the minimonth.


Reproducible: Always

Steps to Reproduce:

1. Create a new task with no start date set and the due date e.g. 10 days in the future.
2. In the Tasks tab, select the filter for incomplete tasks.
3. In a Mail tab, uncheck "Show completed Tasks" in the Today Pane.

Actual Results:  
The new task shows up neither in the task list nor in the Today Pane.


Expected Results:  
The new task is displayed at least in the Tasks tab with the filter for incomplete tasks active. The expected behavior of the Today Pane may be different, showing this task first when the due date is only 7 days in the future.
This is caused by the current way tasks are filtered by date range. 

This issue doesn't appear for incomplete tasks with no Start date AND no Due date, because they will always match any given date filter, as specified in RFC 5545:

From http://tools.ietf.org/html/rfc5545#section-3.6.2
"A "VTODO" calendar component without the "DTSTART" and "DUE" (or "DURATION")
properties specifies a to-do that will be associated with each successive
calendar date, until it is completed."

However, a task with no Start date that does have a Due date set will only match a date range filter if the Due date falls within that date range. This effectively makes the task behave as though the Start date was set to the same value as the Due date, which results in the "short notice" behavior when the current filter is based on the current date.

The RFC is vague as to how a task with a Due date but no Start is supposed to be treated, but personally I agree with Ilja that these tasks need to be displayed for more than a single day in advance. I think it makes sense to treat all incomplete tasks without a Start date the same, and match all date ranges regardless of whether a Due date has been set or not. This shouldn't have any impact on how repeating tasks are displayed, since a Start date is required for recurrence.
(In reply to comment #0)
> ... there is no reason to apply this to the task
> list in the Tasks tab, where the filter for incomplete tasks should show all
> incomplete tasks regardless of the start/due date and the selected date in the
> minimonth.

I disagree with this though, I think it's important for the "Incomplete Tasks" filter to be bound to a date range to allow proper display of repeating tasks, especially since there is no "Show completed tasks" checkbox for the Task View like there is for the Today Pane. I think the filter that shouldn't be date bound is the "All" filter.

However, as I stated in comment #1 this doesn't need to apply to tasks without a Start date, which would resolve this issue without breaking the repeating tasks fix in bug 350174.
Assignee: nobody → matthew.mecca
Status: UNCONFIRMED → ASSIGNED
Ever confirmed: true
OS: Linux → All
Attached patch fix v1 β€” β€” Splinter Review
Match tasks with a Due date and no Start date to date filters in the same way as tasks with no Start date and no Due date.
Attachment #497110 - Flags: review?(philipp)
I really apologize for noise, but two months have passed since review for this patch (<https://bugzilla.mozilla.org/attachment.cgi?id=497110>) was requested. Any chance to get to this soon?

Of course, all my private Lightning builds have this patch applied, but it would be great if the fix finally makes it into the official repository.
Sorry for the delay. The storage calendar changes are worrying me a bit, each change there is very fragile. While I trust Matthew has put much thought into this, I'll need to spend some time analyzing it. Given my current priorites (release bugs, exams, etc), I haven't found time to do this and I can't say for sure that this will happen in time for 1.0b3.
In my opinion a big regression and the reason why I cannot use 1.0b3pre for daily work and testing and the reason why I downgraded to 1.0b2.

My workflow is the following: I use the task list in the Today Pane like a simple todo list. I enter a task for something that needs to be done and specify a due date until it has to be done at the latest.

In 1.0b2 I now see all open tasks that have to be done, I can sort them by due date and decide whether to work on it or not.

In 1.0b3pre this doesn't work anymore. The Today Pane only shows tasks that have to be finished by today - already too late to work on them in some cases.

If the old behavior cannot be restored the timeframe (comment 0 mentions 24 hours) should at least be configurable, similar to the soon section in the agenda view.

I'd say Bug 350174 wouldn't be affected by this change because tasks with only a due date cannot be repeating.

I don't use storage provider calendars therefore I don't know if all this changes are necessary. If we actually had storage provider unittests the changing and verifying would be much easier ;)
(In reply to comment #7)
A quick workaround in the mean time is to check the "Start Date" and leave it at today's date when you are creating a new task, that should restore the original behavior for those tasks.

I also think it would be good if we could take this for 1.0b3.

If we want to postpone this, maybe another option in the mean time would be to have the "Start Date" checkbox automatically selected when the "Due Date" box is checked. That would prevent the extra step in task creation for the workaround I mentioned.
Ok, I'll consider this for the release when I've taken a closer look at the storage changes. Putting this on the blocker list so I don't forget.
Flags: blocking-calendar1.0+
Whiteboard: [needed beta][no l10n impact][needs review]
Maybe it would help me if you could explain the storage changes a bit. From looking at both versions side by side, it seems you remove this part:


            " ((todo_entry IS NULL) AND " +
            "  (("+floatingTodoDue+" >= :range_start + :start_offset) OR " +
            "   ("+nonFloatingTodoDue+" >= :range_start)) AND " +
            "  (("+floatingTodoDue+" < :range_end + :end_offset) OR " +
            "   ("+nonFloatingTodoDue+" < :range_end)))) " +

Is this correct? Why did we have this before and why is it not needed now?
(In reply to comment #10)

> Is this correct? Why did we have this before and why is it not needed now?
That's correct. The part that was removed basically says that if a task has no start date, use the due date to check if it falls within a date range. The problem with doing it that way is that it then treats the task as though the start date is set to the same value as the due date, which causes a filter like "Today" to only show the task if it's due today, and no sooner. 

Getting rid of that part causes the no-start-date tasks to be treated the same whether they have a due date or not, which I think is the correct way to do it, as per the spec they are associated with every date until completed. Effectively that says "if a start date isn't specified, assume the task is started" instead of "assume the task doesn't start until it is due". This issue wasn't as obvious before bug 350174 since date ranges weren't used in those filters or the today pane.
Pushed to comm-central <http://hg.mozilla.org/comm-central/rev/2c31d5a423c4>
-> FIXED
Status: ASSIGNED → RESOLVED
Closed: 13 years ago
Resolution: --- → FIXED
Target Milestone: --- → Trunk
Whiteboard: [needed beta][no l10n impact][needs review] → [needed beta][no l10n impact]
Comment on attachment 497110 [details] [diff] [review]
fix v1

Looks like my review comment didnt make it. I was saying, lets go ahead and give it a try. r=philipp
Attachment #497110 - Flags: review?(philipp) → review+
Wanted for comm-1.9.2? Same issue exists in Lightning 1.0b3pre.
comm-1.9.2 rev d045d61098bb
Keywords: checkin-needed
Target Milestone: Trunk → 1.0b3
Blocks: 350174
I hope I am not breaking protocol by posting to this thread.  I've Googled this several ways, and the only viable results returned kept pointing here.

This bug is listed as verified | fixed.  However, I am having this issue with TBird 5.0 & Lightning 1.0b4.  Essentially, the issue listed in the original post here exists with this combination.  Tasks w/no start date and an end date more than 24h in the future do not appear when View |Tasks is set to Incomplete Tasks.  It seems other users create tasks with this kind of setting -- otherwise, the calendar view shows vertical bars from the start date/time to the end date/time, which clutters that view immensely.

IMHO an appropriate future enhancement would give the user more control of how and what tasks are shown.  I envision a dbx triggered by View | Tasks | Filter Tasks that would include a date range, task status selections (including All), and a checkbox to show or not show completed tasks.  This would essentially eliminate the other selections on the View | Task menu list, or, could be "shortcut" means to set that filter.
(In reply to comment #16)
> Tasks w/no start date and an end date more than 24h in the future do not >appear when View |Tasks is set to Incomplete Tasks.

They should be appearing - can you provide an exported calendar and/or screen shots where they are not?
I will:  I hope I can understand how to do that.
In preparing the screen shots, thought I best show start dates.  Doing so made me realize that the tasks that don't show in the Incomplete View are NOT those with no start date, but several with start dates same as the end date, but the end date in the past (I.E., overdue).
(In reply to comment #18)

Based on the screen shots you emailed me, it appears that the tasks that are not showing up do have a Start Date set, and it is later than the date selected in the mini-month.

There are 2 ways you can have those tasks show up with the Incomplete filter:

 - Select a later date in the mini-month above the calendar list. That will show the incomplete tasks with a Start date on or before the date you selected, along with those with no Start date set.

or

 - Remove the Start date from the tasks. You won't be able to do this if you have a reminder set relative to the start date, but you can create a "Custom" reminder and set it to some amount of time "before the task ends" (which will be relative to the Due date), and then you will be able to uncheck the box next to Start date.
Matt:
OK -- it's klugey, but it works.  The first suggestion is of course very easy to do, and that's now standard practice.  If you don't mind my saying so, I don't think the average user would expect to have to set tasks this way to be able to see them in "Incomplete" list.  An Incomplete task should be just that.  

However, it is like having a custom filter capability by controlling the time span with the mini month.  It's just not intuitive.

Thanks for the response.  I will retract that the "Bug is unresolved," however, I suggest a minor re-think of the interface -- or a tooltip or something on that line.
@Ron - Thanks for your feedback.

Filed Bug 673751 to discuss the UI of the date-bound Task View filters.
I have noticed this problem for a while (currently in TB 14):

If a task has a Start date in the future, but is not completed, it will not show in the "Incompleted tasks" filter. However, if the Start date is current or past it will show in this filter. The "Status" and "% completed" do not have any effect.

The correct or desired behaviour (for me at least) is to show tasks in the "Incompleted tasks" filter regardless of Start date but based on the Status fields being "Completed on" / "100% completed".

This bug report should be reopened, in my opinion, or I can post a new one if necessary (please let me know ASAP).

Thanks.
That is to say, tasks should only not appear in the "Incompleted tasks" if the Status fields are "Completed on" / "100% completed".
(In reply to Mark Jones from comment #22)
> I have noticed this problem for a while (currently in TB 14):
> 
> If a task has a Start date in the future, but is not completed, it will not
> show in the "Incompleted tasks" filter. However, if the Start date is
> current or past it will show in this filter. The "Status" and "% completed"
> do not have any effect.
> 
> The correct or desired behaviour (for me at least) is to show tasks in the
> "Incompleted tasks" filter regardless of Start date but based on the Status
> fields being "Completed on" / "100% completed".
> 
> This bug report should be reopened, in my opinion, or I can post a new one
> if necessary (please let me know ASAP).
> 
> Thanks.

This bug was about tasks with no start date set. The issue of incomplete tasks with a future start date is tracked by Bug 746524.
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: