X-Git-Url: https://plomlompom.com/repos/template?a=blobdiff_plain;f=calories.py;h=28b1a16e0e99dfea186d6ff91f7dd8c006d1dad0;hb=7c77bd5fe82ff15e0e9c6a808ff7eb5a6d859301;hp=88165b8da1e0be4a9447a9562f81041335cbee1f;hpb=436e0f40b45319ef4452ce6ced1a3c3df813119b;p=misc diff --git a/calories.py b/calories.py index 88165b8..28b1a16 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']) @@ -242,8 +251,7 @@ class CaloriesServer(PlomServer): to_delete += [target] i = 0 if 'eatable_uuid' in postvars.keys(): - for uuid_encoded in postvars['eatable_uuid']: - uuid = uuid_encoded + for uuid in postvars['eatable_uuid']: if uuid not in to_delete: e = Eatable(decode("title", i, False), decode("cals", i), decode("sugar_g", i), decode("standard_g", i), decode("comments", i, False)) db.add_eatable(uuid, e) @@ -283,13 +291,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 +331,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 +343,4 @@ class CaloriesServer(PlomServer): if __name__ == "__main__": - run_server(server_port, CaloriesServer) + run_server(server_port, ConsumptionsHandler)
eatableunit countunit weight (g)caloriessugar (g)