From f74a597c0931122dff6f76452270633419472354 Mon Sep 17 00:00:00 2001 From: Mark Powers Date: Tue, 31 Jan 2023 22:11:34 -0600 Subject: Add task timer --- server.py | 23 +++++++++ static/index.html | 4 ++ static/timer.html | 141 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 168 insertions(+) create mode 100644 static/timer.html diff --git a/server.py b/server.py index b678cf0..5a46c17 100644 --- a/server.py +++ b/server.py @@ -39,10 +39,13 @@ class TrackerHTTPRequestHandler(BaseHTTPRequestHandler): def do_GET(self): u = urlparse(self.path) print("GET", u.path) + print("/timer", u.path) if u.path == "/": self.send_static_file("index.html") elif u.path == "/new_form": self.send_static_file("new_form.html") + elif u.path == "/timer": + self.send_static_file("timer.html") elif date_pattern.match(u.path[1:]): with conn.cursor() as cur: cur.execute("SELECT datatype, key, value FROM datapoint where date(created) = %s", (u.path[1:],)) @@ -65,6 +68,15 @@ class TrackerHTTPRequestHandler(BaseHTTPRequestHandler): self.send_response(200) self.end_headers() self.wfile.write(json.dumps(items).encode("utf-8")) + elif u.path == "/tasks": + with conn.cursor() as cur: + cur.execute("SELECT type FROM task") + items = [] + for row in cur: + items.append(row[0]) + self.send_response(200) + self.end_headers() + self.wfile.write(json.dumps(items).encode("utf-8")) elif u.path == "/forms": with conn.cursor() as cur: cur.execute("SELECT type, prompt, prompt_id, extra FROM form ORDER BY id") @@ -122,6 +134,15 @@ class TrackerHTTPRequestHandler(BaseHTTPRequestHandler): self.send_response(204) self.end_headers() self.wfile.write(b"") + elif u.path == "/submit_task_time": + task_type = post_data.pop("type") + seconds = post_data.pop("seconds") + with conn.cursor() as cur: + cur.execute("INSERT INTO task_datapoint (type, seconds) VALUES (%s, %s)", (task_type, seconds)) + conn.commit() + self.send_response(204) + self.end_headers() + self.wfile.write(b"") else: self.send_response(404) self.end_headers() @@ -133,6 +154,8 @@ def setup_db(): cur.execute("CREATE TABLE IF NOT EXISTS datapoint (id SERIAL PRIMARY KEY, created TIMESTAMP, datatype TEXT, key TEXT, value TEXT);") cur.execute("CREATE TABLE IF NOT EXISTS outside_weather (id SERIAL PRIMARY KEY, created TIMESTAMP, temp FLOAT8, humidity FLOAT8, pressure FLOAT8, uvi FLOAT8, dew_point FLOAT8, wind_speed FLOAT8, wind_guest FLOAT8, wind_deg FLOAT8);") cur.execute("CREATE TABLE IF NOT EXISTS book (id SERIAL PRIMARY KEY, title TEXT, completed BOOLEAN);") + cur.execute("CREATE TABLE IF NOT EXISTS task (id SERIAL PRIMARY KEY, type TEXT);") + cur.execute("CREATE TABLE IF NOT EXISTS task_datapoint (id SERIAL PRIMARY KEY, type TEXT, seconds TEXT);") cur.execute("CREATE TABLE IF NOT EXISTS book_datapoint (id SERIAL PRIMARY KEY, created TIMESTAMP, book_id SERIAL, pages TEXT, CONSTRAINT fk_book FOREIGN KEY(book_id) REFERENCES book(id));") cur.execute("CREATE TABLE IF NOT EXISTS email (id SERIAL PRIMARY KEY, created TIMESTAMP, username TEXT, domain TEXT);") cur.execute("CREATE TABLE IF NOT EXISTS form (id SERIAL PRIMARY KEY, type TEXT, prompt TEXT, prompt_id TEXT, extra JSON);") diff --git a/static/index.html b/static/index.html index 83136dc..fd37550 100644 --- a/static/index.html +++ b/static/index.html @@ -51,6 +51,10 @@
+
+ + +
+ + + -- cgit v1.2.3