changeset 227:11dea0923d2f

Upload of xml-tables with empty Cells possible
author fknauft
date Thu, 28 Apr 2011 16:00:26 +0200
parents 0a1dee507612
children 52112e9a8d72
files RestDbInterface.py
diffstat 1 files changed, 15 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/RestDbInterface.py	Thu Apr 28 14:40:33 2011 +0200
+++ b/RestDbInterface.py	Thu Apr 28 16:00:26 2011 +0200
@@ -342,10 +342,15 @@
     def getTable(self,schema='public',table=None,sortBy=1,username='guest'):
         """return table data"""
         logging.debug("gettable")
-        if sortBy:
+        try:
+          if sortBy:
             data = self.executeSQL('select * from "%s"."%s" order by %s'%(schema,table,sortBy))
-        else:
+          else:
             data = self.executeSQL('select * from "%s"."%s"'%(schema,table))
+        except:
+            """ table does not exist """
+            fields=self.get
+            self.createEmptyTable(schema, table, fields)
         return data
 
     def hasTable(self,schema='public',table=None,username='guest'):
@@ -570,9 +575,17 @@
                         colNodes=node[1].getElementsByTagNameNS(namespace, colTagName)
                         data = []
                         hasData = False
+                        lineIndex=0
                         for colNode in colNodes:
+                            lineIndex+=1
                             dataNodes=colNode.getElementsByTagNameNS(namespace, dataTagName)
                             if len(dataNodes) > 0:
+                                dataIndex=0
+                                if colNode.hasAttribute('index'):
+                                   dataIndex=colNode.getAttribute('index')
+                                if dataIndex>lineIndex:
+                                    data.append("")
+                                    lineIndex+=1                                     
                                 val = getTextFromNode(dataNodes[0])
                                 hasData = True
                             else: