Esempio n. 1
0
 def __init__(self, tableName):
     QtCore.QAbstractTableModel.__init__(self)
     self.tableName = tableName
     self.columns = [column for column in nafdb.getColumns(tableName) if column.isFilterable and column._type.find("integer") != -1]
     self.rowCount = len(self.columns)
     self.conditions = [0] * self.rowCount
     self.conditionLabels = '== > < !='.split()
     self.checkState = [0] * self.rowCount
     self.values = [0] * self.rowCount
Esempio n. 2
0
 def __init__(self, tableName):
     QtCore.QAbstractTableModel.__init__(self)
     self.tableName = tableName
     self.columns = [
         column for column in nafdb.getColumns(tableName)
         if column.isFilterable and column._type.find("integer") != -1
     ]
     self.rowCount = len(self.columns)
     self.conditions = [0] * self.rowCount
     self.conditionLabels = '== > < !='.split()
     self.checkState = [0] * self.rowCount
     self.values = [0] * self.rowCount
Esempio n. 3
0
 def importXmlSection(self, tableName):
     logging.debug(tableName)
     maxId = -1
     columns = nafdb.getColumns(tableName)
     conversions = []
     keys = []
     placeholders = []
     for column in columns:
         keys.append(column.name)
         placeholders.append('?')
         if column._type.startswith('text'):
             conversions.append(unicode)
         elif column._type.startswith('integer'):
             conversions.append(int)
         elif column._type.startswith('blob'):
             conversions.append(self.b64decode)
         else:
             conversions.append(self._nop)
     table = self.dom.getElementsByTagName(tableName)[0]
     items = table.getElementsByTagName('item')
     for item in items:
         values = []
         for key in keys:
             child = item.getElementsByTagName(key)[0].firstChild
             if child is None:
                 value == ''
             elif xml.dom.minidom.Node.TEXT_NODE == child.nodeType:
                 value = child.data.strip()
             else:
                 logging.error(nodename[child.nodeType])
                 value = ''
             values.append(value)
             if key == 'id':
                 self.maxId = max(self.maxId, int(value))
         values = tuple(f(x) for f, x in zip(conversions, values))
         nafdb.connection.execute(
             "insert into %s values (%s);" %
             (tableName, ','.join(placeholders)), values)
     nafdb.connection.commit()
Esempio n. 4
0
 def importXmlSection(self, tableName):
     logging.debug(tableName)
     maxId = -1
     columns = nafdb.getColumns(tableName)
     conversions = []
     keys = []
     placeholders = []
     for column in columns:
         keys.append(column.name)
         placeholders.append("?")
         if column._type.startswith("text"):
             conversions.append(unicode)
         elif column._type.startswith("integer"):
             conversions.append(int)
         elif column._type.startswith("blob"):
             conversions.append(self.b64decode)
         else:
             conversions.append(self._nop)
     table = self.dom.getElementsByTagName(tableName)[0]
     items = table.getElementsByTagName("item")
     for item in items:
         values = []
         for key in keys:
             child = item.getElementsByTagName(key)[0].firstChild
             if child is None:
                 value == ""
             elif xml.dom.minidom.Node.TEXT_NODE == child.nodeType:
                 value = child.data.strip()
             else:
                 logging.error(nodename[child.nodeType])
                 value = ""
             values.append(value)
             if key == "id":
                 self.maxId = max(self.maxId, int(value))
         values = tuple(f(x) for f, x in zip(conversions, values))
         nafdb.connection.execute("insert into %s values (%s);" % (tableName, ",".join(placeholders)), values)
     nafdb.connection.commit()