1 from PyQt4 import QtGui, QtCore
2
4 """Helper functions for implementing a `ManyToOneEditor`, to be used in the
5 `ManyToOneEditor` and in the `ManyToManyEditor`
6 """
7
9
10 search_text = ''
11 admin = self.admin
12 query = self.admin.entity.query
13
14 class SelectDialog(QtGui.QDialog):
15 def __init__(self, parent):
16 super(SelectDialog, self).__init__(parent)
17 self.entity_selected_signal = QtCore.SIGNAL("entity_selected")
18 layout = QtGui.QVBoxLayout()
19 layout.setMargin(0)
20 layout.setSpacing(0)
21 self.setWindowTitle('Select %s'%admin.get_verbose_name())
22 self.select = admin.create_select_view(query,
23 parent=parent,
24 search_text=search_text)
25 layout.addWidget(self.select)
26 self.setLayout(layout)
27 self.connect(self.select, self.select.entity_selected_signal, self.selectEntity)
28
29 def selectEntity(self, entity_instance_getter):
30 self.emit(self.entity_selected_signal, entity_instance_getter)
31 self.close()
32
33 selectDialog = SelectDialog(self)
34 self.connect(selectDialog, selectDialog.entity_selected_signal, self.selectEntity)
35 selectDialog.exec_()
36
38
39 raise NotImplementedError
40