]> ToastFreeware Gitweb - philipp/winterrodeln/wradmin.git/commitdiff
Change "date_invalid" of a report is working again.
authorphilipp <philipp@7aebc617-e5e2-0310-91dc-80fb5f6d2477>
Sun, 30 Jul 2017 21:26:03 +0000 (21:26 +0000)
committerphilipp <philipp@7aebc617-e5e2-0310-91dc-80fb5f6d2477>
Sun, 30 Jul 2017 21:26:03 +0000 (21:26 +0000)
git-svn-id: http://www.winterrodeln.org/svn/wradmin/trunk@2693 7aebc617-e5e2-0310-91dc-80fb5f6d2477

wradmin/__init__.py
wradmin/controllers/bericht.py

index 780492872d8c54aa44ac2a640982b6da32a1328d..bbbbd92a3d1b4bba52d5a97242efcd6f7aa5e309 100644 (file)
@@ -77,7 +77,7 @@ def bericht_view(id):
 @app.route("/bericht/change_date_invalid/<int:id>", methods=['POST'])
 def bericht_change_date_invalid(id):
     get_db()
 @app.route("/bericht/change_date_invalid/<int:id>", methods=['POST'])
 def bericht_change_date_invalid(id):
     get_db()
-    return BerichtController().view(id)
+    return BerichtController().change_date_invalid(id)
 
 
 @app.route("/gasthaus/list")
 
 
 @app.route("/gasthaus/list")
index 33687bdf89906ffd43789be08a70246614b3cf1e..805bad3ab6f3929a0292bf7816d56a112d3b4d02 100644 (file)
@@ -1,36 +1,11 @@
-#from pylons import request, response, session, url, tmpl_context as c
-#from pylons.controllers.util import abort, redirect
 import datetime
 import datetime
-from flask import request, abort, url_for
+from flask import request, abort, redirect, url_for, flash
 import paginate
 import sqlalchemy as sa
 import paginate
 import sqlalchemy as sa
-
-import wrpylib.wrmwmarkup
-import wrpylib.wrmwcache
-import wrpylib.mwmarkup
-
 import wradmin.model as model
 from wradmin.genshi import render_genshi_template, TemplateContext
 
 
 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 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:
 
     def _add_dates_to_c(self, c, date_invalid):
 class BerichtController:
 
     def _add_dates_to_c(self, c, date_invalid):
@@ -64,23 +39,30 @@ class BerichtController:
         self._add_dates_to_c(c, c.wrreport.date_invalid)
         return render_genshi_template('bericht_view.html', c=c)
 
         self._add_dates_to_c(c, c.wrreport.date_invalid)
         return render_genshi_template('bericht_view.html', c=c)
 
-    #@restrict('POST')
-    #@validate(schema=ChangeDateInvalidForm(), form='view')
     def change_date_invalid(self, id=None):
     def change_date_invalid(self, id=None):
-        if id is None: abort(404)
+        assert request.method == 'POST'
+        if id is None:
+            abort(404)
         wrreport_q = model.meta.Session.query(model.WrReport)
         wrreport_q = model.meta.Session.query(model.WrReport)
-        wrreport =  wrreport_q.get(id)
-        if wrreport is None: abort(404)
+        wrreport = wrreport_q.get(id)
+        if wrreport is None:
+            abort(404)
+        c = TemplateContext()
         self._add_dates_to_c(c, wrreport.date_invalid)
         self._add_dates_to_c(c, wrreport.date_invalid)
-        date = self.form_result['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 = 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
-        elif date == 'userdefined':   wrreport.date_invalid = self.form_result['date_userdefined']
-        model.meta.Session.commit()
-        session['flash'] = 'Datum wurde erfolgreich geändert'
-        session.save()
-        return redirect(url(controller='bericht', action='view', id=id))
+        elif date == 'userdefined':
+            date_userdefined = request.form['date_userdefined']
+            try:
+                date_userdefined = datetime.datetime.strptime(date_userdefined, '%Y-%m-%d %H:%M')
+            except ValueError as e:
+                flash(str(e))
+                return redirect(url_for('bericht_view', id=id))
+            wrreport.date_invalid = date_userdefined
+        flash('Datum wurde erfolgreich geändert')
+        return redirect(url_for('bericht_view', id=id))