X-Git-Url: https://git.toastfreeware.priv.at/philipp/winterrodeln/wradmin.git/blobdiff_plain/682929c792e969bc54528fccc2db46fa13a9f6cb..731f87ca567597759fe7935f5e3cf42b8e7c3c03:/wradmin/controllers/bericht.py?ds=sidebyside diff --git a/wradmin/controllers/bericht.py b/wradmin/controllers/bericht.py index efce362..e8f2f69 100644 --- a/wradmin/controllers/bericht.py +++ b/wradmin/controllers/bericht.py @@ -1,43 +1,43 @@ import datetime -from flask import request, abort, redirect, url_for, flash +from flask import request, abort, redirect, url_for, flash, render_template import paginate import sqlalchemy as sa import wradmin.model as model -from wradmin.genshi import render_genshi_template, TemplateContext class BerichtController: - def _add_dates_to_c(self, c, date_invalid): + def _dependent_date_dict(self, date_invalid): now = datetime.datetime.today() - if date_invalid is None: date_invalid = now - c.date_now = now - c.date_no_change = date_invalid - c.date_tomorrow = now + datetime.timedelta(1) - c.date_one_week = now + datetime.timedelta(7) - c.date_two_weeks = now + datetime.timedelta(14) - c.date_one_week_more = date_invalid + datetime.timedelta(7) - c.date_end_of_saison = datetime.datetime(now.year if now.month < 7 else now.year + 1, 7, 1) + if date_invalid is None: + date_invalid = now + return { + 'date_now': now, + 'date_no_change': date_invalid, + 'date_tomorrow': now + datetime.timedelta(1), + 'date_one_week': now + datetime.timedelta(7), + 'date_two_weeks': now + datetime.timedelta(14), + 'date_one_week_more': date_invalid + datetime.timedelta(7), + 'date_end_of_saison': datetime.datetime(now.year if now.month < 7 else now.year + 1, 7, 1), + } def list(self): """Lists all reports""" q = model.meta.Session.query(model.WrReport) q = q.order_by(sa.sql.expression.desc(model.WrReport.id)) - c = TemplateContext() - c.paginator = paginate.Page(q.all(), page=int(request.args.get('page', 1)), - url_maker=lambda page: url_for('bericht_list', page=page), - items_per_page=25) - return render_genshi_template('bericht_list.html', c=c) + paginator = paginate.Page(q.all(), page=int(request.args.get('page', 1)), + url_maker=lambda page: url_for('bericht_list', page=page), + items_per_page=25) + return render_template('bericht_list.html', paginator=paginator) def view(self, id): """Displays a report""" q = model.meta.Session.query(model.WrReport) - c = TemplateContext() - c.wrreport = q.get(id) - if c.wrreport is None: + wrreport = q.get(id) + if wrreport is None: abort(404) - self._add_dates_to_c(c, c.wrreport.date_invalid) - return render_genshi_template('bericht_view.html', c=c) + dates = self._dependent_date_dict(wrreport.date_invalid) + return render_template('bericht_view.html', wrreport=wrreport, **dates) def change_date_invalid(self, id=None): assert request.method == 'POST' @@ -47,15 +47,14 @@ class BerichtController: wrreport = wrreport_q.get(id) if wrreport is None: abort(404) - c = TemplateContext() - self._add_dates_to_c(c, wrreport.date_invalid) + dates = self._dependent_date_dict(wrreport.date_invalid) date = request.form['date_invalid'] - if date == 'tomorrow': wrreport.date_invalid = c.date_tomorrow - elif date == 'one_week': wrreport.date_invalid = c.date_one_week - elif date == 'two_weeks': wrreport.date_invalid = c.date_two_weeks - elif date == 'one_week_more': wrreport.date_invalid = c.date_one_week_more - elif date == 'end_of_saison': wrreport.date_invalid = c.date_end_of_saison - elif date == 'now': wrreport.date_invalid = c.date_now + if date == 'tomorrow': wrreport.date_invalid = dates['date_tomorrow'] + elif date == 'one_week': wrreport.date_invalid = dates['date_one_week'] + elif date == 'two_weeks': wrreport.date_invalid = dates['date_two_weeks'] + elif date == 'one_week_more': wrreport.date_invalid = dates['date_one_week_more'] + elif date == 'end_of_saison': wrreport.date_invalid = dates['date_end_of_saison'] + elif date == 'now': wrreport.date_invalid = dates['date_now'] elif date == 'userdefined': date_userdefined = request.form['date_userdefined'] try: