plusonelabs / calendar-widget

An calender widget for your Android home screen.
Apache License 2.0
369 stars 126 forks source link

Tasks filtering by start date and by due date, and their ordering #356

Closed shompoe closed 4 years ago

shompoe commented 4 years ago

When the task app allows a start date and a due date, our natural inclination is surely to set the start date to the time we need to become concerned about the task, in other words, the time that the task should come into view. In this way we may schedule many tasks into the future but maintain our immediate visibility only on those tasks which we need to be focussed on in the present. And the due date, logically, is the time at which we plan to complete the task.

However, the present version of the widget filters tasks by due date. This means that if I have a task which is already scheduled to start tomorrow, but which I have allocated two weeks from start to completion, and I have a widget which filters all but today's tasks and events, my task will not appear in the widget untill the day it is due to be completed. So for the two weeks that have now transpired the widget has given me no warning that I needed to be working on that task.

shompoe commented 4 years ago

Yes, but hyperthetically if task 7 were incomplete then this is the order it would be sorted? A task without start time but with start date of today has already started, so begining of today with all the other tasks that have started. Before a task that will start later today.

yvolk commented 4 years ago

I added time details to task7 and task12 to show their placement. Today's task7 like task12 is placed in T2 at its start date and time, not at "Start of Today". My current understanding is that "Start of Today" conceptually means even before zero time: "Today at 12AM"...

shompoe commented 4 years ago

Right. My point essentially was that it depends on what time you look at the table at as to which tasks starting today have already started. Started already come first, sorted by due date. Then those that have not yet started would follow. If there is no specified time then interpret time as 12:00am.

Bye the way, have you given any thought to how T2 would handle tasks where the user has set due date OR start date, but not both? I think that no start date should be simply interpreted as today and no due date as open ended but shown on the day of start date.

yvolk commented 4 years ago

@shompoe wrote:

If there is no specified time then interpret time as 12:00am.

Of course, but events that are at "12AM Today" are placed (and sorted) after all events that are at "Start of Today".

Bye the way, have you given any thought to how T2 would handle tasks where the user has set due date OR start date, but not both? I think that no start date should be simply interpreted as today and no due date as open ended but shown on the day of start date.

Yes, we have 4 such tasks. Work as you expect. Please check.

task3 without start date and due later today at 9PM (incomplete) task4 without start date and due in 42 days (incomplete) task17 starting in 10 days, without due date (incomplete) task14 starting in 39 days, and without due date (incomplete)

shompoe commented 4 years ago

Ah yes. They were in the correct positions. All looks good so far.

yvolk commented 4 years ago

@shompoe And what do you think about wording of the new options and their values (above T1 and below T2 tables) ?

shompoe commented 4 years ago

Let me think on it.....

shompoe commented 4 years ago

Hi,

You could call the new option "Task scheduling."

And the 2 settings could be named as follows:

T1 = "Show tasks under date due." T2 = "Show tasks under date started."

I think this gets across what the option does in essence. What do you think?

yvolk commented 4 years ago

@shompoe Looks good to me. Thank you.

yvolk commented 4 years ago

@shompoe @ekalin Starting work on this issue I created tasks in OpenTasks app (plus several in a Calendar) exactly as defined in this comment: https://github.com/plusonelabs/calendar-widget/issues/356#issuecomment-559910887 Given Calendar is positioned before (above) tasks in the "Calendars and tasks lists", current implementation shows this: 2019-12-22-filtered

As you see, Calendar events allow to see that no tasks are at the "Start of today" yet: 2019-12-22-sorted-sources

yvolk commented 4 years ago

In order to allow testing of tasks that are currently not shown, I modified source code to allow getting ALL tasks from the selected task lists. Here we see all events, mentioned in the above comment https://github.com/plusonelabs/calendar-widget/issues/356#issuecomment-559910887 2019-12-22-no-filters I will use this query result to test filtering and ordering.

yvolk commented 4 years ago

Dear @shompoe @ekalin and @gtbuchanan

I made the first implementation of "Task scheduling" and "Tasks without start and due dates" options as described in this comment: https://github.com/plusonelabs/calendar-widget/issues/356#issuecomment-559910887 Alpha version of the build is here: https://github.com/andstatus/todoagenda/issues/3

This build allows you, in particular, to play with exactly those content (plus some calendars events...) that is now in T1 and T2 tables: just goto to Settings -> Feedback and Backup -> Restore settings from a backup -> and restore this file with settings and events (unzip it first manually!): filter_tasks_308_no_filters.zip

During implementation I made some clarifications and some changes to the text table in above comment, please review them now!

As a result, our widget can now show T1 and T2 exactly as in the current version of the description. See screenshots below: T1 (Show tasks under date due. "Tasks without start and due dates"= "Show at the end of the whole list", Filters turned off (new setting also...)): Screenshot_2020-01-19-09-19-26-222-T1 T2 (Show tasks under date started. "Tasks without start and due dates"= "Show at the end of the whole list", Filters turned off (new setting also...)) Screenshot_2020-01-19-09-23-31-049-T2

shompoe commented 4 years ago

I just tried a simple test. Selecting show under start date option. My widget shows the next 7 days. My task started last week and is due in 2 weeks time. It is not shown in the widget.

yvolk commented 4 years ago

@shompoe It's like "task2" in above table, it's shown despite it is due in 43 days and we have "Data range" set to "one month" ?!

Another tip: switch "Filters troubleshooter" to "Debug filtering"! - This should solve the problem. I really see that there is a bug in the query (I didn't look there yet)

If the task isn't shown in "Debug filtering" mode either and you still cannot figure why... please "Share events and settings for debugging" and email me or attach here... Note: Please turn off filters before sending to me. Otherwise I won't see that task either :-)

yvolk commented 4 years ago

In order to simplify completion of work on this issue I recreated its current state here: https://github.com/andstatus/todoagenda/issues/4 Please follow up in that thread!

shompoe commented 4 years ago

Yes,  setting the filtering mode to "debug" and the event now appears as it should do.

Thank you. Great work. -- Mark Desrousseaux

19 Jan 2020, 11:56 by notifications@github.com:

@shompoe https://github.com/shompoe> It's like "task2" in above table, it's shown despite it is due in 43 days and we have "Data range" set to "one month" ?!

If you cannot figure out, why the task isn't shown... please "Share events and settings for debugging" and email me or attach here...

— You are receiving this because you were mentioned. Reply to this email directly, > view it on GitHub https://github.com/plusonelabs/calendar-widget/issues/356?email_source=notifications&email_token=AM6VTXYJU3QMAMHCDBJD5N3Q6Q5VFA5CNFSM4JR5WGRKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEJKQKDY#issuecomment-575997199> , or > unsubscribe https://github.com/notifications/unsubscribe-auth/AM6VTXZD22VNIFBDPFR2C7LQ6Q5VFANCNFSM4JR5WGRA> .