def __init__(self, model_instance, parent=None, filter=None, **kwargs): QDialog.__init__(self, parent, **kwargs) BaseView.__init__(self, **kwargs) self.setWindowTitle(u"%s: редактирование" % self.model.verbose_name()) self.model_instance = model_instance self.formlayout = QFormLayout() self._widgets = {} self.fields = [field for field in self.fields\ if not getattr(self.model,field).is_read_only_in(self.model)] for field in self.fields: x = getattr(self.model, field) try: self._widgets[field] = self.widgets[field] except KeyError: try: self._widgets[field] = \ self.fieldwidgets_dict[x.__class__](x) except KeyError: self._widgets[field] = LabelWidget() ##FIXME! self.formlayout.addRow(x.get_label(), self._widgets[field]) self.get_data_from_model() #then initialise inline views: self._inline_views = [] for inline_view_class, inline_filter_field, inline_caption in self.inline_views: v = inline_view_class( filter={inline_filter_field: self.model_instance}) #v.set_filter({inline_filter_field:self.model_instance}) self._inline_views.append(v) self.formlayout.addRow(QLabel(inline_caption)) self.formlayout.addRow(v) buttonBox = QDialogButtonBox(QDialogButtonBox.Ok | QDialogButtonBox.Cancel) Qt.QObject.connect(buttonBox, Qt.SIGNAL("accepted()"), self, Qt.SLOT("accept()")) Qt.QObject.connect(buttonBox, Qt.SIGNAL("rejected()"), self, Qt.SLOT("reject()")) v_layout = QVBoxLayout(self) v_layout.addLayout(self.formlayout) v_layout.addWidget(buttonBox) self.setLayout(v_layout) self.set_filter(filter)
def __init__(self, model_instance, parent=None, filter=None,**kwargs): QDialog.__init__(self, parent, **kwargs) BaseView.__init__(self, **kwargs) self.setWindowTitle(u"%s: редактирование" % self.model.verbose_name()) self.model_instance = model_instance self.formlayout = QFormLayout() self._widgets={} self.fields = [field for field in self.fields\ if not getattr(self.model,field).is_read_only_in(self.model)] for field in self.fields: x = getattr(self.model,field) try: self._widgets[field] = self.widgets[field] except KeyError: try: self._widgets[field] = \ self.fieldwidgets_dict[x.__class__](x) except KeyError: self._widgets[field] = LabelWidget() ##FIXME! self.formlayout.addRow(x.get_label(), self._widgets[field]) self.get_data_from_model() #then initialise inline views: self._inline_views = [] for inline_view_class, inline_filter_field, inline_caption in self.inline_views: v = inline_view_class(filter={inline_filter_field:self.model_instance}) #v.set_filter({inline_filter_field:self.model_instance}) self._inline_views.append(v) self.formlayout.addRow(QLabel(inline_caption)) self.formlayout.addRow(v) buttonBox = QDialogButtonBox(QDialogButtonBox.Ok | QDialogButtonBox.Cancel) Qt.QObject.connect(buttonBox, Qt.SIGNAL("accepted()"), self, Qt.SLOT("accept()")); Qt.QObject.connect(buttonBox, Qt.SIGNAL("rejected()"), self, Qt.SLOT("reject()")); v_layout = QVBoxLayout(self) v_layout.addLayout(self.formlayout) v_layout.addWidget(buttonBox) self.setLayout(v_layout) self.set_filter(filter)
def __init__(self, filter=None): BaseView.__init__(self) self.filter = filter