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'
<td class="progressbar surplusbar"><div class="diff_goal">{{p.diff_goal}}</div><div class="progressbar surplus" style="width: {{p.success_income_bonus}}px" ></div></td></tr>
{% endfor %}</table>
-<form action="/" method="POST">
+<form action="{{homepage}}" method="POST">
<table>
<tr><th>hourly rate</th><th>worked today</th></tr>
<tr><td class="input_container"><input type="number" min="1" class="rate" name="workday_hourly_rate_1" value="{{workday_hourly_rate_1}}"/>€</td><td><input type="number" min="0" class="minutes" name="workday_minutes_worked_1" value="{{workday_minutes_worked_1}}" step="5" /> minutes</td>
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'])
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:
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,
if __name__ == "__main__":
- run_server(server_port, IncomeServer)
+ run_server(server_port, IncomeProgressHandler)