else:
self.view_display = QtGui.QDataWidgetMapper(parent)
self.view_display.setModel(self.model)
- if self.delegate:
- self.view_display.setItemDelegate(QtSql.QSqlRelationalDelegate(self))
display_fields = self.getDisplayFields()
for data in self.relations:
column, name, table, display = data
- column_id = self.model.fieldIndex(column)
+ column_index = self.model.fieldIndex(column)
# SetRelation screws table data filtering?
-# self.model.setRelation(
-# column_id,
-# QtSql.QSqlRelation('ipypbxweb_%s' % table, 'id', display))
+ self.model.setRelation(
+ column_index,
+ QtSql.QSqlRelation('ipypbxweb_%s' % table, 'id', display))
+ #self.model.select()
-# rel = self.model.relationModel(column_id)
+ rel = self.model.relationModel(column_index)
widget = self.getFieldWidget(name)
widget.setModel(self.parent().controllers[table].model)
- widget.setItemDelegate(self.delegate)
+ widget.setModelColumn(rel.fieldIndex(display))
+ #widget.setItemDelegate(self.delegate)
+
# Select first row in the view list.
self.view_display.toFirst()
# Focust to the first displayed field.
self.getFieldWidget(self.getDisplayFields()[0]).setFocus()
- # TODO: set default values?
-
def save(self):
"""
Save to database.
connection_id, ok = index.model().data(
index.sibling(index.row(), 0)).toInt()
self.connection_id = connection_id
- self.model.setFilter('connection_id = %i' % connection_id)
- self.model.index(0, 0)
+ self.model.setFilter('ipypbxweb_%s.connection_id = %i' % (self.basename, connection_id))
+ self.view_list.selectRow(0)
+ if not self.model.rowCount():
+ self.add()
def setConnectionId(self, row, record):
record.setValue('connection_id', self.connection_id)
QtCore.QT_TRANSLATE_NOOP('MainWindow', 'Host Name'),
QtCore.QT_TRANSLATE_NOOP('MainWindow', 'Is Active'))
view_list_fields = 'SIP Profile ID', 'Host Name'
- relations = (('sip_profile_id', 'SIP Profile ID', 'sipprofile', 'Name'),)
+ relations = (('sip_profile_id', 'SIP Profile ID', 'sipprofile', 'name'),)
class GatewayController(ConnectionChangeListenerController):
QtCore.QT_TRANSLATE_NOOP('MainWindow', 'Caller ID In From Field'),
QtCore.QT_TRANSLATE_NOOP('MainWindow', 'Is Active'))
view_list_fields = 'SIP Profile ID', 'Name'
- relations = (('sip_profile_id', 'SIP Profile ID', 'sipprofile', 'Name'),)
+ relations = (('sip_profile_id', 'SIP Profile ID', 'sipprofile', 'name'),)
class EndpointController(ConnectionChangeListenerController):
QtCore.QT_TRANSLATE_NOOP('MainWindow', 'Domain ID'),
QtCore.QT_TRANSLATE_NOOP('MainWindow', 'Is Active'))
view_list_fields = 'User ID', 'Domain ID'
- relations = (('domain_id', 'Domain ID', 'domain', 'Host Name'),)
+ relations = (('domain_id', 'Domain ID', 'domain', 'host_name'),)
class ExtensionController(ConnectionChangeListenerController):
QtCore.QT_TRANSLATE_NOOP('MainWindow', 'Authenticate Calls'),
QtCore.QT_TRANSLATE_NOOP('MainWindow', 'Is Active'))
view_list_fields = 'Destination Match',
- relations = (('domain_id', 'Domain ID', 'domain', 'Host Name'),)
+ relations = (
+ ('domain_id', 'Domain ID', 'domain', 'host_name'),
+ ('endpoint_id', 'Endpoint ID', 'endpoint', 'user_id'))
query = QtSql.QSqlQuery()
for query_string in sql_queries[:-1]:
query.exec_(query_string)
+
+ return created
else:
# Something went horribly wrong.
QtGui.QMessageBox.warning(
QtGui.QApplication.installTranslator(translator)
# Initialize main window.
- setupDb()
+ created = setupDb()
main = QtGui.QMainWindow()
views = ui.Ui_MainWindow()
views.setupUi(main)
# Get first row index.
first_row_id, ok = connection_model.data(
connection_index.sibling(0, 0)).toInt()
+
if ok:
# We have to explicitly emit row selection signal since previous state
# was unselected.
QtCore.SIGNAL('currentRowChanged(QModelIndex, QModelIndex)'),
connection_index, connection_index)
+ if created:
+ main.controllers['connection'].add()
sys.exit(app.exec_())