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
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
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()
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()