def __init__(self, parent=None): ''' 2 arguments 1. the database into which the new patient will go. 2. parent widget(optional) ''' ExtendableDialog.__init__(self, parent) self.setWindowTitle(_("New Patient")) self.set_advanced_but_text(_("optional fields")) label = QtGui.QLabel( _('The Following Fields are required to create a New Record')) label.setWordWrap(True) label.setAlignment(QtCore.Qt.AlignCenter) widget = QtGui.QWidget() self.form = QtGui.QFormLayout(widget) advanced_widget = QtGui.QWidget() self.advanced_form = QtGui.QFormLayout(advanced_widget) self.insertWidget(label) self.insertWidget(widget) self.add_advanced_widget(advanced_widget) self.set_check_on_cancel(True) self.enableApply() self.set_accept_button_text(_("Create New Record")) self.patient = NewPatientDB() self.patient.setValue("modified_by", SETTINGS.user) self.patient.setValue("status", "active") self.patient.remove(self.patient.indexOf("time_stamp")) self.value_store = {} palette = QtGui.QPalette(self.palette()) brush = QtGui.QBrush(SETTINGS.COLOURS.REQUIRED_FIELD) palette.setBrush(QtGui.QPalette.Base, brush) for editable_field in self.patient.editable_fields: field_name = editable_field.fieldname display_text = editable_field.readable_fieldname field = self.patient.field(field_name) if editable_field.type == None: field_type = field.type() else: field_type = editable_field.type if field_type == QtCore.QVariant.Date: widg = QtGui.QDateEdit(self) widg.setDate(field.value().toDate()) elif field_type == QtCore.QVariant.String: widg = UpperCaseLineEdit(self) widg.setText(field.value().toString()) elif type(field_type) == OMType: widg = QtGui.QComboBox(self) for val in field_type.allowed_values: widg.addItem(field_type.readable_dict[val], val) index = widg.findData(field.value()) widg.setCurrentIndex(index) else: widg = QtGui.QLabel("????") if editable_field.required: widg.setPalette(palette) if editable_field.advanced: self.advanced_form.addRow(display_text, widg) else: self.form.addRow(display_text, widg) self.value_store[field_name] = (widg, field_type) self.form.itemAt(1).widget().setFocus()
def __init__(self, parent=None): ''' 2 arguments 1. the database into which the new address will go. 2. parent widget(optional) ''' BaseDialog.__init__(self, parent) self.setWindowTitle(_("New address")) label = QtGui.QLabel(_('Enter a New Address')) label.setWordWrap(True) label.setAlignment(QtCore.Qt.AlignCenter) widget = QtGui.QWidget() self.form = QtGui.QFormLayout(widget) self.insertWidget(label) self.insertWidget(widget) self.enableApply() self.set_accept_button_text(_("Create New Record")) self.address_record = AddressRecord() # A blank record ''' A pointer to the dialog's :doc:`AddressRecord` ''' self.address_record.setValue("modified_by", SETTINGS.user) self.address_record.setValue("status", "active") self.value_store = {} # keep a list of required values the user hasn't completed self.ommissions = [] palette = QtGui.QPalette(self.palette()) brush = QtGui.QBrush(SETTINGS.COLOURS.REQUIRED_FIELD) palette.setBrush(QtGui.QPalette.Base, brush) standard_fields, advanced_fields = self.address_record.editable_fields for editable_field in standard_fields: field_name = editable_field.fieldname display_text = editable_field.readable_fieldname field = self.address_record.field(field_name) if editable_field.type is None: field_type = field.type() else: field_type = editable_field.type if field_type == QtCore.QVariant.Date: widg = QtGui.QDateEdit(self) widg.setDate(field.value().toDate()) elif field_type == QtCore.QVariant.String: widg = UpperCaseLineEdit(self) widg.setText(field.value().toString()) elif type(field_type) == OMType: widg = QtGui.QComboBox(self) for val in field_type.allowed_values: widg.addItem(field_type.readable_dict[val], val) index = widg.findData(field.value()) widg.setCurrentIndex(index) else: widg = QtGui.QLabel("????") if editable_field.required: widg.setPalette(palette) self.form.addRow(display_text, widg) self.value_store[field_name] = (widg, field_type) self.form.itemAt(1).widget().setFocus() self.result = None