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<()> {
|
) -> anyhow::Result<()> {
|
||||||
let mut rescheduled = 0;
|
let mut rescheduled = 0;
|
||||||
for task in tasks {
|
for task in tasks {
|
||||||
let task::State::Completed {
|
let Some(recurring) = &task.recurring else {
|
||||||
date: completed_date,
|
|
||||||
} = &task.state
|
|
||||||
else {
|
|
||||||
continue;
|
continue;
|
||||||
};
|
};
|
||||||
|
|
||||||
let Some(recurring) = &task.recurring else {
|
let completed_date = match &task.state {
|
||||||
continue;
|
// 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);
|
let due_date = next_due_date(completed_date, recurring.interval);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue