Deal with issues in invalid recurrence state
This commit is contained in:
parent
b25857f3af
commit
c1c0ced266
1 changed files with 13 additions and 6 deletions
|
|
@ -9,15 +9,22 @@ pub async fn reschedule_recurring_tasks(
|
|||
) -> anyhow::Result<()> {
|
||||
let mut rescheduled = 0;
|
||||
for task in tasks {
|
||||
let task::State::Completed {
|
||||
date: completed_date,
|
||||
} = &task.state
|
||||
else {
|
||||
let Some(recurring) = &task.recurring else {
|
||||
continue;
|
||||
};
|
||||
|
||||
let Some(recurring) = &task.recurring else {
|
||||
continue;
|
||||
let completed_date = match &task.state {
|
||||
// Already scheduled
|
||||
task::State::Open { due: Some(_) } => continue,
|
||||
|
||||
// Invalid state, will warn about this
|
||||
task::State::Open { due: None } => {
|
||||
log::warn!("Task {task} is recurring but has no due date. Updating from today.");
|
||||
&jiff::Zoned::now()
|
||||
}
|
||||
|
||||
// Need scheduling
|
||||
task::State::Completed { date } => date,
|
||||
};
|
||||
|
||||
let due_date = next_due_date(completed_date, recurring.interval);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue