From e3092d5e9581ff4791c0eda8a4e1c754a3dd7155 Mon Sep 17 00:00:00 2001
From: Michael Bauer <michael-bauer@posteo.de>
Date: Fri, 22 Mar 2024 11:17:36 +0100
Subject: [PATCH] Continue assuring date range

---
 .../components/coursebook/Coursebook.vue      | 35 +++++++++++++------
 1 file changed, 24 insertions(+), 11 deletions(-)

diff --git a/aleksis/apps/alsijil/frontend/components/coursebook/Coursebook.vue b/aleksis/apps/alsijil/frontend/components/coursebook/Coursebook.vue
index d0d0d3086..b8e015c01 100644
--- a/aleksis/apps/alsijil/frontend/components/coursebook/Coursebook.vue
+++ b/aleksis/apps/alsijil/frontend/components/coursebook/Coursebook.vue
@@ -322,20 +322,33 @@ export default {
 
       return "documentation_" + nearestId.toISODate();
     },
+    dateRange(date) {
+      return Interval
+        .fromDateTimes(date.minus({ days: 3 }), date.plus({ days: 4 }))
+        .splitBy({ days: 1 })
+        .map((ts) => ts.start);
+    },
     // TODO: Improve Add empty but already queried days to docsByDay -> do not query them again
     // docsByDay: {dt: [dt doc ...] ...}
     assureDate(date) {
-      // find missing & fetch missing range
-      // date +- 5 days ?
-      const dateRange = Interval
-            .fromDateTimes(date.minus({ days: 3 }), date.plus({ days: 4 }))
-            .splitBy({ days: 1 })
-            .map((ts) => ts.start);
-      console.log('assureDate', dateRange.map((ts) => ts.toISODate()));
-      // look up in docsByDay
-      // sort missing and ask for first to last
-      // integrate into docsByDay
-
+      if (!this.knownDate[date]) {
+        // find missing & fetch missing range
+        // date +- 5 days ?
+        const dateRange = Interval
+              .fromDateTimes(date.minus({ days: 3 }), date.plus({ days: 4 }))
+              .splitBy({ days: 1 })
+              .map((ts) => ts.start);
+        console.log('assureDate', dateRange.map((ts) => ts.toISODate()));
+        // look up in docsByDay
+        console.log('missing', dateRange.map((ts) => this.docsByDay[ts] ));
+        console.log('missing', dateRange.filter((ts) => !this.docsByDay[ts] ));
+        // dateRange.forEach((ts) => { this.docsByDay[ts.toISODate()] = 42 });
+        console.log('docsByDay', this.docsByDay);
+        console.log('2024-03-29', this.docsByDay[DateTime.fromISO('2024-03-29')]);
+        console.log('2024-03-29', dateRange[3], this.docsByDay[dateRange[3]]);
+        // sort missing and ask for first to last
+        // integrate into docsByDay
+      }
     },
     gotoDate(date, scroll) {
       // show
-- 
GitLab