X-Git-Url: https://plomlompom.com/repos/feed.xml?a=blobdiff_plain;f=calories.py;h=5d2fc98c3aaf99ceaeae0708e6f06094370c8bc3;hb=ebc562af576469da5f0011e10f80c7b0490ed959;hp=54fb64e2d94be3f98ce2a743823c2c3db241a60a;hpb=8d8bb938a9d2248bd44ed53fdb0b87eff9ee2dd9;p=misc diff --git a/calories.py b/calories.py index 54fb64e..5d2fc98 100644 --- a/calories.py +++ b/calories.py @@ -3,16 +3,17 @@ import os import json import datetime +hostName = "localhost" +serverPort = 8081 + def build_page(eatable_rows, consumption_rows, eatables_selection, day_rows): return """ """ + f"""
@@ -25,8 +26,8 @@ td, th { + - @@ -42,9 +43,9 @@ td, th { - - - + + + @@ -59,7 +60,7 @@ for (let i = 0; i < unit_count_inputs.length; i++) { button.innerHTML = '+1'; button.onclick = function(event) { event.preventDefault(); - input.value = parseInt(input.value) + 1; + input.value = parseFloat(input.value) + 1.0; }; input.insertAdjacentElement('afterend', button); } @@ -155,18 +156,18 @@ class Database: eatable = self.eatables[c.eatable_key] calories = eatable.cals * c.unit_count sugar_g = eatable.sugar_g * c.unit_count - # calories = float(eatable.cals / eatable.standard_g) * c.unit_count * c.unit_weight - # sugar_g = float(eatable.sugar_g / eatable.standard_g) * c.unit_count * c.unit_weight self.today.calories += calories self.today.sugar_g += sugar_g return {"cals": calories, "sugar": sugar_g } - def eatables_selection(self, selection=None): + def eatables_selection(self): html = '' + already_selected = [c.eatable_key for c in self.consumptions] for k, v in sorted(self.eatables.items(), key=lambda item: item[1].title): + if k in already_selected: + continue v = self.eatables[k] - selected = ' selected' if k==selection else '' - html += '' % (k, selected, v.title) + html += '' % (k, v.title) return html def add_eatable(self, id_, eatable): @@ -222,7 +223,7 @@ class MyServer(BaseHTTPRequestHandler): 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) - i += 1 + i += 1 if 'title' in postvars.keys() and len(postvars['title'][i]) > 0: e = Eatable(decode("title", i, False), decode("cals", i), decode("sugar_g", i), decode("standard_g", i), decode("comments", i, False)) db.add_eatable(str(uuid4()), e) @@ -250,7 +251,7 @@ class MyServer(BaseHTTPRequestHandler): if c.unit_count > 0: db.eatables[c.eatable_key].popularity += 1 db.consumptions = [] - default_slots = 7 + default_slots = 10 for k, v in sorted(db.eatables.items(), key=lambda item: -item[1].popularity): db.add_consumption(Consumption(k, 0)) default_slots -= 1 @@ -277,48 +278,48 @@ class MyServer(BaseHTTPRequestHandler): eatables += ""\ ""\ ""\ - ""\ - ""\ - ""\ + ""\ + ""\ + ""\ ""\ ""\ "" % (k, v.title, v.cals, v.sugar_g, v.standard_g, v.comments, k) consumptions = "" + db.consumptions = sorted(db.consumptions, key=lambda x: db.eatables[x.eatable_key].title) for c in db.consumptions: r = db.calc_consumption(c) consumptions += ""\ - ""\ - ""\ - ""\ + ""\ + ""\ + "%s"\ ""\ - "%.1f"\ - "%.1f"\ - "" % (db.eatables_selection(c.eatable_key), c.unit_count, r["cals"], r["sugar"]) + "%.1f"\ + "%.1f"\ + "" % (c.eatable_key, c.unit_count, db.eatables[c.eatable_key].title, r["cals"], r["sugar"]) day_rows = "" - for date, day in db.days.items(): - day_rows += ""\ + for date in sorted(db.days.keys()): + day = db.days[date] + day_rows = ""\ "%s"\ - "%.1f"\ - "%.1f"\ - "" % (date, date[:10], day.calories, day.calories, day.sugar_g, day.sugar_g) - day_rows += ""\ + "%.1f"\ + "%.1f"\ + "" % (date, date[:10], day.calories, day.calories, day.sugar_g, day.sugar_g) + day_rows + day_rows = ""\ "today:archive?"\ ""\ ""\ ""\ - "%.1f"\ - "%.1f"\ + "%.1f"\ + "%.1f"\ ""\ - "" % (db.today_date, db.today.calories, db.today.calories, db.today.sugar_g, db.today.sugar_g) + "" % (db.today_date, db.today.calories, db.today.calories, db.today.sugar_g, db.today.sugar_g) + day_rows page = build_page(eatables, consumptions, db.eatables_selection(), day_rows) self.wfile.write(bytes(page, "utf-8")) -hostName = "localhost" -serverPort = 8081 if __name__ == "__main__": webServer = HTTPServer((hostName, serverPort), MyServer) - print("Server started http://%s:%s" % (hostName, serverPort)) + print(f"Server started http://{hostName}:{serverPort}") try: webServer.serve_forever() except KeyboardInterrupt: