home · contact · privacy
In calendar view, fill gaps between non-subsequent dates.
[plomtask] / plomtask / http.py
index 0af96e7538c2cefd9febd1ac55dedc6fd95f4f90..3ef1721e5aa1b4c9a1ff19856fb99d76c669e4bb 100644 (file)
@@ -29,7 +29,9 @@ class TaskHandler(BaseHTTPRequestHandler):
         try:
             conn, site, params = self._init_handling()
             if 'calendar' == site:
-                html = self.do_GET_calendar(conn)
+                start = params.get('start', [''])[0]
+                end = params.get('end', [''])[0]
+                html = self.do_GET_calendar(conn, start, end)
             elif 'day' == site:
                 date = params.get('date', [todays_date()])[0]
                 html = self.do_GET_day(conn, date)
@@ -41,10 +43,11 @@ class TaskHandler(BaseHTTPRequestHandler):
         except HandledException as error:
             self._send_msg(error)
 
-    def do_GET_calendar(self, conn: DatabaseConnection):
+    def do_GET_calendar(self, conn: DatabaseConnection, start: str, end: str):
         """Show Days."""
+        days = Day.all(conn, date_range=(start, end), fill_gaps=True)
         return self.server.jinja.get_template('calendar.html').render(
-                days=Day.all(conn))
+                days=days, start=start, end=end)
 
     def do_GET_day(self, conn: DatabaseConnection, date: str):
         """Show single Day."""
@@ -69,9 +72,8 @@ class TaskHandler(BaseHTTPRequestHandler):
 
     def do_POST_day(self, conn: DatabaseConnection, date: str, postvars: dict):
         """Update or insert Day of date and fields defined in postvars."""
-        comment = postvars['comment'][0]
         day = Day.by_date(conn, date, create=True)
-        day.comment = comment
+        day.comment = postvars['comment'][0]
         day.save(conn)
 
     def _init_handling(self):