mikeberger/borg_calendar

Question about guide to implement idea.

Closed this issue · 7 comments

I have an idea of editing some appointment to-do if over x time.
type 1,auto edit the tittle as xxxx(failed) and mark it as done.

The core idea is its useless to keep it in the to-do list since it is a past event,
like if a birthday is over the next day,then we might as well move on and be positive,

for example, celebrate my birthday
(if reach next day,for example set timeout at 1 day):celebrate my birthday(failed) and its auto not in todo list,.

type 2 instead auto create a new appointrnent at a similar time and setting just different date and name,
eg. celebrate my birthday
(if reach next day,for example set timeout at 1 day)
rename as: re-celebrate my birthday
or
rename as: apologize for not attending the party (this setup is possibility more complex and its more of a user pre,inputted if case.)

the core idea is its useful if we are busy and the task just either gets finished or not finished and inform as a another task and you can see the history if the failed one and the one shot finished ones. It leads you to understand that you failed something but its ok since you have a newer actionable task. Which is a common mindset in positive thinking * mindset theory or whatever.
In short its going to promote be productive and its actually more efficient,inheritance of properties is ok in MOST case,

For example,forgetting finish "creating issue" to-do today,is ok if tommorrow re appeared in to-do again as "creating issues(remind)"

Do you have an example of another calendar that actually edits the user's appointments? The program can display overdue items differently, but I don't think it should edit them.

Your "type 1" is similar to non todo items in an "agenda". Most calendars have an agenda view, but I never got around to adding this for Borg. In an agenda view, all appointments appear, but non-todo's disappear after the due date and todos stay on the agenda and are marked overdue.

Other calendars also show overdue tasks on the current date in some way, but Borg does not.

For overdue todos, I think that marking them as overdue is enough. So, if a "attend party task" is marked as overdue, you can figure out what to do without adding "apologize for not attending".

I sync Borg with google and aCalendar+. I will attach pictures of the agenda view and the todo list with overdue items. Perhaps soemthing from those calendars can be added to Borg.

I used to use Caldav sync to sync with various calendars, and those calendars also had agenda views and better displays of overdue items.

pics will follow

Here is the agenda view from he aCalendar+ widget on my home screen. Notice the 2 overdue todos that appear on the current day, but are from days ago.
Also notice the "marissa noon" appointment. This is a non todo and will disappear from the agenda after 12/17.

Screenshot_20221211-081843

Here is a todo list view. The overdue todo is highlighted better here than in Borg.
image

Here's how google calendar shows things:

from month view - overdue todos:
image

Todo list with overdue:
image

Agenda view with 1 non-todo item included:
image

I see,you do have a point.
I also prefer stuff being compatible so making to-do auto delete,which is different from others would be confusing.

The reason I wanted to create a new (todo/agenda) when overdue is to keep the history intact and has a traceable workflow.
Such that doing any x thing can have a fully traceable reasoning.
Eg, why Monday(12.12) go shoppingmall?Because missed 11.11& Black Friday sale.But it is a device required now.etc.
It is definitely a bit on the paranoid systematic and informative level.(which also implies that enabling it by default is bad,especially syncing with closed source storage/apps)

But for now,I think


  • we can copy the behaviour of other apps,agenda will auto delete if overdue and to-do just has a status.(or make it an boolean/int option:0,off.1,done(no delete),2,delete)
  • keeping to-do shown in older date is better since our brain can probably remember what is that thing more relevant.But if finished can maybe create a new to-do in today date.so we know"i finished my homework at x date,if say a professor/boss/friend asked you.But it is a task at y date"

Do you perhaps know what is the sql command for getting all overdue to-do/agenda this month?
or is there a java api that can do that?
If available then I can just directly get the data from there and use it directly.

We need to


  • maybe add a toggle to show agenda only?
  • add a toggle to show only (overdue/not overdue) in to-do view

To be fair,the current to-do list already have a star if overdue,but if the task scales up then i think having a toggle would be useful.

The API to get ALL todos is:

AppointmentModel.getReference().get_todos();
It returns Collection of Appointment

The SQL would be: select * from appointments where todo = 1

There is no API to get just the overdue todos.

I see do you happen to have created a function for getting the overdue logic?
Since the to-do gui has that tick,I assume its in a function?
I dont see a field for overdue in https://github.com/mikeberger/borg_calendar/blob/master/BORGCalendar/model/src/main/java/net/sf/borg/model/entity/Appointment.java

The asterisk is added in TodoView.java when rendering the text in the table if the date is before the current date:

if (!DateUtil.isAfter((Date) value, new Date()))

The todo's due date is calculated like this:

	// date is the next todo field if present, otherwise
			// the due date
			Date nt = r.getNextTodo();
			if (nt == null) {
				nt = r.getDate();
			}

on line 942

NextTodo has a value if the todo is repeating