[Mpuls-commits] r668 - in waska/trunk: . formed waskaweb/lib
scm-commit@wald.intevation.org
scm-commit at wald.intevation.org
Mon Nov 2 12:49:31 CET 2009
Author: torsten
Date: 2009-11-02 12:49:30 +0100 (Mon, 02 Nov 2009)
New Revision: 668
Modified:
waska/trunk/ChangeLog.txt
waska/trunk/formed/formedtree_web.xml
waska/trunk/waskaweb/lib/renderer.py
Log:
Added grouping of choicelists
Modified: waska/trunk/ChangeLog.txt
===================================================================
--- waska/trunk/ChangeLog.txt 2009-11-02 07:40:37 UTC (rev 667)
+++ waska/trunk/ChangeLog.txt 2009-11-02 11:49:30 UTC (rev 668)
@@ -4,6 +4,10 @@
* waskaweb/templates/casemanagement/new.mako: Added new statement
+ Implement rendering of "optgroups" in choicelists
+
+ * renderer.py: Render groups in choicelists
+
2009-09-30 Torsten Irlaender <torsten.irlaender at intevation.de>
Issue844
Modified: waska/trunk/formed/formedtree_web.xml
===================================================================
--- waska/trunk/formed/formedtree_web.xml 2009-11-02 07:40:37 UTC (rev 667)
+++ waska/trunk/formed/formedtree_web.xml 2009-11-02 11:49:30 UTC (rev 668)
@@ -59,15 +59,21 @@
<group containers="a,b" description="Status des jungen Menschen bei Eintritt" flags="evaluation" name="beieintrittistderjugendlichemehrfachantwortenmoeglich" target="h">
<choice description=" " flags="required:clearing_start" formularname="Bei_Eintritt_ist_der_Jugendliche" name="bei_eintritt_ist_der_jugendliche" size="1" target="a">
<bool description="Keine Angabe" name="keineangabe" value="-1"/>
- <bool description="allgemeinbildende Schule" name="inderschule" value="0"/>
- <bool description="andere Schule (z.B. Berufsfachschule)" name="inandereschule" value="7"/>
- <bool description="duale Berufsausbildung (auch Verbundausbildung)" name="inderausbildung" value="1"/>
- <bool description="schulische Berufsausbildung" name="schulischeausbildung" value="8"/>
- <bool description="geförderte Berufsausbildung (BaE)" name="gefoerderteausbildung" value="9"/>
- <bool description="in Arbeit ohne Angaben zum Beschäftigungsumfang" name="inarbeit" value="2"/>
- <bool description="Vollzeit" name="inarbeit_vollzeit" value="12"/>
- <bool description="Teilzeit" name="inarbeit_teilzeit" value="13"/>
- <bool description="geringfügig" name="inarbeit_gering" value="14"/>
+ <group description="Schule" name="group-7">
+ <bool description="allgemeinbildende Schule" name="inderschule" value="0"/>
+ <bool description="andere Schule (z.B. Berufsfachschule)" name="inandereschule" value="7"/>
+ </group>
+ <group description="Ausbildung" name="group-8">
+ <bool description="duale Berufsausbildung (auch Verbundausbildung)" name="inderausbildung" value="1"/>
+ <bool description="schulische Berufsausbildung" name="schulischeausbildung" value="8"/>
+ <bool description="geförderte Berufsausbildung (BaE)" name="gefoerderteausbildung" value="9"/>
+ </group>
+ <group description="in Arbeit" name="group-9">
+ <bool description="in Arbeit ohne Angaben zum Beschäftigungsumfang" name="inarbeit" value="2"/>
+ <bool description="Vollzeit" name="inarbeit_vollzeit" value="12"/>
+ <bool description="Teilzeit" name="inarbeit_teilzeit" value="13"/>
+ <bool description="geringfügig" name="inarbeit_gering" value="14"/>
+ </group>
<bool description="Selbstständig / freiberuflich" name="selbststaendig" value="6"/>
<bool description="berufsvorbereitende Bildungsnaßnahmen: z.B. BvB (Bund), BVJ/BGJ (Länder)" name="berufsvorbereitung" value="10"/>
<bool description="sonstige Maßnahme (z.B. EQJ)" name="indermaßnahme" value="5"/>
Modified: waska/trunk/waskaweb/lib/renderer.py
===================================================================
--- waska/trunk/waskaweb/lib/renderer.py 2009-11-02 07:40:37 UTC (rev 667)
+++ waska/trunk/waskaweb/lib/renderer.py 2009-11-02 11:49:30 UTC (rev 668)
@@ -498,6 +498,17 @@
self.toTarget(Item("".join(out)), choice.getTarget());
+ def _renderChoiceGroup(self, choice):
+ description = choice.getDescription()
+ name = choice.getName()
+ out = []
+ if not self.ro_mode:
+ out.append('<optgroup label="%s">\n' % (description))
+ out.append(self._renderRecursive(choice, False))
+ if not self.ro_mode:
+ out.append("</optgroup>\n")
+ self.toTarget(Text("".join(out)), choice.getTarget());
+
def _renderChoiceBool(self, bool):
description = bool.getDescription()
@@ -506,7 +517,10 @@
selected = ""
out = ""
- toSelect = self.stateStack[-1]
+ try:
+ toSelect = self.stateStack[-1]
+ except:
+ toSelect = None
selected = toSelect == (value or value==0) and "selected" or ""
if (value or value==0): value = 'value="%s"' % escape(value, True)
@@ -787,6 +801,9 @@
if isinstance(parent, data.ChoiceNode):
self._renderChoiceBool(bool)
+ elif isinstance(parent, data.GroupNode) and isinstance(parent.parent, data.ChoiceNode):
+ self._renderChoiceBool(bool)
+
elif isinstance(parent, data.RadioNode):
self._renderRadioBool(bool)
@@ -803,7 +820,9 @@
def _renderChild(self, child):
if isinstance(child, Node):
- if isinstance(child, data.GroupNode):
+ if isinstance(child, data.GroupNode) and isinstance(child.parent, data.ChoiceNode):
+ self._renderChoiceGroup(child)
+ elif isinstance(child, data.GroupNode):
self._renderGroup(child)
elif isinstance(child, data.ChoiceNode):
self._renderChoice(child)
More information about the Mpuls-commits
mailing list