[Mpuls-commits] r330 - in wasko/trunk: . waskaweb/lib

scm-commit@wald.intevation.org scm-commit at wald.intevation.org
Thu Mar 5 07:25:56 CET 2009


Author: teichmann
Date: 2009-03-05 07:25:49 +0100 (Thu, 05 Mar 2009)
New Revision: 330

Modified:
   wasko/trunk/ChangeLog.txt
   wasko/trunk/waskaweb/lib/exportselection.py
   wasko/trunk/waskaweb/lib/xmlexport.py
Log:
Some adjustments for XML export.


Modified: wasko/trunk/ChangeLog.txt
===================================================================
--- wasko/trunk/ChangeLog.txt	2009-03-04 16:49:46 UTC (rev 329)
+++ wasko/trunk/ChangeLog.txt	2009-03-05 06:25:49 UTC (rev 330)
@@ -1,3 +1,8 @@
+2009-03-05	Sascha L. Teichmann	<teichmann at intevation.de>
+
+	* waskaweb/lib/xmlexport.py, waskaweb/lib/exportselection.py:
+	  Some adjustments logbook & document struture.
+
 2009-03-04	Sascha L. Teichmann	<teichmann at intevation.de>
 
 	* waskaweb/model/casexml.py: Raise XMLImportException when an 

Modified: wasko/trunk/waskaweb/lib/exportselection.py
===================================================================
--- wasko/trunk/waskaweb/lib/exportselection.py	2009-03-04 16:49:46 UTC (rev 329)
+++ wasko/trunk/waskaweb/lib/exportselection.py	2009-03-05 06:25:49 UTC (rev 330)
@@ -35,39 +35,54 @@
 
 FORM_SECTION_RE = re.compile(r"^form_section_(\d+)$")
 
-RG_UNTERSTUETZUNG = (
-    "angebote_bildenden_bereich",
-    "angebote_berufsvorbereitung",
-    "angebote_berufliche_qualifizierung",
-    "angebote_lebensbewaeltigung")
+#RG_UNTERSTUETZUNG = (
+#    "angebote_bildenden_bereich",
+#    "angebote_berufsvorbereitung",
+#    "angebote_berufliche_qualifizierung",
+#    "angebote_lebensbewaeltigung")
+#
+#RG_ALL = (
+#    "kompetenzfestellung",
+#    "angebote_bildenden_bereich",
+#    "angebote_berufsvorbereitung",
+#    "angebote_berufliche_qualifizierung",
+#    "angebote_lebensbewaeltigung")
+#
 
-RG_ALL = (
-    "kompetenzfestellung",
-    "angebote_bildenden_bereich",
-    "angebote_berufsvorbereitung",
-    "angebote_berufliche_qualifizierung",
-    "angebote_lebensbewaeltigung")
-
 SECTION_MAP = {
-    'form_section_666': 'page_einverstaendnis', # Einverständniserklärung, Phase
-    'form_section_0'  : 'page_0',  # Zuständigkeiten, Eingangsdaten
-    'form_section_1'  : 'page_25', # Externe Ansprechpartner
-    'form_section_2'  : 'page_1',  # Persönliche Angaben
-    'form_section_3'  : 'page_2',  # Familiäre Situation 
-    'form_section_4'  : 'page_3',  # Gesundheitliche Situation
-    'form_section_5'  : 'page_4',  # Soziale Lage
-    'form_section_6'  : 'page_5',  # Schule
-    'form_section_7'  : 'page_6',  # Ausbildung und Arbeit
-    'form_section_8'  : 'page_7',  # Weiterer Verlauf
-    'form_section_9'  : 'rg_kompetenzfestellung', # Kompetenzfeststellung
-    'form_section_10' : 'page_10', # Förderplanung
-    'form_section_11' : 'rg_unterstuetzungsangebote', # Unterstützungsangebote
-    'form_section_12' : 'page_15', # Freie Dokumentation
-    'form_section_13' : 'page_16', # Angaben zum Verlauf und Beendigung des CM
-    'form_section_14' : 'page_17', # Berufliche Integration
-    'form_section_15' : 'page_18', # Soziale Integration
-    'form_section_16' : 'page_19', # Einschätzung des Case-Managers, 
-    'form_section_17' : 'page_20'  # Freie Dokumentation
+'form_section_ee': "ee", # Einwilligungserklärung
+'form_section_01': "page-0", # 1. Zuständigkeiten, Eingangsdaten
+'form_section_02': "page-1", # 2. Externe Ansprechpartner
+'form_section_03': "page-2", # 3.1 Persönliche Angaben
+'form_section_04': "page-3", # 3.2 Angaben zu der Mutter
+'form_section_05': "page-4", # 3.3 Angaben zu dem Vater
+'form_section_06': "page-5", # 3.4 Geschwister
+'form_section_07': "page-6", # 3.5 Familieneinkommen
+'form_section_08': "page-7", # 3.6 Bezugspersonen/soziales Umfeld
+'form_section_09': "page-8", # 3.7 Freie Dokumentation
+'form_section_10': "page-9", # 4.1 Angaben zur Schullaufbahn
+'form_section_11': "page-10", # 4.2 Familiärer Hintergrund und Ressourcen
+'form_section_12': "page-11", # 4.3 Unterstützungsleistungen im Vorfeld
+'form_section_13': "page-12", # 4.4 Freie Dokumentation
+'form_section_14': "page-13", # 5.1.1 Verfahren der Kompetenzfeststellung
+'form_section_15': "page-14", # 5.1.2 Ergebnisse der Kompetenzfeststellung
+'form_section_16': "page-15", # 5.1.3 Entwicklung des jungen Menschen
+'form_section_17': "page-16", # 5.2.1 Reintegrations-Vorraussetzungen
+'form_section_18': "page-28", # 5.2.1.5 Erfassung von Fehlzeiten
+'form_section_19': "page-17", # 5.2.2 Probleme
+'form_section_20': "page-18", # 5.2.3 Zielsetzung des Case Management
+'form_section_21': "page-30", # Unterstützungsmaßnahme 1
+'form_section_22': "page-31", # Unterstützungsmaßnahme 2
+'form_section_23': "page-32", # Unterstützungsmaßnahme 3
+'form_section_24': "page-33", # Weitere Unterstützungsmaßnahmen
+'form_section_25': "page-20", # 5.3.2 Vereinbarungen
+'form_section_26': "page-21", # 5.3.3 Elternarbeit
+'form_section_27': "page-22", # 5.4 Freie Dokumentation
+'form_section_28': "page-23", # 6.1.1 Verlauf des Case Management
+'form_section_29': "page-24", # 6.1.2 Beendigung des Case Management
+'form_section_30': "page-25", # 6.2 Erreichte Ziele
+'form_section_31': "page-26", # 6.3 Nachbetreuung
+'form_section_32': "page-27", # 6.4 Freie Dokumentation zur Abschlussbewertung
 }
 
 def form_section_sort(a, b):
