Created on 19 April 2018, almost 7 years ago
Updated 30 October 2023, about 1 year ago

Problem/Motivation

A common request is for farmOS to provide an easy way to manage recurring tasks, so that they always show up in your todo list daily/weekly/yearly/etc.

For example: https://github.com/farmOS/farmOS/issues/78

If farmOS were like a traditional calendar system, you would expect to be able to create a single log and give it a repeating rule (ie: "repeats weekly on monday"). Drupal has a Date Repeat module that would provide this capability. However, logs in farmOS have a key difference from other calendar systems: they can (and should) be marked "done". In a normal calendar, you generally don't have any concept of what was done and what wasn't. But in farmOS, the goal is to create a very specific archival record of things that actually happened. Any logs that are "not done" are considered to be a planned log. So, a single log with a repeat rule would not work, because you couldn't easily determine which ones were done and which ones weren't. We need a separate log to be created for each.

One approach might be to automatically create a whole bunch of logs in advance in the future. This would basically accomplish the goal, but it has a lot of drawbacks. For one, your future logs would be full of planned logs, which could add a lot of clutter. If you needed to change the rule, you would need to update all the logs. And, unlike a calendar where it's just single rule that goes on into infinity, we obviously can't create infinite logs into the future, so there would need to be some kind of cutoff.

Proposed resolution

I propose that we use the new "Plan" entity type and create a new type of plan called "Recurring tasks" or similar. This would allow you to create any number of "Recurring task plans" that define a set of tasks and the repeat rules for each of them. Then, it would automatically create a fixed number of logs for you in the future, and manage them so that you don't have to. Perhaps it could have settings for how many to create in advance and when to create them (ie: create 1 log 1 week before it is scheduled, so that you only ever have 1 weeks worth of repeating tasks on your calendar).

The plans would be linked to the logs, so that if you updated the rules it would propagate those changes automatically to the logs. Just like we are currently doing in the Grazing module. And if you archived a plan, it would stop creating those logs. So you can have an archive of all the "Recurring task plans" you've ever worked with in the past.

It might also be useful to have a setting to automatically delete tasks that you did NOT mark as done, after a period of time passes. So, if you stop using farmOS for a few weeks, you don't come back to find a whole bunch of auto-generated logs that you don't want.

Remaining tasks

...

User interface changes

...

API changes

...

Data model changes

...

✨ Feature request
Status

Closed: outdated

Version

2.0

Component

Farm Logs

Created by

πŸ‡ΊπŸ‡ΈUnited States m.stenta

Live updates comments and jobs are added and updated live.
Sign in to follow issues

Comments & Activities

Not all content is available!

It's likely this issue predates Contrib.social: some issue and comment data are missing.

  • πŸ‡ΊπŸ‡ΈUnited States m.stenta

    Nothing has happened on this in a while, so I'm going to close this issue, but let's continue discussion in the forum and experiment in contrib modules or pull requests as necessary.

Production build 0.71.5 2024