-import logging
-
-from pylons import request, response, session, url, tmpl_context as c
-from pylons.controllers.util import abort, redirect
-import webhelpers.paginate as paginate
-
-from wradmin.lib.base import BaseController, render
-from pylons.decorators.rest import restrict
-from pylons.decorators import validate
-import wradmin.model as model
+#from pylons import request, response, session, url, tmpl_context as c
+#from pylons.controllers.util import abort, redirect
+from flask import request
+import paginate
import sqlalchemy as sa
-import datetime
-import formencode
-import wrpylib.wrvalidators
+import wrpylib.wrmwmarkup
+import wrpylib.wrmwcache
+import wrpylib.mwmarkup
-log = logging.getLogger(__name__)
-formencode.api.set_stdtranslation(domain="FormEncode", languages=["de"])
-
+import wradmin.model as model
+from wradmin.genshi import render_genshi_template, TemplateContext
-class RequireDateIfUserDefined(formencode.validators.FormValidator):
- "requires that date_userdefined is not empty if date_invalid == 'userdefined'"
- def _to_python(self, value_dict, state):
- # if not value_dict.get('date_invalid'): ... # This is _not_ checked because this should be checked elsewhere
- if value_dict.get('date_invalid') == 'userdefined' and not value_dict.get('date_userdefined'):
- value = value_dict.get('date_userdefined')
- raise formencode.Invalid('Es muss ein Wert eingegeben werden', value, state, error_dict={'date_userdefined': formencode.Invalid(self.message('empty', state), value, state)})
- return value_dict
+# class RequireDateIfUserDefined(formencode.validators.FormValidator):
+# "requires that date_userdefined is not empty if date_invalid == 'userdefined'"
+# def _to_python(self, value_dict, state):
+# # if not value_dict.get('date_invalid'): ... # This is _not_ checked because this should be checked elsewhere
+# if value_dict.get('date_invalid') == 'userdefined' and not value_dict.get('date_userdefined'):
+# value = value_dict.get('date_userdefined')
+# raise formencode.Invalid('Es muss ein Wert eingegeben werden', value, state, error_dict={'date_userdefined': formencode.Invalid(self.message('empty', state), value, state)})
+# return value_dict
+#
+#
+# class ChangeDateInvalidForm(formencode.Schema):
+# allow_extra_fields = True
+# filter_extra_fields = True
+# date_invalid = formencode.validators.OneOf(['no_change', 'tomorrow', 'one_week', 'two_weeks', 'one_week_more', 'end_of_saison', 'now', 'userdefined'], not_empty=True)
+# date_userdefined = wrpylib.wrvalidators.DateTimeNoSec
+# chained_validators = [RequireDateIfUserDefined()]
-class ChangeDateInvalidForm(formencode.Schema):
- allow_extra_fields = True
- filter_extra_fields = True
- date_invalid = formencode.validators.OneOf(['no_change', 'tomorrow', 'one_week', 'two_weeks', 'one_week_more', 'end_of_saison', 'now', 'userdefined'], not_empty=True)
- date_userdefined = wrpylib.wrvalidators.DateTimeNoSec
- chained_validators = [RequireDateIfUserDefined()]
+class BerichtController:
-class BerichtController(BaseController):
- "Manages reports (table wrreport)"
-
def _add_dates_to_c(self, date_invalid):
now = datetime.datetime.today()
if date_invalid is None: date_invalid = now
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)
-
def view(self, id):
"Displays a report"
q = model.meta.Session.query(model.WrReport)
if c.wrreport is None: abort(404)
self._add_dates_to_c(c.wrreport.date_invalid)
return render('bericht_view.html')
-
-
- @restrict('POST')
- @validate(schema=ChangeDateInvalidForm(), form='view')
+
+ #@restrict('POST')
+ #@validate(schema=ChangeDateInvalidForm(), form='view')
def change_date_invalid(self, id=None):
if id is None: abort(404)
wrreport_q = model.meta.Session.query(model.WrReport)
session['flash'] = 'Datum wurde erfolgreich geƤndert'
session.save()
return redirect(url(controller='bericht', action='view', id=id))
-
-
- def new(self, id):
- "Displays a form to create a new page"
- return "Nicht implementiert."
-
-
- def create(self):
- "Saves the information submitted from new() and redirects to view()"
- return "Nicht implementiert."
-
-
- def edit(self, id):
- "Displays a form for editing the page id"
- return "Nicht implementiert."
-
-
- def save(self, id):
- "Saves the page id and redirects to view()"
- return "Nicht implementiert."
-
-
+
def list(self):
- "Lists all reports"
+ """Lists all reports"""
q = model.meta.Session.query(model.WrReport)
q = q.order_by(sa.sql.expression.desc(model.WrReport.id))
- c.paginator = paginate.Page(q, page=int(request.params.get('page', 1)), items_per_page = 25)
- return render('bericht_list.html')
-
-
- def delete(self, id):
- "Deletes a page"
- return "Nicht implementiert."
+ c = TemplateContext()
+ c.paginator = paginate.Page(q.all(), page=int(request.args.get('page', 1)), items_per_page = 25)
+ return render_genshi_template('bericht_list.html', c=c)