- consumptions += "<tr />"\
- "<td><select name=\"eatable_key\">%s</select></td>"\
- "<td><input class=\"unit_count\" name=\"unit_count\" type=\"number\" min=\"0\" value=\"%d\" /></td>"\
- "<td></td>"\
- "<td>%.1f</td>"\
- "<td>%.1f</td>"\
- "</tr>" % (db.eatables_selection(c.eatable_key), c.unit_count, r["cals"], r["sugar"])
- day_rows = ""
- for date, day in db.days.items():
- day_rows += "<tr>"\
- "<td><input name=\"day_date\" type=\"hidden\" value=\"%s\" />%s</td>"\
- "<td><input name=\"day_cals\" type=\"hidden\" step=\"0.1\" min=\"0\" value=\"%.1f\" />%.1f</td>"\
- "<td><input name=\"day_sugar\" type=\"hidden\" step=\"0.1\" min=\"0\" value=\"%.1f\" />%.1f</td>"\
- "</tr>" % (date, date[:10], day.calories, day.calories, day.sugar_g, day.sugar_g)
- day_rows += "<tr>"\
- "<th>today:</th><th></th><th></th><th>archive?</th>"\
- "</tr>"\
- "<tr>"\
- "<td><input name=\"new_date\" size=8 value=\"%s\" /></td>"\
- "<td><input name=\"new_day_cals\" type=\"hidden\" value=\"%.1f\" readonly />%.1f</td>"\
- "<td><input name=\"new_day_sugar\" type=\"hidden\" value=\"%.1f\" readonly />%.1f</td>"\
- "<td><input name=\"archive_day\" type=\"checkbox\" /></td>"\
- "</tr>" % (db.today_date, db.today.calories, db.today.calories, db.today.sugar_g, db.today.sugar_g)
- 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))
- try:
- webServer.serve_forever()
- except KeyboardInterrupt:
- pass
- webServer.server_close()
- print("Server stopped.")
+ consumption_rows += [{
+ 'key': c.eatable_key,
+ 'count': c.unit_count,
+ 'title': db.eatables[c.eatable_key].title,
+ 'cals': r['cals'],
+ 'sugar': r['sugar']
+ }]
+ day_rows = []
+ for date in reversed(sorted(db.days.keys())):
+ day = db.days[date]
+ day_rows += [{
+ 'date': date,
+ 'date_short': date[:10],
+ 'cals': f'{day.calories:.1f}',
+ 'sugar': f'{day.sugar_g:.1f}',
+ }]
+ page = jinja2.Template(tmpl).render(
+ db=db,
+ days=day_rows,
+ consumptions=consumption_rows,
+ eatables=eatable_rows,
+ eatables_selection=db.eatables_selection())
+ self.send_HTML(page)
+
+
+if __name__ == "__main__":
+ run_server(server_port, CaloriesServer)