@@ -165,7 +180,7 @@
         selector = Selector(self.anonymize, master_where, rg_where)
         selected_sections = self.case_parts.allSelectedSections()
         # always export einverstaendiserklaerung and phase
-        selected_sections.insert(0, 'form_section_666')
+        selected_sections.insert(0, 'form_section_ee')
 
         master_tbl_items = ['id']
 
@@ -185,15 +200,15 @@
                         print >> sys.stderr, "missing %s" % part
                 continue
 
-            if page.startswith("rg_"):
-                if page == 'rg_kompetenzfestellung':
-                    selector.addRepeatGroup('kompetenzfestellung')
-                elif page == 'rg_unterstuetzungsangebote':
-                    for rg in RG_UNTERSTUETZUNG:
-                        selector.addRepeatGroup(rg)
-                else:
-                    print >> sys.stderr, "ignoring repeat group %s" % page
-                continue
+#            if page.startswith("rg_"):
+#                if page == 'rg_kompetenzfestellung':
+#                    selector.addRepeatGroup('kompetenzfestellung')
+#                elif page == 'rg_unterstuetzungsangebote':
+#                    for rg in RG_UNTERSTUETZUNG:
+#                        selector.addRepeatGroup(rg)
+#                else:
+#                    print >> sys.stderr, "ignoring repeat group %s" % page
+#                continue
 
             nc = g.formedTree.findByName(page)
             if nc is None:

Modified: wasko/trunk/waskaweb/lib/xmlexport.py
===================================================================
--- wasko/trunk/waskaweb/lib/xmlexport.py	2009-03-04 16:49:46 UTC (rev 329)
+++ wasko/trunk/waskaweb/lib/xmlexport.py	2009-03-05 06:25:49 UTC (rev 330)
@@ -40,16 +40,18 @@
 
 import waskaweb.lib.helpers as h
 
-from exportselection import RG_UNTERSTUETZUNG, SelectorFactory, CasePartsSelection, RG_ALL
+#from exportselection import RG_UNTERSTUETZUNG, \
+# SelectorFactory, CasePartsSelection, RG_ALL
 
+from exportselection import SelectorFactory, CasePartsSelection
+
 FETCH_ALL_IDS = \
 """SELECT id FROM master_tbl_view"""
 
 LOAD_LOGBOOK = """
-SELECT l.uuid_id AS uuid_id, datum, b.login AS login, art, kurz_notiz, notiz, dauer
-FROM ka_logbuch_tbl_view l LEFT JOIN ka_benutzer_tbl_view b
-ON l.bearbeiter = b.id
-WHERE l.master_id = %(id)s
+SELECT uuid_id, datum, bearbeiter, art, kurz_notiz, notiz, dauer
+FROM ka_logbuch_tbl_view
+WHERE master_id = %(id)s
 ORDER BY datum
 """
 
