[Mpuls-commits] r149 - in waska/trunk: . waskaweb/model waskaweb/templates/casemanagement
scm-commit@wald.intevation.org
scm-commit at wald.intevation.org
Thu Sep 11 15:42:30 CEST 2008
Author: torsten
Date: 2008-09-11 15:42:28 +0200 (Thu, 11 Sep 2008)
New Revision: 149
Modified:
waska/trunk/ChangeLog.txt
waska/trunk/waskaweb/model/phase_transition.py
waska/trunk/waskaweb/model/phases_factory.py
waska/trunk/waskaweb/templates/casemanagement/listbadcases.mako
Log:
Modified search for inconsistent cases.
Modified: waska/trunk/ChangeLog.txt
===================================================================
--- waska/trunk/ChangeLog.txt 2008-09-10 15:51:25 UTC (rev 148)
+++ waska/trunk/ChangeLog.txt 2008-09-11 13:42:28 UTC (rev 149)
@@ -1,3 +1,13 @@
+2008-09-11 Torsten Irlaender <torsten.irlaender at intevation.de>
+
+ Modified search for inconsistent cases.
+
+ * waskaweb/model/phase_transition.py,
+ waskaweb/model/phases_factory.py,
+ waskaweb/templates/casemanagement/listbadcases.mako: Search e.g for
+ inconsistencies in phase 3 now includes also searches on
+ inconsistensies in prior phases.
+
2008-09-10 Torsten Irlaender <torsten.irlaender at intevation.de>
Anonymisation is now only possible when the required fields for the
Modified: waska/trunk/waskaweb/model/phase_transition.py
===================================================================
--- waska/trunk/waskaweb/model/phase_transition.py 2008-09-10 15:51:25 UTC (rev 148)
+++ waska/trunk/waskaweb/model/phase_transition.py 2008-09-11 13:42:28 UTC (rev 149)
@@ -105,12 +105,14 @@
preds.add(k)
return list(preds)
-def phase_predecessors_path(phase, path=None):
+def phase_predecessors_path(phase, path=None, include_root=False):
if not path:
path = []
+ if include_root:
+ path.append(phase)
for p in phase_predecessors(phase):
path.append(p)
- phase_predecessors_path(p, path)
+ phase_predecessors_path(p, path=path)
return path
def phase_neighbors(phase1, phase2):
Modified: waska/trunk/waskaweb/model/phases_factory.py
===================================================================
--- waska/trunk/waskaweb/model/phases_factory.py 2008-09-10 15:51:25 UTC (rev 148)
+++ waska/trunk/waskaweb/model/phases_factory.py 2008-09-11 13:42:28 UTC (rev 149)
@@ -40,9 +40,9 @@
"""
IS_NOT_FILLED = \
-"""((NOT (%(name)s IS NOT NULL
+"""(NOT (%(name)s IS NOT NULL
AND (get_default_value('master_tbl', '%(name)s') IS NULL
- OR %(name)s != get_default_value('master_tbl', '%(name)s')))) AND phase = %(phase)s)
+ OR %(name)s != get_default_value('master_tbl', '%(name)s'))))
"""
SELECT = \
@@ -159,12 +159,30 @@
def getSQLWhereClauses(self):
- """ returns list of tuples (<symbol of phase>, <sql where clause>) """
+ """ returns list of tuples (<symbol of phase>, <sql where clause>). The
+ where clause will return cases with inconsistencies for the current
+ state."""
clauses = []
- for k, v in self.phases.iteritems():
- # There where clause will return cases with inconsistencies for their current phase
- where = " OR ".join([IS_NOT_FILLED % { 'name': name, 'phase':SYMBOLS_PHASE.get(k)} for name in [i[0].getName() for i in v]])
- clauses.append((k, where))
+ # Iterate over all phases
+ for symbol in self.phases.keys():
+
+ # for each phase build a dict of predecessor of the current phase
+ predecessor_phases = {}
+ phase_id = symbol_phase(symbol)
+ for id in phase_predecessors_path(phase_id, include_root=True):
+ if id == -1: continue #ignore "unknown" phase
+ predecessor_phases[phase_symbol(id)] = self.phases.get(phase_symbol(id))
+ # now build the where clause to check if the current phase is
+ # consistent.
+ where_parts = []
+ for s, v in predecessor_phases.iteritems():
+ try:
+ part = " OR ".join([IS_NOT_FILLED % { 'name': name} for name in [i[0].getName() for i in v]])
+ except:
+ pass
+ where_parts.append(part)
+ where = "(phase = %s AND ((%s))) " % (phase_id, " OR ".join(where_parts))
+ clauses.append((symbol, where))
return clauses
def loadFilled(self, ds_id, cur):
Modified: waska/trunk/waskaweb/templates/casemanagement/listbadcases.mako
===================================================================
--- waska/trunk/waskaweb/templates/casemanagement/listbadcases.mako 2008-09-10 15:51:25 UTC (rev 148)
+++ waska/trunk/waskaweb/templates/casemanagement/listbadcases.mako 2008-09-11 13:42:28 UTC (rev 149)
@@ -7,14 +7,14 @@
'5':u'CM ist beendet, aber keine Beendigungsdatum angegeben',
'6':u'CM ist nicht beendet, aber Beendigungsdatum angegeben',
'7':u'Die aktuelle Phase der Fallakte konnte aufgrund von fehlenden Angaben nicht festgestellt werden',
- 'clearing_start':u'Fehlende Pflichtfeldangaben für den Start der "Clearing" Phase',
- 'clearing_ende':u'Fehlende Pflichtfeldangaben für die Beendigung der "Clearing" Phase',
- 'beratung_start':u'Fehlende Pflichtfeldangaben für den Start der "Beratungs" Phase',
- 'beratung_ende':u'Fehlende Pflichtfeldangaben für die Beendigung der "Beratungs" Phase',
- 'cm_start':u'Fehlende Pflichtfeldangaben für den Start der "Case-Management" Phase',
- 'cm_ende':u'Fehlende Pflichtfeldangaben für die Beendigung der "Case-Management" Phase',
- 'nachbetreuung_start':u'Fehlende Pflichtfeldangaben für den Start der "Nachbetreuungs" Phase',
- 'nachbetreuung_ende':u'Fehlende Pflichtfeldangaben für die Beendigung der "Nachbetreuungs'}
+ 'clearing_start':u'Fehlende Pflichtfeldangaben für Fälle in laufender "Clearing" Phase',
+ 'clearing_ende':u'Fehlende Pflichtfeldangaben für Fälle in beendeter "Clearing" Phase',
+ 'beratung_start':u'Fehlende Pflichtfeldangaben für Fälle in laufender "Beratungs" Phase',
+ 'beratung_ende':u'Fehlende Pflichtfeldangaben für Fälle in beendeter "Beratungs" Phase',
+ 'cm_start':u'Fehlende Pflichtfeldangaben für Fälle in laufender "Case-Management" Phase',
+ 'cm_ende':u'Fehlende Pflichtfeldangaben für Fälle in beendeter "Case-Management" Phase',
+ 'nachbetreuung_start':u'Fehlende Pflichtfeldangaben für Fälle in laufender "Nachbetreuungs" Phase',
+ 'nachbetreuung_ende':u'Fehlende Pflichtfeldangaben für Fälle in beendeter "Nachbetreuungs'}
# ignore search of inconsistent cases which do not intersect with the given
# timeframe (filter out old cases)
start_date = '2008-09-01'
More information about the Mpuls-commits
mailing list