home · contact · privacy
Add database connection, read and write Days through them.
[plomtask] / plomtask / http.py
index 3fde34b7b9f3ee99efa525a9532a81f4d4c95597..2039cf91351db9c866fa75c3ec4c974d388490ce 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.add(conn, '2024-01-03')
+        Day.add(conn, '2024-01-01')
+        Day.add(conn, '2024-01-02')
+        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)