[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