-
Notifications
You must be signed in to change notification settings - Fork 127
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Tasks filtering by start date and by due date, and their ordering #356
Comments
I believe the ideal behaviour would be to have tasks filtered by start date if set or due date if not set. And to have them displayed under the day header for start date if set.... and move up the list as time progresses. Then to stay in Past and Due header until they are completed or rescheduled. If both start date and due date are set then they could be ordered in Past and Due by due date and highlighted once due date expires. |
Thank you @shompoe for raising this. Your suggestion continues our discussion with @ekalin here and below: #308 (comment) where we didn't define / agree on proper tasks ordering / showing / filtering... Reading your above posts I see the problem and I also see that different cases still need more details/clarification. Otherwise we will fix one case and break another... In particular, it seems that we need to filter tasks by both start and due dates... |
Hi again, As far as I can see, if you do it how I suggest (use due date if start date not set, use start date if due date not set, but if both set then filter by start date and show under the day header from start date but sort by due date under Past and Due header) then it ought to work as the user expects regardless of whether the app they use has both start and due date or just one or the other??? I can't think of a scenario where this would cause unexpected behaviour. |
@shompoe No :-)
Following your description "filter by start date" the task should be filtered out i.e. hidden. |
No. It should stay under the Past and Due header regardless of start and due date until the task is marked complete. So actually, only future tasks filtered by start date but past tasks should remain unfiltered regardless of settings. I believe this is actually how the widget works at the moment. Ie. the display past events setting only affects events, but not tasks. This should be considered expected behaviour because an event (say an appointment) expires at a certain time, regardless of wether you attend it or not. A task however, cannot expire until you have actioned it and so it becomes overdue. I just did a quick test and this is what the widget is doing now, albeit filtering on due rather than start. Does that make sense? |
OK, so we extend our case:
I have these tasks in the Task app:
As we don't know, if tasks in the Task app have Start or Due date, we need:
tasks 1 to 5 and task8 will be shown Correct? OR according to your words task4 shouldn't be shown also ?! For the reference, current filtering logic is in this file: below this line:
(currently it's at line 76) |
Yes, this is what should happen. Show everything that is incomplete and either started in the past, will start within 1 month, or has no specified start date. Tasks that are complete must never be shown. And tasks that start after 1 month must not be shown. You make an interesting point about task 4. My original reasoning was that some apps maybe don't have both start and due dates, some only start and some only due. I don't know if this is the case. If it is then it complicates things. However, if the app supports both start and due then failure to set a start date could have different meanings for different people (I read the thread mentioned above) For me, when I don't set start date it means something I should be starting at my earliest convenience. So I don't want to loose visibility of those tasks regardles of wether I have given them a due date. So I think my original logic is only relevant for apps that don't have start date. Are there any? I don't know. Going back to task 4. It would be useful for it to display the due date in the widget. But perhaps that's for another thread. What do you think? |
To all!
New option introduced: In any case both start and due dates are taken into account, but differently. task9 and task10 below (as other tasks without start and due dates) need special treatment i.e. additional option: Task visibility and sorting if option T1 (Due date...) is selected:
Task visibility and sorting if option T2 (Start date...) is selected:
|
For me, it means today.
For me, show today. But I go along with the principle that some users might like the ability to configure other behaviours.
For me, the order is not correct. Start date just tells me if I'm working on a task or if I'm not yet concerned about it (ie. to display it in my date range or not) whereas due date tells me how long I have for each task and so should affect the priority (ie. tasks with shortest time to complete them at the top). The decision to put tasks with no due date at the bottom is therefore correct. |
@shompoe @gtbuchanan Maybe we really can solve all above problems with sorting and filtering with only one additional option: How do we treat a task without start date:
?! (Maybe better wording is needed...) |
Seems like this would work for my purposes and for #358. Can I suggest that the default should be option 2 because this is closer to what already happens and because new users might get confused if they don't see their tasks. As we are onto the subject of sorting. After sorting first by due date, tasks should then be sorted by priority? |
@shompoe I agree that option "2. Show today, or at the end of list, if no end date" should be default. Regarding sorting, currently events (calendars events and tasks...) with the same date are sorted by the source, and then - by title. So I think that any other special sorting could be better done changing order of Calendars and Task lists. I.e. you can create different task lists for tasks with different priorities... |
Yes, I see now. As the widget displays two different types of data, compromises are necessary. So I go along with what you say. |
I think the proposal is quite reasonable. A few observations:
For coverage (in particular of the querying, not much of the ordering), one could add two more tasks:
Also, I'm completely ignoring task times (again, which some apps don't support). I'm sure someone has an use case for them, and it might even be reasonable, but if you one really cares about the time, maybe they need a calendar event and not a task. But perhaps it could be used for sorting tasks in a day, but not for filtering. |
This makes complete sense to me. 😊 |
Hi, I've read through the output for T2 a couple of times and I think that is how I'd like to see it. A couple of thoughts for T1, though this is not how I use tasks. Task 12 is shown under tomorrow, because it is due tomorrow. So logically task 8 cannot be shown because the due date is beyond 1 month? And for task 10, should there be a separate option to show or not show it? |
I agree with the current chart. Like @ekalin said, many people (including myself) are coming from Google Calendar where their "Reminders" only have a "due date" so there are no preconceived requirements about "start date". Nonetheless, I can see the usefulness of both sides being described. I would like to mention that I personally don't care if "task 10" is hidden as long as it isn't displayed at the start of the widget (like "Today"). My main problem right now is my dozens of "task 10" situations push all my calendar events off-screen. I'd be okay if they were displayed at the end of the widget instead in T1. Though, I'm not certain if that is what you meant by "end of the list". |
@gtbuchanan Maybe we really need to show task10 even for T1 ("Don't care") case:
|
I'm not sure I understand what your proposed option does, especially option T1. I'm also not sure about the need for this option. It's one thing to add an option to hide tasks with no start and end date as in #358, but you seem to want to mix that feature with some other treatment. Moreover, in some cases it's not really the user's choice to set or not a start date, but a limitation on the task app. Currently I have more issues with both your options than I had before :-) Hete's how I think it should look like. I've removed the completed tasks because they only make it harder to follow the chart, and I think everyone agrees that completed tasks are not to be shown:
Edit: Added task16 |
Yes, if T1 was added just for me then I agree with @ekalin chart for the new default behavior. Start dates always matter to me if there is one. For tasks without a start or due date I just use a separate task widget or my tasks app to set dates or complete when appropriate. However, if we still wanted to display them in this widget we can nix the original setting, use @ekalin chart, and add the single following option instead: "Pin open-ended tasks to Today" Default to true for current behavior. Setting to false would move the tasks with no start or end date to a new section at the bottom of the widget titled something like "Open-ended Tasks". |
@ekalin wrote
ToDo Agenda doesn't support such Task apps:
|
That's exactly what I meant on limitation on the task app: since there's no way to set the start date, all tasks have start date empty, so whatever the user selects in that option will apply to all tasks. |
No, the two cases appeared as a result of THIS issue's discussion. Your discomfort with tasks without both dates just happen to fit into the new reasoning... |
In previous implementation we set (absent) start date equal to present Due date. That was a workaround, because we didn't have logic that we are developing in this issue. Edit: |
@yvolk I see. Well, T1 does fit my need for #358 but it prevents me from ever using start date in a useful way as this ticket suggests (which was the reason I entered a separate ticket). I said it is fine with me for now since it solves my immediate issue and you are trying to avoid adding multiple new settings. If it were my choice, I would prefer the new fixed behavior @ekalin suggested and a new setting for where the "no start or due date" tasks are displayed. Sorry for the confusion. |
@gtbuchanan As you see, this discussion is quite complex, it requires attention to details, to every line of the long post. Comparing different tables with one word won't make us closer to the better solution. I think :-) |
…ry on a timeline independent from an event start and end/due dates. Introduce special timeline positions like "End of today" in order to implement Tasks positioning and sorting as per plusonelabs#356 (comment)
…ame as in an underlying event
…arate MyContentResolver class to ease mocking and simplify code.
…ng. Now results to play are inserted in the widget's Settings
…ially named widget: its name ending with "Test replay"
…lowing to see not only live data, but a snapshot of events, taken on this on on another device. Snapshot is transferred using "Share events and settings for debugging" on one device -> and "Restore settings from a backup" on another device or a widget.
… (and not device global, as before)
…ings internally to simplify usage
…'t work properly yet...)
…t yet, and option to lock events selected
…et (if a widget with such name exists on the device)
…(some changes in the table are needed)
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: #356 (comment) 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!): 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: |
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. |
@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... |
In order to simplify completion of work on this issue I recreated its current state here: andstatus#4 |
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 [email protected]:
…
@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 <#356?email_source=notifications&email_token=AM6VTXYJU3QMAMHCDBJD5N3Q6Q5VFA5CNFSM4JR5WGRKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEJKQKDY#issuecomment-575997199>> , or > unsubscribe <https://github.com/notifications/unsubscribe-auth/AM6VTXZD22VNIFBDPFR2C7LQ6Q5VFANCNFSM4JR5WGRA>> .
|
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.
The text was updated successfully, but these errors were encountered: