X-Git-Url: https://plomlompom.com/repos/foo.html?a=blobdiff_plain;f=income_progress_bars.py;h=60f710454f5435c60ca6be4af810a19de7526cb2;hb=389620d37f697f869ed051071db5dead95a152fe;hp=553627d3788f2f44a0be3fa605453e021f79ac27;hpb=436e0f40b45319ef4452ce6ced1a3c3df813119b;p=misc diff --git a/income_progress_bars.py b/income_progress_bars.py index 553627d..60f7104 100644 --- a/income_progress_bars.py +++ b/income_progress_bars.py @@ -1,7 +1,7 @@ import os import json import jinja2 -from plomlib import PlomDB, PlomException, run_server, run_server, PlomServer +from plomlib import PlomDB, PlomException, run_server, PlomHandler server_port = 8083 db_path = '/home/plom/org/income.json' @@ -84,7 +84,7 @@ table {
{{p.diff_goal}}
{% endfor %} -
+ @@ -161,9 +161,18 @@ class ProgressBar: self.success = success_income / time_progress -class IncomeServer(PlomServer): +class IncomeProgressHandler(PlomHandler): + + def app_init(self, handler): + default_path = '/income_progress' + handler.add_route('GET', default_path, self.display_income_progress) + handler.add_route('POST', default_path, self.post_income_update) + return 'income_progress', default_path def do_POST(self): + self.post_income_update() + + def post_income_update(self): from urllib.parse import parse_qs try: length = int(self.headers['content-length']) @@ -188,11 +197,15 @@ class IncomeServer(PlomServer): db.workday_minutes_worked_2 = 0 db.workday_minutes_worked_3 = 0 db.write_db() - self.redirect() + homepage = self.apps['income_progress'] if hasattr(self, 'apps') else self.homepage + self.redirect(homepage) except PlomException as e: self.fail_400(e) def do_GET(self): + self.display_income_progress() + + def display_income_progress(self): import datetime import calendar try: @@ -235,7 +248,9 @@ class IncomeServer(PlomServer): ProgressBar("month", month_plus, month_goal, progress_time_month), ProgressBar("week", week_plus, week_goal, progress_time_week), ProgressBar("workday", day_income, workday_goal)] + homepage = self.apps['income_progress'] if hasattr(self, 'apps') else self.homepage page = jinja2.Template(tmpl).render( + homepage = homepage, progress_bars = progress_bars, workday_hourly_rate_1 = db.workday_hourly_rate_1, workday_minutes_worked_1 = db.workday_minutes_worked_1, @@ -256,4 +271,4 @@ class IncomeServer(PlomServer): if __name__ == "__main__": - run_server(server_port, IncomeServer) + run_server(server_port, IncomeProgressHandler)
hourly rateworked today
€ minutes