[Formed-commits] r315 - in trunk: . formed/formed/plugins/modify
scm-commit@wald.intevation.org
scm-commit at wald.intevation.org
Fri Mar 13 19:18:18 CET 2009
Author: teichmann
Date: 2009-03-13 19:18:16 +0100 (Fri, 13 Mar 2009)
New Revision: 315
Modified:
trunk/ChangeLog
trunk/formed/formed/plugins/modify/rules.py
Log:
Make the error descriptions in date sequence rules more precise.
Modified: trunk/ChangeLog
===================================================================
--- trunk/ChangeLog 2009-03-13 15:58:54 UTC (rev 314)
+++ trunk/ChangeLog 2009-03-13 18:18:16 UTC (rev 315)
@@ -1,5 +1,10 @@
2009-03-13 Sascha L. Teichmann <teichmann at intevation.de>
+ * formed/formed/plugins/modify/rules.py: Make the error descriptions
+ in date sequence rules more precise.
+
+2009-03-13 Sascha L. Teichmann <teichmann at intevation.de>
+
* formed/formed/plugins/modify/rules.py: generate date sequence rules.
2009-03-13 Sascha L. Teichmann <teichmann at intevation.de>
Modified: trunk/formed/formed/plugins/modify/rules.py
===================================================================
--- trunk/formed/formed/plugins/modify/rules.py 2009-03-13 15:58:54 UTC (rev 314)
+++ trunk/formed/formed/plugins/modify/rules.py 2009-03-13 18:18:16 UTC (rev 315)
@@ -19,7 +19,7 @@
ORDER_RE = re.compile("([^;]*);(.*)")
DATE_RULE_VALUE = \
-u"Das '%(b_desc)s' darf zeitlich nicht nach '%(a_desc)s' liegen."
+u"'%(a_desc)s' darf zeitlich nicht nach '%(b_desc)s' liegen."
DATE_RULE_DESC = \
u"'%(a)s' muss vor '%(b)s' liegen."
@@ -70,6 +70,23 @@
for j in xrange(i + 1, N):
yield (path[i], path[j])
+
+def descriptions(node):
+ out = []
+ while node:
+ desc = node.getDescription().strip()
+ if desc: out.insert(0, desc)
+ node = node.getParent()
+ return out
+
+def remove_common_head(s1, s2):
+ S1 = len(s1)
+ S2 = len(s2)
+ for i in xrange(min(S1, S2)):
+ if s1[i] != s2[i]:
+ return s1[i:], s2[i:]
+ return [], []
+
class GenerateRequiredRules(Filter):
def getMenuName(self):
@@ -154,9 +171,13 @@
rule = data.RuleLeaf()
rule.setName("date-sequence-rule-%d" % idx)
d1, d2 = dates[pair[0]], dates[pair[1]]
+
+ desc1, desc2 = [u" / ".join(x) for x in remove_common_head(
+ descriptions(d1), descriptions(d2))]
+
rule.setValue(DATE_RULE_VALUE % {
- 'a_desc': d1.getDescription(),
- 'b_desc': d2.getDescription()})
+ 'a_desc': desc1,
+ 'b_desc': desc2 })
param = { 'a': pair[0], 'b': pair[1] }
rule.setDescription(DATE_RULE_DESC % param)
rule.setExpr(DATE_RULE_EXPR % param)
More information about the Formed-commits
mailing list