[Mpuls-commits] r1836 - wasko/branches/2.0/mpulsweb/model
scm-commit@wald.intevation.org
scm-commit at wald.intevation.org
Fri Feb 26 10:04:19 CET 2010
Author: torsten
Date: 2010-02-26 10:04:18 +0100 (Fri, 26 Feb 2010)
New Revision: 1836
Modified:
wasko/branches/2.0/mpulsweb/model/case.py
Log:
* mpulsweb/model/case.py: Implemented basic checks if a case can be
anonymized.
Modified: wasko/branches/2.0/mpulsweb/model/case.py
===================================================================
--- wasko/branches/2.0/mpulsweb/model/case.py 2010-02-26 09:02:42 UTC (rev 1835)
+++ wasko/branches/2.0/mpulsweb/model/case.py 2010-02-26 09:04:18 UTC (rev 1836)
@@ -39,7 +39,8 @@
from mpulsweb.lib.helpers import ensure_unicode
from mpulsweb.lib.db import PostgresDBInterface, db
-from mpulsweb.model.phase import PhaseFactory, ConsistenceCheckException
+from mpulsweb.model.phase import PhaseFactory, StartPhasePart, \
+ ConsistenceCheckException
log = logging.getLogger(__name__)
@@ -47,6 +48,18 @@
LOAD_CASE_SQL = """SELECT %(fields)s FROM master_tbl_view WHERE id = %%(id)s"""
+MARKANONYMIZE_FAILED_MIN_PHASE = u"""\
+<p>Eine Anonymisierung ist für Fälle in der Phase "%s" nicht
+vorgesehen.</p>
+<p>Bitte löschen Sie diesen Fall entsprechend der Verwaltungsfunktion:<br>
+Überblick - Verwaltung - Abbruch der Eingangsdokumentation.</p>
+<p>Klicken Sie auf "OK", um fortzufahren.</p>
+"""
+
+MARKANONYMIZE_FAILED_RUNNING_PHASE = u"""\
+<p>Eine Anonymisierung ist für diese Fallakte derzeit nicht möglich: Es können nur Fälle beendet werden, deren aktuelle Phase beendet wurde. Die Phase "%s" is derzeit noch nicht beendet. Bitte beenden Sie die Phase und versuchen Sie erneut eine Anonymisierung.</p> Klicken Sie auf "OK", um fortzufahren.</p>
+"""
+
class LoadCaseNotExistsError(Exception):
def __init__(self, value):
@@ -182,6 +195,7 @@
preset = dict()
self.preset = preset
self.formed_instance = None
+ self.phaseslist = PhaseFactory().load(self.id)
@classmethod
def set_fields(cls, raw_fields):
@@ -232,13 +246,24 @@
consistent up to the current phase. A case is consistent if no required
field are missing and all relevant dates on phases are set
"""
- phaseslist = PhaseFactory().load(self.id)
- phaseslist.check_consistence()
+ self.phaseslist.check_consistence()
def check_anonymizeability(self):
"""Raises ConsistenceCheckException if the case is not in a anonymizable state.
"""
- #TODO: Add additional checks e.g on minimal required phase
+
+ # Check if anonymization is allowed in the current phase
+ phasepart = self.phaseslist.get_current_phase()
+ desc = g.mpuls_config.get('phases', 'description')[0].get(phasepart.id)
+ if not phasepart.is_anonymizable():
+ raise ConsistenceCheckException(
+ MARKANONYMIZE_FAILED_MIN_PHASE % desc)
+
+ # Check if the current phase is currently running.
+ if isinstance(phasepart, StartPhasePart):
+ raise ConsistenceCheckException(
+ MARKANONYMIZE_FAILED_RUNNING_PHASE % desc)
+
#Finally check consistence
self.check_consistence()
More information about the Mpuls-commits
mailing list