home · contact · privacy
Require explicit call to Day.save to have any Day committed to DB.
[plomtask] / plomtask / http.py
index 3fde34b7b9f3ee99efa525a9532a81f4d4c95597..9956a7251501758d795032903afb0d52c0e195b6 100644 (file)
@@ -6,16 +6,16 @@ from os.path import split as path_split
 from jinja2 import Environment as JinjaEnv, FileSystemLoader as JinjaFSLoader
 from plomtask.days import Day
 from plomtask.misc import HandledException
 from jinja2 import Environment as JinjaEnv, FileSystemLoader as JinjaFSLoader
 from plomtask.days import Day
 from plomtask.misc import HandledException
-
-TEMPLATES_DIR = 'templates'
+from plomtask.db import DatabaseConnection
 
 
 class TaskServer(HTTPServer):
     """Variant of HTTPServer that knows .jinja as Jinja Environment."""
 
 
 
 class TaskServer(HTTPServer):
     """Variant of HTTPServer that knows .jinja as Jinja Environment."""
 
-    def __init__(self, *args, **kwargs):
-        super().__init__(self, *args, **kwargs)
-        self.jinja = JinjaEnv(loader=JinjaFSLoader(TEMPLATES_DIR))
+    def __init__(self, templates_dir, db_file, *args, **kwargs):
+        super().__init__(*args, **kwargs)
+        self.db = db_file
+        self.jinja = JinjaEnv(loader=JinjaFSLoader(templates_dir))
 
 
 class TaskHandler(BaseHTTPRequestHandler):
 
 
 class TaskHandler(BaseHTTPRequestHandler):
@@ -48,7 +48,13 @@ class TaskHandler(BaseHTTPRequestHandler):
 
     def do_GET_calendar(self):
         """Show sorted Days."""
 
     def do_GET_calendar(self):
         """Show sorted Days."""
-        days = [Day('2024-01-03'), Day('2024-01-01'), Day('2024-01-02')]
+        conn = DatabaseConnection(self.server.db)
+        Day('2024-01-03').save(conn)
+        Day('2024-01-01').save(conn)
+        Day('2024-01-02').save(conn)
+        days = Day.all(conn)
+        conn.commit()
+        conn.close()
         days.sort()
         return self.server.jinja.get_template('calendar.html').render(
                 days=days)
         days.sort()
         return self.server.jinja.get_template('calendar.html').render(
                 days=days)