@@ -61,11 +63,11 @@
 
 BLACK_LIST = set(['id', 'master_id', 'bearbeiter_id'])
 
-USER_LOGIN = re.compile(r"(?:[^_]*)_(?:[^_]*)_(.+)")
+#USER_LOGIN = re.compile(r"(?:[^_]*)_(?:[^_]*)_(.+)")
 
-def login(a):
-    b = USER_LOGIN.findall(a)
-    return b and b[0] or a
+#def login(a):
+#    b = USER_LOGIN.findall(a)
+#    return b and b[0] or a
 
 def cdataWrap(value):
     return u"<![CDATA[%s]]>" % value.replace(u"]]>", u"]]><!CDATA[]]]]><![CDATA[>]]><[!CDATA[")
@@ -109,7 +111,7 @@
             out.write(u"<tagebuch-datum>%s</tagebuch-datum>" % 
                 iso8601.tostring(mktime(self.datum.timetuple()) + 1e-6*self.datum.microsecond))
         if not self.login is None:
-            out.write(u"<tagebuch-bearbeiter>%s</tagebuch-bearbeiter>" % login(self.login))
+            out.write(u"<tagebuch-bearbeiter>%s</tagebuch-bearbeiter>" % self.login)
         if not self.art is None:
             out.write(u"<tagebuch-art>%d</tagebuch-art>" % self.art)
         if not self.kurz_notiz is None:
@@ -157,7 +159,7 @@
 
     def fetchData(self, cur):
         self.fetchMasterTable(cur)
-        self.fetchRepeatGroups(cur)
+        #self.fetchRepeatGroups(cur)
         self.fetchLogbook(cur)
 
     def fetchMasterTable(self, cur):
@@ -169,28 +171,25 @@
         cur.execute(stmnt, { 'id': self.master_id })
         row = cur.fetchone()
         if not row: raise Exception("No dataset for id %d" % self.master_id)
-        columns = row._index.items() # XXX: hackish!
-        columns.sort(lambda a, b: cmp(a[1], b[1]))
-        columns = [(a[0], row[a[1]]) for a in columns]
-        self.columns = columns
+        self.columns = zip([d[0] for d in cur.description], row)
 
-    def fetchRepeatGroups(self, cur):
-        selector = self.selector
-        id_dict = { 'id': self.master_id }
-        for view in RG_ALL:
-            stmnt = selector.getSelectStatementByView(view)
-            if stmnt is None: continue
-            cur.execute(stmnt, id_dict)
-            rs = []
-            while True:
-                row = cur.fetchone()
-                if not row: break
-                cs = row._index.items() # XXX: hackish!
-                cs.sort(lambda a, b: cmp(a[1], b[1]))
-                cs = [(a[0], row[a[1]]) for a in cs]
-                rs.append(cs)
-            if rs:
-                self.rgs.append((view, rs))
+#    def fetchRepeatGroups(self, cur):
+#        selector = self.selector
+#        id_dict = { 'id': self.master_id }
+#        for view in RG_ALL:
+#            stmnt = selector.getSelectStatementByView(view)
+#            if stmnt is None: continue
+#            cur.execute(stmnt, id_dict)
+#            rs = []
+#            while True:
+#                row = cur.fetchone()
+#                if not row: break
+#                cs = row._index.items() # XXX: hackish!
+#                cs.sort(lambda a, b: cmp(a[1], b[1]))
+#                cs = [(a[0], row[a[1]]) for a in cs]
+#                rs.append(cs)
+#            if rs:
+#                self.rgs.append((view, rs))
 
     def fetchLogbook(self, cur):
         if not self.selector.exportLogbook:
@@ -209,12 +208,12 @@
         if fields:
             out.write("<master>%s</master>" % "".join(fields))
 
-    def dumpRepeatGroups(self, out):
-        for view, rgs in self.rgs:
-            for r in rgs:
-                fields = self.dumpColums(r)
-                if fields:
-                    out.write("<%s>%s</%s>" % (view, "".join(fields), view))
+#    def dumpRepeatGroups(self, out):
+#        for view, rgs in self.rgs:
+#            for r in rgs:
+#                fields = self.dumpColums(r)
+#                if fields:
+#                    out.write("<%s>%s</%s>" % (view, "".join(fields), view))
 
     def dumpLogbook(self, out):
         if self.logbook:
@@ -253,7 +252,7 @@
     def dumpData(self, out, cur):
         out.write("<case>")
         self.dumpMasterTable(out)
-        self.dumpRepeatGroups(out)
+        #self.dumpRepeatGroups(out)
         self.dumpLogbook(out)
         self.dumpDocuments(out, cur)
         out.write("</case>")



More information about the Mpuls-commits mailing list