master
parent
2425f22b56
commit
e4834d8a11
|
|
@ -148,27 +148,46 @@ impl DB {
|
||||||
let f = d.path().join(base);
|
let f = d.path().join(base);
|
||||||
|
|
||||||
let edited = TasksAndMetadata::new(f.display().to_string()).expect("failed to read edited tasks");
|
let edited = TasksAndMetadata::new(f.display().to_string()).expect("failed to read edited tasks");
|
||||||
|
|
||||||
let was_due = set.due();
|
let was_due = set.due();
|
||||||
|
|
||||||
let mut not_due = set.not_due();
|
|
||||||
for task in &was_due.tasks.0 {
|
|
||||||
if !edited.tasks.0.contains(task) {
|
|
||||||
not_due.tasks.0.push(task.clone());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
let mut now_due = vec![];
|
let mut now_due = vec![];
|
||||||
|
let mut not_due = set.not_due().tasks.0;
|
||||||
|
|
||||||
for task in &edited.tasks.0 {
|
for task in &edited.tasks.0 {
|
||||||
if task.is_due() {
|
if task.is_due() {
|
||||||
|
eprintln!("now_due.push({:?})", task.clone());
|
||||||
now_due.push(task.clone());
|
now_due.push(task.clone());
|
||||||
} else if !not_due.tasks.0.contains(task) {
|
} else if !not_due.contains(task) {
|
||||||
not_due.tasks.0.push(task.clone());
|
eprintln!("not_due.push({:?})", task.clone());
|
||||||
|
not_due.push(task.clone());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
let mut already_due = vec![];
|
||||||
|
let mut already_not_due = vec![];
|
||||||
|
for task in &was_due.tasks.0 {
|
||||||
|
let mut without_ts = task.clone();
|
||||||
|
without_ts.unset("ts".to_string());
|
||||||
|
|
||||||
|
let mut with_ts = task.clone();
|
||||||
|
with_ts.set("ts".to_string(), TS::now().to_string());
|
||||||
|
|
||||||
|
if now_due.contains(&without_ts) {
|
||||||
|
} else if not_due.contains(task) {
|
||||||
|
} else if task.is_due() {
|
||||||
|
eprintln!("already_due.push({:?})", with_ts.clone());
|
||||||
|
already_due.push(with_ts.clone());
|
||||||
|
} else {
|
||||||
|
eprintln!("already_not_due.push({:?})", task.clone());
|
||||||
|
already_not_due.push(task.clone());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
let mut new_tasks = Tasks::new();
|
let mut new_tasks = Tasks::new();
|
||||||
new_tasks.0.extend(now_due);
|
new_tasks.0.extend(now_due);
|
||||||
new_tasks.0.extend(not_due.tasks.0);
|
new_tasks.0.extend(already_due);
|
||||||
|
new_tasks.0.extend(not_due);
|
||||||
|
new_tasks.0.extend(already_not_due);
|
||||||
|
|
||||||
result.push(TasksAndMetadata::new_with(
|
result.push(TasksAndMetadata::new_with(
|
||||||
set.file.clone(),
|
set.file.clone(),
|
||||||
|
|
|
||||||
|
|
@ -1,17 +1,19 @@
|
||||||
todo:
|
|
||||||
- a
|
- a
|
||||||
- todo: b
|
- todo: b
|
||||||
schedule: 2000-01-01
|
schedule: 2000-01-01
|
||||||
scheduled:
|
|
||||||
- c
|
- c
|
||||||
- todo: d
|
- todo: d
|
||||||
schedule: 2000-02-01
|
schedule: 2000-02-01
|
||||||
- todo: e
|
- todo: e
|
||||||
ts: Sun Dec 3 23:29:27 EST 2023
|
schedule: 0 0 1 1 *
|
||||||
schedule: '0 0 1 1 *'
|
- todo: e3
|
||||||
|
schedule: '* * * * *'
|
||||||
|
- todo: e2
|
||||||
|
schedule: 0 0 1 1 *
|
||||||
|
ts: 2024-08-04T19:32Z
|
||||||
- todo: f
|
- todo: f
|
||||||
schedule: 2099-02-02
|
schedule: 2099-02-02
|
||||||
done:
|
- _done: g
|
||||||
- g
|
- _done:
|
||||||
- todo: h
|
todo: h
|
||||||
ts: Sun Dec 3 23:29:27 EST 2023
|
ts: Sun Dec 3 23:29:27 EST 2023
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue