fix: Dashboard-Widgets zeigen jetzt alle offenen Aufgaben und neueste Notizen
Aufgaben-Widget zeigte nur high/urgent Tasks mit Fälligkeit ≤48h, Pinnwand-Widget nur explizit gepinnte Notizen. Neue Einträge waren dadurch im Dashboard unsichtbar. - Aufgaben: alle offenen Tasks (sortiert nach Priorität), Limit 5 - Notizen: neueste 3 (gepinnte zuerst, dann nach Aktualisierung) - Greeting-Chip zählt weiterhin nur high/urgent Tasks Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -430,7 +430,7 @@ export async function render(container, { user }) {
|
|||||||
|
|
||||||
const today = new Date().toDateString();
|
const today = new Date().toDateString();
|
||||||
const stats = {
|
const stats = {
|
||||||
urgentCount: data.urgentTasks?.length ?? 0,
|
urgentCount: (data.urgentTasks ?? []).filter((t) => t.priority === 'urgent' || t.priority === 'high').length,
|
||||||
todayEventCount: (data.upcomingEvents ?? []).filter((e) =>
|
todayEventCount: (data.upcomingEvents ?? []).filter((e) =>
|
||||||
new Date(e.start_datetime).toDateString() === today
|
new Date(e.start_datetime).toDateString() === today
|
||||||
).length,
|
).length,
|
||||||
|
|||||||
+3
-3
@@ -12,9 +12,9 @@
|
|||||||
* API: Immer Netzwerk (kein Caching von Nutzerdaten)
|
* API: Immer Netzwerk (kein Caching von Nutzerdaten)
|
||||||
*/
|
*/
|
||||||
|
|
||||||
const SHELL_CACHE = 'oikos-shell-v16';
|
const SHELL_CACHE = 'oikos-shell-v17';
|
||||||
const PAGES_CACHE = 'oikos-pages-v16';
|
const PAGES_CACHE = 'oikos-pages-v17';
|
||||||
const ASSETS_CACHE = 'oikos-assets-v16';
|
const ASSETS_CACHE = 'oikos-assets-v17';
|
||||||
const ALL_CACHES = [SHELL_CACHE, PAGES_CACHE, ASSETS_CACHE];
|
const ALL_CACHES = [SHELL_CACHE, PAGES_CACHE, ASSETS_CACHE];
|
||||||
|
|
||||||
// App-Shell: sofort benötigt für ersten Render
|
// App-Shell: sofort benötigt für ersten Render
|
||||||
|
|||||||
+13
-10
@@ -52,7 +52,7 @@ router.get('/', (req, res) => {
|
|||||||
result.upcomingEvents = [];
|
result.upcomingEvents = [];
|
||||||
}
|
}
|
||||||
|
|
||||||
// Dringende Aufgaben: high/urgent + fällig in ≤ 48h + nicht erledigt
|
// Offene Aufgaben: alle nicht-erledigten, sortiert nach Priorität und Fälligkeit
|
||||||
try {
|
try {
|
||||||
result.urgentTasks = d.prepare(`
|
result.urgentTasks = d.prepare(`
|
||||||
SELECT
|
SELECT
|
||||||
@@ -61,14 +61,18 @@ router.get('/', (req, res) => {
|
|||||||
u.avatar_color AS assigned_color
|
u.avatar_color AS assigned_color
|
||||||
FROM tasks t
|
FROM tasks t
|
||||||
LEFT JOIN users u ON t.assigned_to = u.id
|
LEFT JOIN users u ON t.assigned_to = u.id
|
||||||
WHERE t.priority IN ('high', 'urgent')
|
WHERE t.status != 'done'
|
||||||
AND t.status != 'done'
|
|
||||||
AND (t.due_date IS NULL OR t.due_date <= ?)
|
|
||||||
ORDER BY
|
ORDER BY
|
||||||
CASE t.priority WHEN 'urgent' THEN 0 ELSE 1 END,
|
CASE t.priority
|
||||||
|
WHEN 'urgent' THEN 0
|
||||||
|
WHEN 'high' THEN 1
|
||||||
|
WHEN 'medium' THEN 2
|
||||||
|
WHEN 'low' THEN 3
|
||||||
|
ELSE 4
|
||||||
|
END,
|
||||||
t.due_date ASC NULLS LAST
|
t.due_date ASC NULLS LAST
|
||||||
LIMIT 10
|
LIMIT 5
|
||||||
`).all(deadline48h.slice(0, 10));
|
`).all();
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
console.error('[Dashboard] urgentTasks-Fehler:', err.message);
|
console.error('[Dashboard] urgentTasks-Fehler:', err.message);
|
||||||
result.urgentTasks = [];
|
result.urgentTasks = [];
|
||||||
@@ -92,14 +96,13 @@ router.get('/', (req, res) => {
|
|||||||
result.todayMeals = [];
|
result.todayMeals = [];
|
||||||
}
|
}
|
||||||
|
|
||||||
// Angepinnte Notizen (max. 3)
|
// Neueste Notizen (gepinnte zuerst, dann aktuellste)
|
||||||
try {
|
try {
|
||||||
result.pinnedNotes = d.prepare(`
|
result.pinnedNotes = d.prepare(`
|
||||||
SELECT n.*, u.display_name AS author_name, u.avatar_color AS author_color
|
SELECT n.*, u.display_name AS author_name, u.avatar_color AS author_color
|
||||||
FROM notes n
|
FROM notes n
|
||||||
LEFT JOIN users u ON n.created_by = u.id
|
LEFT JOIN users u ON n.created_by = u.id
|
||||||
WHERE n.pinned = 1
|
ORDER BY n.pinned DESC, n.updated_at DESC
|
||||||
ORDER BY n.updated_at DESC
|
|
||||||
LIMIT 3
|
LIMIT 3
|
||||||
`).all();
|
`).all();
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
|
|||||||
Reference in New Issue
Block a user