[Mpuls-commits] r5221 - base/trunk/mpulsweb/model

scm-commit@wald.intevation.org scm-commit at wald.intevation.org
Wed Aug 3 11:02:35 CEST 2011


Author: torsten
Date: 2011-08-03 11:02:35 +0200 (Wed, 03 Aug 2011)
New Revision: 5221

Modified:
   base/trunk/mpulsweb/model/statement.py
Log:
Versuch die fillout-methode f?\195?\188r das Ausf?\195?\188llen des Statements zu verbessern.
Hier wurden feste Annahmen dar?\195?\188ber getroffen welche Felder in
der Fallakte in der json-Datei konfiguriert sind. Fehlte ein solches Feld,
auch wenn es nicht Teil des Datenmodells war (z.b Strassen Nr. bei WASKA), so
gab es eine Exception. Nun wird vor dem Ausf?\195?\188llen versucht die Werte einzeln
zusammen zu suchen und Werte die nicht vorhanden sind ignoriert.


Modified: base/trunk/mpulsweb/model/statement.py
===================================================================
--- base/trunk/mpulsweb/model/statement.py	2011-08-03 07:45:39 UTC (rev 5220)
+++ base/trunk/mpulsweb/model/statement.py	2011-08-03 09:02:35 UTC (rev 5221)
@@ -27,7 +27,7 @@
 # Torsten Irländer <torsten.irlaender at intevation.de>
 #
 
-
+import logging
 from string import Template
 from cgi import escape
 
@@ -40,6 +40,7 @@
 SET_STATEMENT_FLAG_SQL = """\
 SELECT set_ee_status(%(id)s, %(value)s)"""
 
+log = logging.getLogger(__name__)
 
 class Statement:
 
@@ -65,19 +66,32 @@
 class PrivacyStatement(Statement):
 
     def fillout(self):
-        s = {
-            'VORNAME': escape(F.NA(self.case.first_name)),
-            'NACHNAME': escape(F.NA(self.case.last_name)),
-            'PLZ': escape(F.NA(self.case.plz)),
-            'STRASSE': escape(F.NA(self.case.street)),
-            'STRASSENR': escape(F.NA(self.case.streetnr)),
-            'ORT': escape(F.NA(self.case.city)),
-            'KA_NAME': escape(F.NA(self.agency.getName())),
+        ka = {'KA_NAME': escape(F.NA(self.agency.getName())),
             'KA_ADRESSE': escape(F.NA(self.agency.getAddress())),
             'KA_SPEICHERDAUER': escape(F.NA(self.agency.getMaxSavetime()))
             }
-        return Template(self.agency.getPrivacyStatement()).safe_substitute(s)
+        f = {
+            'VORNAME': 'first_name',
+            'NACHNAME': 'last_name',
+            'PLZ': 'plz',
+            'STRASSE': 'street',
+            'STRASSENR': 'streetnr',
+            'ORT': 'city'
+            }
 
+        # Some of the fields used in the statement may not be part of the case.
+        # So iterate over all fields and try to get the value from the case. If
+        # value can not be get ignore it. 
+        ff = {}
+        for k, v in f.iteritems():
+            try:
+                ff[k] = escape(F.NA(self.case.__getattr__(v)))
+            except:
+                log.warning('Can not get field %s' % k)
+
+        ff.update(ka)
+        return Template(self.agency.getPrivacyStatement()).safe_substitute(ff)
+
     def sign(self):
         db.execute(SET_STATEMENT_FLAG_SQL, {'id': self.case.id, 'value': 1})
 



More information about the Mpuls-commits mailing list