X-Git-Url: https://plomlompom.com/repos/?a=blobdiff_plain;ds=sidebyside;f=calories.py;h=4352567aafa9e8bcdd9e31b2d4b4dcc0b52d43e3;hb=389620d37f697f869ed051071db5dead95a152fe;hp=88165b8da1e0be4a9447a9562f81041335cbee1f;hpb=436e0f40b45319ef4452ce6ced1a3c3df813119b;p=misc diff --git a/calories.py b/calories.py index 88165b8..4352567 100644 --- a/calories.py +++ b/calories.py @@ -2,7 +2,7 @@ import os import json import datetime import jinja2 -from plomlib import PlomDB, PlomException, run_server, run_server, PlomServer +from plomlib import PlomDB, PlomException, run_server, PlomHandler db_path = '/home/plom/org/calories_db.json' @@ -16,7 +16,7 @@ td.number { text-align: right; } input[type="number"] { text-align: right; } -
+ @@ -224,9 +224,18 @@ class CaloriesDB(PlomDB): self.write_text_to_db(json.dumps(self.to_dict())) -class CaloriesServer(PlomServer): +class ConsumptionsHandler(PlomHandler): + + def app_init(self, handler): + default_path = '/consumptions' + handler.add_route('GET', default_path, self.show_db) + handler.add_route('POST', default_path, self.write_db) + return 'consumptions', default_path def do_POST(self): + self.write_db() + + def write_db(self): from uuid import uuid4 from urllib.parse import parse_qs length = int(self.headers['content-length']) @@ -283,13 +292,16 @@ class CaloriesServer(PlomServer): break try: db.write() - self.redirect() + homepage = self.apps['consumptions'] if hasattr(self, 'apps') else self.homepage + self.redirect(homepage) except PlomException as e: self.fail_400(e) def do_GET(self): + self.show_db() + + def show_db(self): db = CaloriesDB() - # eatables = "" eatable_rows = [] for k,v in db.eatables.items(): eatable_rows += [{ @@ -320,7 +332,9 @@ class CaloriesServer(PlomServer): 'cals': f'{day.calories:.1f}', 'sugar': f'{day.sugar_g:.1f}', }] + homepage = self.apps['consumptions'] if hasattr(self, 'apps') else self.homepage page = jinja2.Template(tmpl).render( + homepage = homepage, db=db, days=day_rows, consumptions=consumption_rows, @@ -330,4 +344,4 @@ class CaloriesServer(PlomServer): if __name__ == "__main__": - run_server(server_port, CaloriesServer) + run_server(server_port, ConsumptionsHandler)
eatableunit countunit weight (g)caloriessugar (g)