Topic
Summary
- How to find the bug from the
DVJS10_bug_Tasks_groupBy_r
? - How to group the data by
r
which is a link like [[Project A]] or a string like “Test”?
Test
Summary
- dataview: v0.5.46
Input
Summary
dictionary files
- Location: “100_Project/01_dataviewjs/01_by_example/Q13_Tasks_groupBy/Q13_test_data”
folder: 02
- filename :
dic_20220206
---
Date: 2022-02-06
---
# Daily notes
- [ ] Task 1 [r:: [[Project A]] ] [due:: 2022-07-18]
- [ ] Task 2 [r:: [[Project A]] ] [due:: 2022-07-18]
- [ ] Task 3 [r:: [[Project B]] ] [due:: 2022-07-18]
- [ ] Task 4 [r:: Test] [due:: 2022-07-18]
- [ ] Task 5 [r:: Test] [due:: 2022-07-18]
- [ ] Task 6 [r:: Test123] [due:: 2022-07-18]
- [ ] Task 7 [r:: Test123] [due:: 2022-07-18]
- [ ] Task 8 [r:: Test456] [due:: 2022-07-18]
- [ ] Task 9 [r:: Test456] [due:: 2022-07-18]
DQL10_use_fTasks_and_get_uncompleted_and_overdue_tasks_and_groupBy_r
Summary
Main DQL
Code Name | Data type | Group By | Purposes | Remark |
---|---|---|---|---|
DQL10 _use_fTasks _and_get _uncompleted_and_overdue_tasks _and_groupBy_r |
flattened file.tasks | yes | 1.To filter by due 2.To filter by uncompleted task 3.To define a field variable TODAY_MINUS_DUE by using FLATTEN 4.To filter by TODAY_MINUS_DUE 5.To display the result as a TaskList |
1.The DQL10 is the same as the DVJS40 in the topic. |
Code DQL10_use_fTasks_and_get_uncompleted_and_overdue_tasks_and_groupBy_r
Summary_code
title: DQL10_use_fTasks_and_get_uncompleted_and_overdue_tasks_and_groupBy_r =>1.To filter by `due` 2.To filter by uncompleted task 3.To define a field variable `TODAY_MINUS_DUE` by using FLATTEN 4.To filter by `TODAY_MINUS_DUE` 5.To display the result as a TaskList
collapse: close
icon:
color:
```dataview
Task
FROM "100_Project/01_dataviewjs/01_by_example/Q13_Tasks_groupBy/Q13_test_data"
WHERE due
WHERE !completed
FLATTEN date("today") - due AS TODAY_MINUS_DUE
WHERE TODAY_MINUS_DUE <= dur("36500 days") AND TODAY_MINUS_DUE >= dur("0 days")
GROUP BY r
```
Screenshots(DQL10)
DVJS10_bug_Tasks_groupBy_r
Summary
Main DVJS
Code Name | Data type | Purposes | Remark |
---|---|---|---|
DVJS10 _bug _Tasks _groupBy_r |
t.r :1.a string 2.a link |
1.(BUG) A task including a Wikilink is not presented in the note. 2.The codes are refactored. |
1.easier to read 2.easier to modify |
Summary_code
Code DVJS10_bug_Tasks_groupBy_r
title: DVJS10_bug_Tasks_groupBy_r =>1.(BUG) A task including a Wikilink is not presented in the note. 2.The codes are refactored.
collapse: close
icon:
color:
```dataviewjs
// M09. Define n:
// #####################################################################
// let n = dv.date("2022-07-18");
let n = luxon.DateTime.now();
// M11. Define filtered_tasks: gather all relevant tasks
// #####################################################################
let filtered_tasks = dv
.pages(
'"100_Project/01_dataviewjs/01_by_example/Q13_Tasks_groupBy/Q13_test_data"'
)
.file.tasks.filter(
(t) =>
t.due &&
Math.floor(n.diff(t.due, "days").days) == 0 &&
!t.completed
);
// M13. GROUP BY task.r:
// #####################################################################
for (let related of filtered_tasks.groupBy((t) => t.r)) {
dv.header(2, related.key);
dv.taskList(
filtered_tasks.filter((t) => t.r == related.key),
false
);
}
```
Screenshots(DVJS10)
let n = dv.date(“2022-07-18”);
DVJS20_bug_Tasks_groupBy_r
Summary
Main DVJS
Code Name | Data type | Purposes | Remark |
---|---|---|---|
DVJS20 _bug _Tasks _groupBy_r |
t.r :1.a string 2.a link |
1.The original bug is fixed. 2.A new bug occurs. 3.The codes are refactored. |
1.easier to read 2.easier to modify |
Summary_code
Code DVJS20_bug_Tasks_groupBy_r
title: DVJS20_bug_Tasks_groupBy_r =>1.The original bug is fixed. 2.A new bug occurs. 3.The codes are refactored.
collapse: close
icon:
color:
```dataviewjs
// M09. Define n:
// #####################################################################
// let n = dv.date("2022-07-18");
let n = luxon.DateTime.now();
// M11. Define filtered_tasks: gather all relevant tasks
// #####################################################################
let filtered_tasks = dv
.pages(
'"100_Project/01_dataviewjs/01_by_example/Q13_Tasks_groupBy/Q13_test_data"'
)
.file.tasks.filter(
(t) =>
t.due &&
Math.floor(n.diff(t.due, "days").days) == 0 &&
!t.completed
);
// M13. GROUP BY task.r:
// #####################################################################
for (let related of filtered_tasks.groupBy((t) => t.r)) {
dv.header(2, related.key);
dv.taskList(
// Edited by Justdoitcc 2022-07-18
//filtered_tasks.filter((t) => t.r == related.key),
filtered_tasks.filter((t) => dv.func.contains(t.r, related.key)),
false
);
}
```
Screenshots(DVJS20)
let n = dv.date(“2022-07-18”);
DVJS30_Tasks_groupBy_r_typeof
Summary
Main DVJS
Code Name | Data type | Purposes | Remark |
---|---|---|---|
DVJS30 _Tasks _groupBy_r _typeof |
t.r :1.a string 2.a link |
1.The new bug is fixed. 2.The codes are refactored. |
1.easier to read 2.easier to modify |
Summary_code
Code DVJS30_Tasks_groupBy_r_typeof
title: DVJS30_Tasks_groupBy_r_typeof =>1.The new bug is fixed. 2.The codes are refactored.
collapse: close
icon:
color:
```dataviewjs
// M09. Define n:
// #####################################################################
// let n = dv.date("2022-07-18");
let n = luxon.DateTime.now();
// M11. Define filtered_tasks: gather all relevant tasks
// #####################################################################
let filtered_tasks = dv
.pages(
'"100_Project/01_dataviewjs/01_by_example/Q13_Tasks_groupBy/Q13_test_data"'
)
.file.tasks.filter(
(t) =>
t.due &&
Math.floor(n.diff(t.due, "days").days) == 0 &&
!t.completed
);
// M13. GROUP BY task.r:
// #####################################################################
for (let related of filtered_tasks.groupBy((t) => t.r)) {
dv.header(2, related.key);
dv.taskList(
// Edited by Justdoitcc 2022-07-18 21:05
//filtered_tasks.filter((t) => t.r == related.key),
// Edited by Justdoitcc 2022-07-18 21:30
//filtered_tasks.filter((t) => dv.func.contains(t.r, related.key)),
filtered_tasks.filter((t) =>
dv.func.choice(
dv.func.typeof(t.r) === "link",
dv.func.contains(t.r, related.key),
t.r === related.key
)
),
false
);
}
```
Screenshots(DVJS30)
let n = dv.date(“2022-07-18”);
DVJS40_Tasks_groupBy_r_overdue
Summary
Main DVJS
Code Name | Data type | Purposes | Remark |
---|---|---|---|
DVJS40 _Tasks _groupBy_r _overdue |
t.r :1.a string 2.a link |
1.To display tasks which are I_MAX_TODAY_MINUS_DUE days overdue and not yet completed2.To groupBy task.r 3.The codes are refactored. |
1.easier to read 2.easier to modify |
Summary_code
Code DVJS40_Tasks_groupBy_r_overdue
title: DVJS40_Tasks_groupBy_r_overdue =>1.To display tasks which are `I_MAX_TODAY_MINUS_DUE` days overdue and not yet completed 2.To groupBy task.r 3.The codes are refactored.
collapse: close
icon:
color:
```dataviewjs
// M09. Define TODAY:
// #####################################################################
// const TODAY = dv.date("2022-07-18");
const TODAY = dv.date("today");
// M10. Define I_MAX_TODAY_MINUS_DUE:
// #####################################################################
const I_MAX_TODAY_MINUS_DUE = 36500; // TODAY - t.due <= 36500 days
// M11. Define filtered_tasks: gather all relevant tasks
// #####################################################################
let filtered_tasks = dv
.pages(
'"100_Project/01_dataviewjs/01_by_example/Q13_Tasks_groupBy/Q13_test_data"'
)
.file.tasks
.where(
(t) =>
t.due &&
!t.completed &&
TODAY - t.due >= dv.duration("0 days") &&
// dv.date("today") - t.due <= dv.duration("36500 days")
TODAY - t.due <= dv.duration(I_MAX_TODAY_MINUS_DUE + " days")
);
// M13. GROUP BY task.r:
// #####################################################################
for (let related of filtered_tasks.groupBy((t) => t.r)) {
dv.header(2, related.key);
dv.taskList(
filtered_tasks
.where((t) =>
dv.func.choice(
dv.func.typeof(t.r) === "link",
dv.func.contains(t.r, related.key),
t.r === related.key
)
)
.sort(r, "asc"),
false
);
}
```