def __init__(self, juzgado=None, parent=None): ''' Constructor ''' super(NuevoJuzgado, self).__init__(parent) self.__dirty = False if juzgado is not None and not isinstance(juzgado, Juzgado): raise TypeError("El objeto juzgado debe ser de la clase Juzgado") self.__juzgado = juzgado self.setupUi(self) campos = [] if self.__juzgado is not None: self.setWindowTitle(u"Editar juzgado") self.groupBox.setTitle(u"Datos del juzgado:") campos = juzgado.getCampos() self.txtNombre.setText(self.__juzgado.getNombre()) self.txtDireccion.setText(self.__juzgado.getDireccion()) self.txtCiudad.setText(self.__juzgado.getCiudad()) self.txtTelefono.setText(self.__juzgado.getTelefono()) self.txtTipo.setText(self.__juzgado.getTipo()) self.__gestor = GestorCampos(campos=campos, formLayout=self.formLayout, parent=self, constante_de_edicion=NuevoCampo.JUZGADO, constante_de_creacion=ListadoDialogo.CAMPOJUZGADO) self.connect(self.btnAdd, QtCore.SIGNAL("clicked()"), self.__gestor.addCampo) self.txtNombre.textChanged.connect(self.setDirty) self.txtCiudad.textChanged.connect(self.setDirty) self.txtDireccion.textChanged.connect(self.setDirty) self.txtTelefono.textChanged.connect(self.setDirty) self.txtTipo.textChanged.connect(self.setDirty)
def __init__(self, persona=None, tipo=None, parent=None): super(NuevaPersona, self).__init__(parent) self.__dirty = False if(persona is None and tipo is None): raise TypeError("Para crear una nueva persona debe pasar el argumento tipo") if persona is not None and not isinstance(persona, Persona): raise TypeError("El objeto persona debe ser de la clase Persona") self.__persona = persona self.setupUi(self) if self.__persona is not None: campos = persona.getCampos() self.__tipo = persona.getTipo() self.txtNombre.setText(self.__persona.getNombre()) self.txtCedula.setText(self.__persona.getId()) self.txtTelefono.setText(self.__persona.getTelefono()) self.txtDireccion.setText(self.__persona.getDireccion()) self.txtCorreo.setText(self.__persona.getCorreo()) self.txtNotas.setText(self.__persona.getNotas()) else: campos = [] self.__tipo = tipo if self.__tipo is 1: constante = ListadoDialogo.CAMPODEMANDADO if persona is None: self.setWindowTitle("Nuevo cliente") self.groupBox.setTitle("Ingrese los datos del nuevo cliente:") else: self.setWindowTitle("Editar cliente") self.groupBox.setTitle("Ingrese los datos del cliente:") elif self.__tipo is 2: constante = ListadoDialogo.CAMPODEMANDADO if persona is None: self.setWindowTitle("Nueva contraparte") self.groupBox.setTitle("Ingrese los datos de la nueva contraparte:") else: self.setWindowTitle("Editar contraparte") self.groupBox.setTitle("Ingrese los datos de la contraparte:") self.__gestor = GestorCampos(campos=campos, formLayout=self.formLayout, parent=self, constante_de_edicion=NuevoCampo.PERSONA, constante_de_creacion=constante) self.connect(self.btnAdd, QtCore.SIGNAL("clicked()"), self.__gestor.addCampo) self.txtNombre.textEdited.connect(self.setDirty) self.txtCedula.textEdited.connect(self.setDirty) self.txtCorreo.textEdited.connect(self.setDirty) self.txtDireccion.textEdited.connect(self.setDirty) self.txtNotas.textChanged.connect(self.setDirty) self.txtTelefono.textEdited.connect(self.setDirty)
class NuevoJuzgado(QtGui.QDialog, Ui_NuevoJuzgado): ''' classdocs ''' def __init__(self, juzgado=None, parent=None): ''' Constructor ''' super(NuevoJuzgado, self).__init__(parent) self.__dirty = False if juzgado is not None and not isinstance(juzgado, Juzgado): raise TypeError("El objeto juzgado debe ser de la clase Juzgado") self.__juzgado = juzgado self.setupUi(self) campos = [] if self.__juzgado is not None: self.setWindowTitle(u"Editar juzgado") self.groupBox.setTitle(u"Datos del juzgado:") campos = juzgado.getCampos() self.txtNombre.setText(self.__juzgado.getNombre()) self.txtDireccion.setText(self.__juzgado.getDireccion()) self.txtCiudad.setText(self.__juzgado.getCiudad()) self.txtTelefono.setText(self.__juzgado.getTelefono()) self.txtTipo.setText(self.__juzgado.getTipo()) self.__gestor = GestorCampos(campos=campos, formLayout=self.formLayout, parent=self, constante_de_edicion=NuevoCampo.JUZGADO, constante_de_creacion=ListadoDialogo.CAMPOJUZGADO) self.connect(self.btnAdd, QtCore.SIGNAL("clicked()"), self.__gestor.addCampo) self.txtNombre.textChanged.connect(self.setDirty) self.txtCiudad.textChanged.connect(self.setDirty) self.txtDireccion.textChanged.connect(self.setDirty) self.txtTelefono.textChanged.connect(self.setDirty) self.txtTipo.textChanged.connect(self.setDirty) def getJuzgado(self): return self.__juzgado def __guardar(self): guardar = True p = Persistence() nombre = self.txtNombre.text() direccion = self.txtDireccion.text() telefono = self.txtTelefono.text() ciudad = self.txtCiudad.text() tipo = self.txtTipo.text() campos = self.__gestor.getCampos() if not self.__juzgado: self.__juzgado = Juzgado(nombre=nombre, ciudad=ciudad, direccion=direccion, telefono=telefono, tipo=tipo, campos=campos) else: camposNuevos = self.__gestor.getCamposNuevos() camposEliminados = self.__gestor.getCamposEliminados() for campo in camposEliminados: p.borrarCampoJuzgado(campo) for campo in camposNuevos: p.guardarCampoJuzgado(campo, self.__juzgado.getId_juzgado()) self.__juzgado.setNombre(nombre) self.__juzgado.setDireccion(direccion) self.__juzgado.setCiudad(ciudad) self.__juzgado.setTelefono(telefono) self.__juzgado.setTipo(tipo) self.__juzgado.setCampos(campos) guardar = False try: if guardar: p.guardarJuzgado(self.__juzgado) else: p.actualizarJuzgado(self.__juzgado) except sqlite3.IntegrityError: if guardar: self.__juzgado = None QtGui.QMessageBox.information(self, 'Error', 'El elemento ya existe') else: return QtGui.QDialog.accept(self) def accept(self): if self.txtNombre.text().__len__() == 0 or self.txtNombre.text() == " ": QtGui.QMessageBox.warning(self, 'Cambo obligatorio', 'El nombre se considera obligatorio') self.txtNombre.setFocus() elif not len(self.txtTelefono.text()): ret = QtGui.QMessageBox.question(self, 'Pregunta', u'¿Desea guardar sin agregar un teléfono?', QtGui.QMessageBox.Yes | QtGui.QMessageBox.No, QtGui.QMessageBox.No) if ret == QtGui.QMessageBox.No: self.txtTelefono.setFocus() elif self.__gestor.organizarCampos(): self.__guardar() elif self.__gestor.organizarCampos(): self.__guardar() def reject(self): Util.reject(self, self.__dirty) def setDirty(self): self.__dirty = True self.disconnect(self.sender(), QtCore.SIGNAL("textEdited()"), self.setDirty)
def __init__(self, actuacion=None, parent=None): super(NuevaActuacion, self).__init__(parent) self.__dirty = False if actuacion is not None and not isinstance(actuacion, Actuacion): raise TypeError("El objeto actuacion debe ser de la clase Actuacion") self.setupUi(self) self.__actuacion = actuacion self.__juzgado = None campos = [] if actuacion is not None: self.setWindowTitle(u'Editar actuación') self.groupBox.setTitle(u'Datos de la actuación:') self.__juzgado = actuacion.getJuzgado() campos = actuacion.getCampos() self.txtDescripcion.setText(unicode(actuacion.getDescripcion())) self.lblJuzgado.setText(unicode(self.__juzgado.getNombre())) self.dteFecha.setDateTime(actuacion.getFecha()) self.dteFechaProxima.setDateTime(actuacion.getFechaProxima()) p = Persistence() citas = p.consultarCitasCalendario() for cita in citas: if cita.getId_actuacion() == actuacion.getId_actuacion(): self.__cita = cita self.checkCita.setChecked(True) break else: self.__cita = None self.checkCita.setChecked(False) else: self.dteFecha.setDateTime(datetime.today()) self.dteFechaProxima.setDateTime(datetime.today()) self.lblJuzgado.setText(u'vacío') self.__cita = None self.__dialogo = DialogoAuxiliar(self) self.__clickJuzgado() cambiar = self.__createAction("Cambiar", self.__cambiarJuzgado) cambiar.setData(self.lblJuzgado) editar = self.__createAction("Editar", self.__editarJuzgado) editar.setData(self.lblJuzgado) self.lblJuzgado.addActions([cambiar, editar]) self.__gestor = GestorCampos(campos=campos, formLayout=self.formLayout, parent=self, constante_de_edicion=NuevoCampo.ACTUACION, constante_de_creacion=ListadoDialogo.CAMPOACTUACION) self.btnAdd.clicked.connect(self.__gestor.addCampo) self.txtDescripcion.textChanged.connect(self.setDirty) self.dteFecha.dateTimeChanged.connect(self.setDirty) self.dteFechaProxima.dateTimeChanged.connect(self.setDirty) self.dteFechaProxima.dateTimeChanged.connect(lambda : self.verificarFechas(interna = False)) self.dteFecha.dateTimeChanged.connect(lambda : self.verificarFechas(interna = False)) self.checkCita.clicked.connect(self.setCita) self.actionEditarCita = self.__createAction('Editar cita', self.editarCita) self.checkCita.setContextMenuPolicy(QtCore.Qt.ActionsContextMenu) self.setActionCita()
class NuevaActuacion(QtGui.QDialog, Ui_NuevaActuacion): ''' classdocs ''' def __init__(self, actuacion=None, parent=None): super(NuevaActuacion, self).__init__(parent) self.__dirty = False if actuacion is not None and not isinstance(actuacion, Actuacion): raise TypeError("El objeto actuacion debe ser de la clase Actuacion") self.setupUi(self) self.__actuacion = actuacion self.__juzgado = None campos = [] if actuacion is not None: self.setWindowTitle(u'Editar actuación') self.groupBox.setTitle(u'Datos de la actuación:') self.__juzgado = actuacion.getJuzgado() campos = actuacion.getCampos() self.txtDescripcion.setText(unicode(actuacion.getDescripcion())) self.lblJuzgado.setText(unicode(self.__juzgado.getNombre())) self.dteFecha.setDateTime(actuacion.getFecha()) self.dteFechaProxima.setDateTime(actuacion.getFechaProxima()) p = Persistence() citas = p.consultarCitasCalendario() for cita in citas: if cita.getId_actuacion() == actuacion.getId_actuacion(): self.__cita = cita self.checkCita.setChecked(True) break else: self.__cita = None self.checkCita.setChecked(False) else: self.dteFecha.setDateTime(datetime.today()) self.dteFechaProxima.setDateTime(datetime.today()) self.lblJuzgado.setText(u'vacío') self.__cita = None self.__dialogo = DialogoAuxiliar(self) self.__clickJuzgado() cambiar = self.__createAction("Cambiar", self.__cambiarJuzgado) cambiar.setData(self.lblJuzgado) editar = self.__createAction("Editar", self.__editarJuzgado) editar.setData(self.lblJuzgado) self.lblJuzgado.addActions([cambiar, editar]) self.__gestor = GestorCampos(campos=campos, formLayout=self.formLayout, parent=self, constante_de_edicion=NuevoCampo.ACTUACION, constante_de_creacion=ListadoDialogo.CAMPOACTUACION) self.btnAdd.clicked.connect(self.__gestor.addCampo) self.txtDescripcion.textChanged.connect(self.setDirty) self.dteFecha.dateTimeChanged.connect(self.setDirty) self.dteFechaProxima.dateTimeChanged.connect(self.setDirty) self.dteFechaProxima.dateTimeChanged.connect(lambda : self.verificarFechas(interna = False)) self.dteFecha.dateTimeChanged.connect(lambda : self.verificarFechas(interna = False)) self.checkCita.clicked.connect(self.setCita) self.actionEditarCita = self.__createAction('Editar cita', self.editarCita) self.checkCita.setContextMenuPolicy(QtCore.Qt.ActionsContextMenu) self.setActionCita() def verificarFechas(self, fecha = None, interna = True): if self.dteFechaProxima.dateTime() < self.dteFecha.dateTime() and not interna: from datetime import timedelta self.dteFechaProxima.setDateTime(self.dteFecha.dateTime().toPython() + timedelta(0, 60)) #QtGui.QMessageBox.information(self, 'Error', u'La fecha próxima no puede ser menor a la fecha de creación') def setActionCita(self): if self.__cita == None: self.checkCita.removeAction(self.actionEditarCita) else: self.checkCita.addAction(self.actionEditarCita) def editarCita(self): editar = NuevaCita(cita=self.__cita, parent=self) if editar.exec_(): gestor = GestorCitas() gestor.actualizarCitas() def setCita(self): boolean = self.checkCita.checkState() if boolean: if self.__actuacion: guardar = True else: guardar = False nueva = NuevaCita(actuacion=self.__actuacion, cita=None, fecha=self.dteFechaProxima.dateTime(), parent=self, isGuardar=guardar) if nueva.exec_(): self.__cita = nueva.getCita() else: self.checkCita.setChecked(False) nueva.setParent(None) else: message = QtGui.QMessageBox() message.setIcon(QtGui.QMessageBox.Question) message.setStandardButtons(QtGui.QMessageBox.Yes | QtGui.QMessageBox.No) message.setDefaultButton(QtGui.QMessageBox.No) message.setText(u'¿Desea eliminar la cita?') if message.exec_() == QtGui.QMessageBox.Yes: if self.__actuacion: p = Persistence() p.borrarCitaCalendario(self.__cita) gestor = GestorCitas() gestor.actualizarCitas() self.__cita = None else: self.checkCita.setChecked(True) self.setActionCita() def getActuacion(self): return self.__actuacion def __createAction(self, text, slot=None): action = QtGui.QAction(text, self) if slot is not None: self.connect(action, QtCore.SIGNAL("triggered()"), slot) return action def __cambiarJuzgado(self): listado = ListadoDialogo(ListadoDialogo.JUZGADO, self) if listado.exec_(): self.__juzgado = listado.getSelected() self.lblJuzgado.setText(self.__juzgado.getNombre()) self.__dirty = True del(listado) def __editarJuzgado(self): if self.__juzgado is not None and self.__juzgado.getId_juzgado() is not "1": dialogo = NuevoJuzgado(self.__juzgado, self) if dialogo.exec_(): self.lblJuzgado.setText(self.__juzgado.getNombre()) if isinstance(self.horizontal.itemAt(1).widget(), VerJuzgado): self.horizontal.itemAt(1).widget().deleteLater() vista = VerJuzgado(self.__juzgado, self) self.horizontal.addWidget(vista) del(dialogo) def accept(self): if len(self.txtDescripcion.text()) is 0: message = QtGui.QMessageBox() message.setIcon(QtGui.QMessageBox.Warning) message.setText(u"La descripción se considera obligatoria") message.exec_() self.txtDescripcion.setFocus() elif self.__juzgado is None or self.__juzgado.getId_juzgado() is "1": message = QtGui.QMessageBox() message.setIcon(QtGui.QMessageBox.Warning) message.setText(u"El juzgado no se permite vacío") message.exec_() self.txtDescripcion.setFocus() elif self.__gestor.organizarCampos(): self.__guardar() def __guardar(self): del(self.__dialogo) fecha = self.dteFecha.dateTime().toPython() fechaProxima = self.dteFechaProxima.dateTime().toPython() descripcion = self.txtDescripcion.text() if self.checkCita.isChecked(): cita = self.__cita else: cita = None if not self.__actuacion: self.__actuacion = Actuacion(juzgado=self.__juzgado, fecha=fecha, fechaProxima=fechaProxima, descripcion=descripcion, campos=self.__gestor.getCampos()) else: if self.__actuacion.getId_actuacion() is not None: camposNuevos = self.__gestor.getCamposNuevos() camposEliminados = self.__gestor.getCamposEliminados() try: p = Persistence() for campo in camposEliminados: p.borrarCampoActuacion(campo) for campo in camposNuevos: p.guardarCampoActuacion(campo, self.__actuacion.getId_actuacion()) except Exception, e: print "guardar actuación -> " % e.args self.__actuacion.setDescripcion(descripcion) self.__actuacion.setFecha(fecha) self.__actuacion.setFechaProxima(fechaProxima) self.__actuacion.setCampos(self.__gestor.getCampos()) self.__actuacion.setJuzgado(self.__juzgado) self.__actuacion.cita = cita return QtGui.QDialog.accept(self)
def __init__(self, plantilla = None, parent = None): ''' Constructor ''' super(NuevaPlantilla, self).__init__(parent) self.__dirty = False self.setupUi(self) if plantilla is not None and not isinstance(plantilla, Plantilla): raise TypeError("El objeto plantilla debe pertenecer a la clase Plantilla") if plantilla is not None: self.groupBox.setTitle("Datos de la plantilla:") self.setWindowTitle("Editar plantilla") self.__plantilla = plantilla campos = [] self.__demandante = None self.__demandado = None self.__juzgado = None self.__categoria = Categoria("Ninguna", "1") self.sbPrioridad.setRange(0, 10) if self.__plantilla is not None: self.__demandante = self.__plantilla.getDemandante() self.__demandado = self.__plantilla.getDemandado() self.__juzgado = self.__plantilla.getJuzgado() self.__categoria = self.__plantilla.getCategoria() campos = self.__plantilla.getCampos() self.txtNombre.setText(self.__plantilla.getNombre()) self.lblDemandante.setText(self.__demandante.getNombre()) self.lblDemandado.setText(self.__demandado.getNombre()) self.lblJuzgado.setText(self.__juzgado.getNombre()) self.lblCategoria.setText(self.__categoria.getDescripcion()) self.txtRadicado.setText(self.__plantilla.getRadicado()) self.txtRadicadoUnico.setText(self.__plantilla.getRadicadoUnico()) self.txtTipo.setText(self.__plantilla.getTipo()) self.txtEstado.setText(self.__plantilla.getEstado()) self.sbPrioridad.setValue(self.__plantilla.getPrioridad()) self.txtNotas.setText(self.__plantilla.getNotas()) self.__dialogo = DialogoAuxiliar(self) self.__clickDemandante() self.__clickDemandado() self.__clickJuzgado() self.__clickCategoria() cambiar = self.__createAction("Cambiar", self.__cambiarJuzgado) cambiar.setData(self.lblJuzgado) editar = self.__createAction("Editar", self.__editarJuzgado) editar.setData(self.lblJuzgado) self.lblJuzgado.addActions([cambiar, editar]) cambiar = self.__createAction("Cambiar", self.__cambiarDemandante) cambiar.setData(self.lblDemandante) editar = self.__createAction("Editar", self.__editarDemandante) editar.setData(self.lblDemandante) self.lblDemandante.addActions([cambiar, editar]) cambiar = self.__createAction("Cambiar", self.__cambiarDemandado) cambiar.setData(self.lblDemandado) editar = self.__createAction("Editar", self.__editarDemandado) editar.setData(self.lblDemandado) self.lblDemandado.addActions([cambiar, editar]) cambiar = self.__createAction("Cambiar", self.__cambiarCategoria) cambiar.setData(self.lblCategoria) editar = self.__createAction("Editar", self.__editarCategoria) editar.setData(self.lblCategoria) self.lblCategoria.addActions([cambiar, editar]) self.__gestor = GestorCampos(campos = campos, formLayout = self.formLayout, parent = self, constante_de_edicion = NuevoCampo.PROCESO, constante_de_creacion = ListadoDialogo.CAMPOPROCESOP) self.connect(self.btnAdd, QtCore.SIGNAL("clicked()"), self.__gestor.addCampo) self.txtRadicado.textChanged.connect(self.setDirty) self.txtRadicadoUnico.textChanged.connect(self.setDirty) self.txtTipo.textChanged.connect(self.setDirty) self.txtEstado.textChanged.connect(self.setDirty) self.sbPrioridad.valueChanged.connect(self.setDirty) self.txtNombre.textChanged.connect(self.setDirty)
class NuevaPlantilla(QtGui.QDialog, Ui_NuevaPlantilla): ''' classdocs ''' def __init__(self, plantilla = None, parent = None): ''' Constructor ''' super(NuevaPlantilla, self).__init__(parent) self.__dirty = False self.setupUi(self) if plantilla is not None and not isinstance(plantilla, Plantilla): raise TypeError("El objeto plantilla debe pertenecer a la clase Plantilla") if plantilla is not None: self.groupBox.setTitle("Datos de la plantilla:") self.setWindowTitle("Editar plantilla") self.__plantilla = plantilla campos = [] self.__demandante = None self.__demandado = None self.__juzgado = None self.__categoria = Categoria("Ninguna", "1") self.sbPrioridad.setRange(0, 10) if self.__plantilla is not None: self.__demandante = self.__plantilla.getDemandante() self.__demandado = self.__plantilla.getDemandado() self.__juzgado = self.__plantilla.getJuzgado() self.__categoria = self.__plantilla.getCategoria() campos = self.__plantilla.getCampos() self.txtNombre.setText(self.__plantilla.getNombre()) self.lblDemandante.setText(self.__demandante.getNombre()) self.lblDemandado.setText(self.__demandado.getNombre()) self.lblJuzgado.setText(self.__juzgado.getNombre()) self.lblCategoria.setText(self.__categoria.getDescripcion()) self.txtRadicado.setText(self.__plantilla.getRadicado()) self.txtRadicadoUnico.setText(self.__plantilla.getRadicadoUnico()) self.txtTipo.setText(self.__plantilla.getTipo()) self.txtEstado.setText(self.__plantilla.getEstado()) self.sbPrioridad.setValue(self.__plantilla.getPrioridad()) self.txtNotas.setText(self.__plantilla.getNotas()) self.__dialogo = DialogoAuxiliar(self) self.__clickDemandante() self.__clickDemandado() self.__clickJuzgado() self.__clickCategoria() cambiar = self.__createAction("Cambiar", self.__cambiarJuzgado) cambiar.setData(self.lblJuzgado) editar = self.__createAction("Editar", self.__editarJuzgado) editar.setData(self.lblJuzgado) self.lblJuzgado.addActions([cambiar, editar]) cambiar = self.__createAction("Cambiar", self.__cambiarDemandante) cambiar.setData(self.lblDemandante) editar = self.__createAction("Editar", self.__editarDemandante) editar.setData(self.lblDemandante) self.lblDemandante.addActions([cambiar, editar]) cambiar = self.__createAction("Cambiar", self.__cambiarDemandado) cambiar.setData(self.lblDemandado) editar = self.__createAction("Editar", self.__editarDemandado) editar.setData(self.lblDemandado) self.lblDemandado.addActions([cambiar, editar]) cambiar = self.__createAction("Cambiar", self.__cambiarCategoria) cambiar.setData(self.lblCategoria) editar = self.__createAction("Editar", self.__editarCategoria) editar.setData(self.lblCategoria) self.lblCategoria.addActions([cambiar, editar]) self.__gestor = GestorCampos(campos = campos, formLayout = self.formLayout, parent = self, constante_de_edicion = NuevoCampo.PROCESO, constante_de_creacion = ListadoDialogo.CAMPOPROCESOP) self.connect(self.btnAdd, QtCore.SIGNAL("clicked()"), self.__gestor.addCampo) self.txtRadicado.textChanged.connect(self.setDirty) self.txtRadicadoUnico.textChanged.connect(self.setDirty) self.txtTipo.textChanged.connect(self.setDirty) self.txtEstado.textChanged.connect(self.setDirty) self.sbPrioridad.valueChanged.connect(self.setDirty) self.txtNombre.textChanged.connect(self.setDirty) def __clickDemandante(self): dialogo = self.__dialogo widget = self lblDemandante = self.lblDemandante def mousePressEvent(self): if QtCore.Qt.MouseButton.LeftButton is self.button(): if widget.__demandante is not None and widget.__demandante.getId_persona() is not "1": vista = VerPersona(widget.__demandante, widget) dialogo.setWidget(vista) else: widget.__cambiarDemandante() return QtGui.QLabel.mousePressEvent(lblDemandante, self) self.lblDemandante.mousePressEvent = mousePressEvent def __clickDemandado(self): dialogo = self.__dialogo widget = self lblDemandado = self.lblDemandado def mousePressEvent(self): if QtCore.Qt.MouseButton.LeftButton is self.button(): if widget.__demandado is not None and widget.__demandado.getId_persona() is not "1": vista = VerPersona(widget.__demandado, widget) dialogo.setWidget(vista) else: widget.__cambiarDemandado() return QtGui.QLabel.mousePressEvent(lblDemandado, self) self.lblDemandado.mousePressEvent = mousePressEvent def __clickJuzgado(self): dialogo = self.__dialogo widget = self lblJuzgado = self.lblJuzgado def mousePressEvent(self): if QtCore.Qt.MouseButton.LeftButton is self.button(): if widget.__juzgado is not None and widget.__juzgado.getId_juzgado() is not "1": vista = VerJuzgado(widget.__juzgado, widget) dialogo.setWidget(vista) else: widget.__cambiarJuzgado() return QtGui.QLabel.mousePressEvent(lblJuzgado, self) self.lblJuzgado.mousePressEvent = mousePressEvent def __clickCategoria(self): widget = self lblCategoria = self.lblCategoria def mousePressEvent(self): if QtCore.Qt.MouseButton.LeftButton is self.button(): widget.__cambiarCategoria() return QtGui.QLabel.mousePressEvent(lblCategoria, self) self.lblCategoria.mousePressEvent = mousePressEvent def __cambiarDemandante(self): listado = ListadoDialogo(ListadoDialogo.DEMANDANTE, self) if listado.exec_(): self.__demandante = listado.getSelected() self.lblDemandante.setText(self.__demandante.getNombre()) vista = VerPersona(self.__demandante, self) self.__dialogo.setWidget(vista) self.__dirty = True del(listado) def __cambiarDemandado(self): listado = ListadoDialogo(ListadoDialogo.DEMANDADO, self) if listado.exec_(): self.__demandado = listado.getSelected() self.lblDemandado.setText(self.__demandado.getNombre()) vista = VerPersona(self.__demandado, self) self.__dialogo.setWidget(vista) self.__dirty = True del(listado) def __cambiarJuzgado(self): listado = ListadoDialogo(ListadoDialogo.JUZGADO, self) if listado.exec_(): self.__juzgado = listado.getSelected() self.lblJuzgado.setText(self.__juzgado.getNombre()) vista = VerJuzgado(self.__juzgado, self) self.__dialogo.setWidget(vista) self.__dirty = True del(listado) def __cambiarCategoria(self): listado = ListadoDialogo(ListadoDialogo.CATEGORIA, self) if listado.exec_(): self.__categoria = listado.getSelected() self.lblCategoria.setText(unicode(self.__categoria)) self.__dirty = True del(listado) def __editarDemandante(self): if self.__demandante is not None and self.__demandante.getId_persona() is not "1": dialogo = NuevaPersona(persona = self.__demandante, parent = self) if dialogo.exec_(): self.lblDemandante.setText(self.__demandante.getNombre()) if (isinstance(self.__dialogo.getWidget(), VerPersona)): vista = VerPersona(self.__demandante, self) self.__dialogo.setWidget(vista) del(dialogo) def __editarDemandado(self): if self.__demandado is not None and self.__demandado.getId_persona() is not "1": dialogo = NuevaPersona(persona = self.__demandado, parent = self) if dialogo.exec_(): self.lblDemandado.setText(self.__demandado.getNombre()) if (isinstance(self.__dialogo.getWidget(), VerPersona)): vista = VerPersona(self.__demandado, self) self.__dialogo.setWidget(vista) del(dialogo) def __editarJuzgado(self): if self.__juzgado is not None and self.__juzgado.getId_juzgado() is not "1": dialogo = NuevoJuzgado(juzgado = self.__juzgado, parent = self) if dialogo.exec_(): self.lblJuzgado.setText(self.__juzgado.getNombre()) if (isinstance(self.__dialogo.getWidget(), VerJuzgado)): vista = VerJuzgado(self.__juzgado, self) self.__dialogo.setWidget(vista) del(dialogo) def __editarCategoria(self): if self.__categoria is not None and self.__categoria.getId_categoria() is not "1": dialogo = NuevaCategoria(self.__categoria, self) if dialogo.exec_(): self.lblCategoria.setText(self.__categoria.getNombre()) del(dialogo) def __createAction(self, text, slot = None): action = QtGui.QAction(text, self) if slot is not None: self.connect(action, QtCore.SIGNAL("triggered()"), slot) return action def accept(self): if len(self.txtNombre.text()): self.__gestor.organizarCampos(False) self.__guardar() else: QtGui.QMessageBox.information(self, 'Error', u'No se permite el nombre vacío') self.txtNombre.setFocus() def __guardar(self): if hasattr(self, '__dialogo'): del(self.__dialogo) guardar = True p = Persistence() nombre = self.txtNombre.text() demandante = self.__demandante demandado = self.__demandado juzgado = self.__juzgado radicado = self.txtRadicado.text() radicadoUnico = self.txtRadicadoUnico.text() estado = self.txtEstado.text() categoria = self.__categoria tipo = self.txtTipo.text() notas = self.txtNotas.toPlainText() prioridad = self.sbPrioridad.value() campos = self.__gestor.getCampos() if not self.__plantilla: plantilla = Plantilla(nombre = nombre, demandante = demandante, demandado = demandado, juzgado = juzgado, radicado = radicado, radicadoUnico = radicadoUnico, estado = estado, categoria = categoria, tipo = tipo, notas = notas, campos = campos, prioridad = prioridad) else: camposNuevos = self.__gestor.getCamposNuevos() camposEliminados = self.__gestor.getCamposEliminados() for campo in camposEliminados: p.borrarCampoPersonalizado(campo) for campo in camposNuevos: p.guardarCampoPersonalizado(campo, self.__plantilla.getId_proceso()) self.__plantilla.setNombre(nombre) self.__plantilla.setDemandante(demandante) self.__plantilla.setDemandado(demandado) self.__plantilla.setJuzgado(juzgado) self.__plantilla.setRadicado(radicado) self.__plantilla.setRadicadoUnico(radicadoUnico) self.__plantilla.setEstado(estado) self.__plantilla.setCategoria(categoria) self.__plantilla.setTipo(tipo) self.__plantilla.setNotas(notas) self.__plantilla.setPrioridad(prioridad) self.__plantilla.setCampos(campos) guardar = False try: if guardar: Persistence().guardarPlantilla(plantilla) self.__plantilla = plantilla else: Persistence().actualizarPlantilla(self.__plantilla) except sqlite3.IntegrityError: QtGui.QMessageBox.information(self, 'Error', 'El elemento ya existe') else: return QtGui.QDialog.accept(self) def getPlantilla(self): return self.__plantilla def reject(self): Util.reject(self, self.__dirty) def setDirty(self): sender = self.sender() if isinstance(sender, QtGui.QLineEdit) or isinstance(sender, QtGui.QTextEdit): self.__dirty = True self.disconnect(sender, QtCore.SIGNAL("textChanged()"), self.setDirty) elif isinstance(sender, QtGui.QDateTimeEdit): self.__dirty = True self.disconnect(sender, QtCore.SIGNAL("dateTimeChanded()"), self.setDirty)
class NuevoProceso(QtGui.QDialog, Ui_NuevoProceso): ''' classdocs ''' def __init__(self, proceso=None, plantilla=None, parent=None): ''' Constructor ''' super(NuevoProceso, self).__init__(parent) self.__dirty = False self.setupUi(self) if proceso is not None and plantilla is not None: raise TypeError("Solo se puede enviar el argumento plantilla o proceso sólo") if proceso is not None and not isinstance(proceso, Proceso): raise TypeError("El objeto proceso debe pertenecer a la clase Proceso") if plantilla is not None and not isinstance(plantilla, Plantilla): raise TypeError("El objeto plantilla debe pertenecer a la clase Plantilla") if proceso is not None: self.groupBox.setTitle("Datos del proceso:") self.setWindowTitle("Editar proceso") self.__proceso = proceso self.connect(self.btnAdd_2, QtCore.SIGNAL("clicked()"), self.addActuacion) campos = [] self.__actuaciones = [] self.__demandante = None self.__demandado = None self.__juzgado = None self.__categoria = Categoria("Ninguna", "1") self.sbPrioridad.setRange(0, 10) if self.__proceso is not None: self.__demandante = self.__proceso.getDemandante() self.__demandado = self.__proceso.getDemandado() self.__juzgado = self.__proceso.getJuzgado() self.__categoria = self.__proceso.getCategoria() campos = self.__proceso.getCampos() self.__actuaciones = copy(self.__proceso.getActuaciones()) self.lblDemandante.setText(self.__demandante.getNombre()) self.lblDemandado.setText(self.__demandado.getNombre()) self.lblJuzgado.setText(self.__juzgado.getNombre()) self.lblCategoria.setText(self.__categoria.getDescripcion()) self.txtRadicado.setText(self.__proceso.getRadicado()) self.txtRadicadoUnico.setText(self.__proceso.getRadicadoUnico()) self.txtTipo.setText(self.__proceso.getTipo()) self.txtEstado.setText(self.__proceso.getEstado()) self.sbPrioridad.setValue(self.__proceso.getPrioridad()) self.dteFecha.setDateTime(self.__proceso.getFecha()) self.txtNotas.setText(self.__proceso.getNotas()) elif plantilla is not None: self.__demandante = plantilla.getDemandante() self.__demandado = plantilla.getDemandado() self.__juzgado = plantilla.getJuzgado() self.__categoria = plantilla.getCategoria() campos = plantilla.getCampos() self.lblDemandante.setText(self.__demandante.getNombre()) self.lblDemandado.setText(self.__demandado.getNombre()) self.lblJuzgado.setText(self.__juzgado.getNombre()) self.lblCategoria.setText(self.__categoria.getDescripcion()) self.txtRadicado.setText(plantilla.getRadicado()) self.txtRadicadoUnico.setText(plantilla.getRadicadoUnico()) self.txtTipo.setText(plantilla.getTipo()) self.txtEstado.setText(plantilla.getEstado()) self.sbPrioridad.setValue(plantilla.getPrioridad()) self.txtNotas.setText(plantilla.getNotas()) self.dteFecha.setDateTime(datetime.today()) else: self.dteFecha.setDateTime(datetime.today()) self.cargarActuaciones() self.__dialogo = DialogoAuxiliar(self) self.__clickDemandante() self.__clickDemandado() self.__clickJuzgado() self.__clickCategoria() self.__clickFecha() cambiar = self.createAction("Cambiar", self.__cambiarJuzgado) cambiar.setData(self.lblJuzgado) editar = self.createAction("Editar", self.__editarJuzgado) editar.setData(self.lblJuzgado) self.lblJuzgado.addActions([cambiar, editar]) cambiar = self.createAction("Cambiar", self.__cambiarDemandante) cambiar.setData(self.lblDemandante) editar = self.createAction("Editar", self.__editarDemandante) editar.setData(self.lblDemandante) self.lblDemandante.addActions([cambiar, editar]) cambiar = self.createAction("Cambiar", self.__cambiarDemandado) cambiar.setData(self.lblDemandado) editar = self.createAction("Editar", self.__editarDemandado) editar.setData(self.lblDemandado) self.lblDemandado.addActions([cambiar, editar]) cambiar = self.createAction("Cambiar", self.__cambiarCategoria) cambiar.setData(self.lblCategoria) editar = self.createAction("Editar", self.__editarCategoria) editar.setData(self.lblCategoria) self.lblCategoria.addActions([cambiar, editar]) self.__gestor = GestorCampos(campos=campos, formLayout=self.formLayout, parent=self, constante_de_edicion=NuevoCampo.PROCESO, constante_de_creacion=ListadoDialogo.CAMPOPROCESOP) self.connect(self.btnAdd, QtCore.SIGNAL("clicked()"), self.__gestor.addCampo) self.txtRadicado.textChanged.connect(self.setDirty) self.txtRadicadoUnico.textChanged.connect(self.setDirty) self.txtTipo.textChanged.connect(self.setDirty) self.txtEstado.textChanged.connect(self.setDirty) self.sbPrioridad.valueChanged.connect(self.setDirty) self.dteFecha.dateTimeChanged.connect(self.setDirty) def __clickDemandante(self): dialogo = self.__dialogo widget = self lblDemandante = self.lblDemandante def mousePressEvent(self): if QtCore.Qt.MouseButton.LeftButton is self.button(): if widget.__demandante is not None and widget.__demandante.getId_persona() is not "1": vista = VerPersona(widget.__demandante, widget) dialogo.setWidget(vista) else: widget.__cambiarDemandante() return QtGui.QLabel.mousePressEvent(lblDemandante, self) self.lblDemandante.mousePressEvent = mousePressEvent def __clickDemandado(self): dialogo = self.__dialogo widget = self lblDemandado = self.lblDemandado def mousePressEvent(self): if QtCore.Qt.MouseButton.LeftButton is self.button(): if widget.__demandado is not None and widget.__demandado.getId_persona() is not "1": vista = VerPersona(widget.__demandado, widget) dialogo.setWidget(vista) else: widget.__cambiarDemandado() return QtGui.QLabel.mousePressEvent(lblDemandado, self) self.lblDemandado.mousePressEvent = mousePressEvent def __clickJuzgado(self): dialogo = self.__dialogo widget = self lblJuzgado = self.lblJuzgado def mousePressEvent(self): if QtCore.Qt.MouseButton.LeftButton is self.button(): if widget.__juzgado is not None and widget.__juzgado.getId_juzgado() is not "1": vista = VerJuzgado(widget.__juzgado, widget) dialogo.setWidget(vista) else: widget.__cambiarJuzgado() return QtGui.QLabel.mousePressEvent(lblJuzgado, self) self.lblJuzgado.mousePressEvent = mousePressEvent def __clickCategoria(self): widget = self lblCategoria = self.lblCategoria def mousePressEvent(self): if QtCore.Qt.MouseButton.LeftButton is self.button(): widget.__cambiarCategoria() return QtGui.QLabel.mousePressEvent(lblCategoria, self) self.lblCategoria.mousePressEvent = mousePressEvent def __clickFecha(self): dialogo = self.__dialogo dteFecha = self.dteFecha def focusInEvent(self): calendar = QtGui.QCalendarWidget() calendar.setSelectedDate(dteFecha.dateTime().date()) dialogo.setWidget(calendar) selectionChanged = lambda:dteFecha.setDate(calendar.selectedDate()) calendar.selectionChanged.connect(selectionChanged) return QtGui.QDateTimeEdit.focusInEvent(dteFecha, self) def dateChanged(date): calendar = dialogo.getWidget() calendar.setSelectedDate(date) dteFecha.focusInEvent = focusInEvent dteFecha.dateChanged.connect(dateChanged) def __cambiarDemandante(self): listado = ListadoDialogo(ListadoDialogo.DEMANDANTE, self) if listado.exec_(): self.__demandante = listado.getSelected() self.lblDemandante.setText(self.__demandante.getNombre()) vista = VerPersona(self.__demandante, self) self.__dialogo.setWidget(vista) self.__dirty = True del(listado) def __cambiarDemandado(self): listado = ListadoDialogo(ListadoDialogo.DEMANDADO, self) if listado.exec_(): self.__demandado = listado.getSelected() self.lblDemandado.setText(self.__demandado.getNombre()) vista = VerPersona(self.__demandado, self) self.__dialogo.setWidget(vista) self.__dirty = True del(listado) def __cambiarJuzgado(self): listado = ListadoDialogo(ListadoDialogo.JUZGADO, self) if listado.exec_(): self.__juzgado = listado.getSelected() self.lblJuzgado.setText(self.__juzgado.getNombre()) vista = VerJuzgado(self.__juzgado, self) self.__dialogo.setWidget(vista) self.__dirty = True del(listado) def __cambiarCategoria(self): listado = ListadoDialogo(ListadoDialogo.CATEGORIA, self) if listado.exec_(): self.__categoria = listado.getSelected() self.lblCategoria.setText(unicode(self.__categoria)) self.__dirty = True del(listado) def __editarDemandante(self): if self.__demandante is not None and self.__demandante.getId_persona() is not "1": dialogo = NuevaPersona(persona=self.__demandante, parent=self) if dialogo.exec_(): self.lblDemandante.setText(self.__demandante.getNombre()) if (isinstance(self.__dialogo.getWidget(), VerPersona)): vista = VerPersona(self.__demandante, self) self.__dialogo.setWidget(vista) del(dialogo) def __editarDemandado(self): if self.__demandado is not None and self.__demandado.getId_persona() is not "1": dialogo = NuevaPersona(persona=self.__demandado, parent=self) if dialogo.exec_(): self.lblDemandado.setText(self.__demandado.getNombre()) if (isinstance(self.__dialogo.getWidget(), VerPersona)): vista = VerPersona(self.__demandado, self) self.__dialogo.setWidget(vista) del(dialogo) def __editarJuzgado(self): if self.__juzgado is not None and self.__juzgado.getId_juzgado() is not "1": dialogo = NuevoJuzgado(juzgado=self.__juzgado, parent=self) if dialogo.exec_(): self.lblJuzgado.setText(self.__juzgado.getNombre()) if (isinstance(self.__dialogo.getWidget(), VerJuzgado)): vista = VerJuzgado(self.__juzgado, self) self.__dialogo.setWidget(vista) del(dialogo) def __editarCategoria(self): if self.__categoria is not None and self.__categoria.getId_categoria() is not "1": dialogo = NuevaCategoria(self.__categoria, self) if dialogo.exec_(): self.lblCategoria.setText(self.__categoria.getNombre()) del(dialogo) def accept(self): if self.__demandante is None or self.__demandante.getId_persona() is "1": message = QtGui.QMessageBox() message.setIcon(QtGui.QMessageBox.Warning) message.setText("El cliente se considera obligatorio") message.exec_() elif self.__demandado is None or self.__demandado.getId_persona() is "1": message = QtGui.QMessageBox() message.setIcon(QtGui.QMessageBox.Warning) message.setText("La contraparte se considera obligatorio") message.exec_() elif self.__juzgado is None or self.__juzgado.getId_juzgado() is "1": message = QtGui.QMessageBox() message.setIcon(QtGui.QMessageBox.Warning) message.setText("El juzgado se considera obligatorio") message.exec_() elif len(self.txtRadicado.text()) is 0: message = QtGui.QMessageBox() message.setIcon(QtGui.QMessageBox.Warning) message.setText("El radicado se considera obligatorio") message.exec_() self.txtRadicado.setFocus() elif self.__gestor.organizarCampos(): self.__guardar() def __guardar(self): if hasattr(self, '__dialogo'): del(self.__dialogo) guardar = True self.organizarActuaciones() p = Persistence() demandante = self.__demandante demandado = self.__demandado fecha = self.dteFecha.dateTime().toPython() juzgado = self.__juzgado radicado = self.txtRadicado.text() radicadoUnico = self.txtRadicadoUnico.text() actuaciones = self.__actuaciones estado = self.txtEstado.text() categoria = self.__categoria tipo = self.txtTipo.text() notas = self.txtNotas.toPlainText() prioridad = self.sbPrioridad.value() campos = self.__gestor.getCampos() if self.__proceso is None: proceso = Proceso(demandante=demandante, demandado=demandado, fecha=fecha, juzgado=juzgado, radicado=radicado, radicadoUnico=radicadoUnico, actuaciones=actuaciones, estado=estado, categoria=categoria, tipo=tipo, notas=notas, prioridad=prioridad, campos=campos) else: camposNuevos = self.__gestor.getCamposNuevos() camposEliminados = self.__gestor.getCamposEliminados() for campo in camposEliminados: p.borrarCampoPersonalizado(campo) for campo in camposNuevos: p.guardarCampoPersonalizado(campo, self.__proceso.getId_proceso()) self.__proceso.setDemandante(demandante) self.__proceso.setDemandado(demandado) self.__proceso.setFecha(fecha) self.__proceso.setJuzgado(juzgado) self.__proceso.setRadicado(radicado) self.__proceso.setRadicadoUnico(radicadoUnico) self.__proceso.setActuaciones(actuaciones) self.__proceso.setEstado(estado) self.__proceso.setCategoria(categoria) self.__proceso.setTipo(tipo) self.__proceso.setNotas(notas) self.__proceso.setPrioridad(prioridad) self.__proceso.setCampos(campos) guardar = False try: p = Persistence() if guardar: p.guardarProceso(proceso) self.__proceso = proceso else: p.actualizarProceso(self.__proceso) self.guardarCitas(actuaciones) except sqlite3.IntegrityError: QtGui.QMessageBox.information(self, 'Error', 'El elemento ya existe') else: return QtGui.QDialog.accept(self) @classmethod def guardarCitas(self, actuaciones): p = Persistence() gestor = GestorCitas() for actuacion in actuaciones: if hasattr(actuacion, 'cita'): if actuacion.cita: cita = actuacion.cita cita.setId_actuacion(actuacion.getId_actuacion()) if not cita.getId_cita(): p.guardarCitaCalendario(cita) else: p.actualizarCitaCalendario(cita) gestor.actualizarCitas() def getProceso(self): return self.__proceso def createAction(self, text, slot=None): action = QtGui.QAction(text, self) if slot is not None: self.connect(action, QtCore.SIGNAL("triggered()"), slot) return action def organizarActuaciones(self): if self.__proceso is not None: actuacionesOriginales = self.__proceso.getActuaciones() actuaciones = self.__actuaciones try: p = Persistence() for nuevaActuacion in actuaciones: if nuevaActuacion not in actuacionesOriginales: p.guardarActuacion(nuevaActuacion, self.__proceso.getId_proceso()) for viejaActuacion in actuacionesOriginales: if viejaActuacion not in actuaciones: p.borrarActuacion(viejaActuacion) except Exception, e: print "organizarActuaciones -> %s" % e
class NuevaPersona(QtGui.QDialog, Ui_NuevaPersona): def __init__(self, persona=None, tipo=None, parent=None): super(NuevaPersona, self).__init__(parent) self.__dirty = False if(persona is None and tipo is None): raise TypeError("Para crear una nueva persona debe pasar el argumento tipo") if persona is not None and not isinstance(persona, Persona): raise TypeError("El objeto persona debe ser de la clase Persona") self.__persona = persona self.setupUi(self) if self.__persona is not None: campos = persona.getCampos() self.__tipo = persona.getTipo() self.txtNombre.setText(self.__persona.getNombre()) self.txtCedula.setText(self.__persona.getId()) self.txtTelefono.setText(self.__persona.getTelefono()) self.txtDireccion.setText(self.__persona.getDireccion()) self.txtCorreo.setText(self.__persona.getCorreo()) self.txtNotas.setText(self.__persona.getNotas()) else: campos = [] self.__tipo = tipo if self.__tipo is 1: constante = ListadoDialogo.CAMPODEMANDADO if persona is None: self.setWindowTitle("Nuevo cliente") self.groupBox.setTitle("Ingrese los datos del nuevo cliente:") else: self.setWindowTitle("Editar cliente") self.groupBox.setTitle("Ingrese los datos del cliente:") elif self.__tipo is 2: constante = ListadoDialogo.CAMPODEMANDADO if persona is None: self.setWindowTitle("Nueva contraparte") self.groupBox.setTitle("Ingrese los datos de la nueva contraparte:") else: self.setWindowTitle("Editar contraparte") self.groupBox.setTitle("Ingrese los datos de la contraparte:") self.__gestor = GestorCampos(campos=campos, formLayout=self.formLayout, parent=self, constante_de_edicion=NuevoCampo.PERSONA, constante_de_creacion=constante) self.connect(self.btnAdd, QtCore.SIGNAL("clicked()"), self.__gestor.addCampo) self.txtNombre.textEdited.connect(self.setDirty) self.txtCedula.textEdited.connect(self.setDirty) self.txtCorreo.textEdited.connect(self.setDirty) self.txtDireccion.textEdited.connect(self.setDirty) self.txtNotas.textChanged.connect(self.setDirty) self.txtTelefono.textEdited.connect(self.setDirty) def getPersona(self): return self.__persona def __guardar(self): guardar = True tipo = self.__tipo nombre = self.txtNombre.text() cedula = self.txtCedula.text() telefono = self.txtTelefono.text() direccion = self.txtDireccion.text() correo = self.txtCorreo.text() notas = self.txtNotas.toPlainText() campos = self.__gestor.getCampos() if not self.__persona: self.__persona = Persona(tipo=tipo, id=cedula, nombre=nombre, telefono=telefono, direccion=direccion, correo=correo, notas=notas, campos=campos) else: camposNuevos = self.__gestor.getCamposNuevos() camposEliminados = self.__gestor.getCamposEliminados() for campo in camposEliminados: if self.__tipo is 1: Persistence().borrarCampoDemandante(campo) else: Persistence().borrarCampoDemandado(campo) for campo in camposNuevos: if self.__tipo is 1: Persistence().guardarCampoDemandante(campoPersonalizado=campo, id_demandante=self.__persona.getId_persona()) else: Persistence().guardarCampoDemandado(campoPersonalizado=campo, id_demandado=self.__persona.getId_persona()) self.__persona.setNombre(nombre) self.__persona.setId(cedula) self.__persona.setTelefono(telefono) self.__persona.setDireccion(direccion) self.__persona.setCorreo(correo) self.__persona.setNotas(notas) self.__persona.setCampos(campos) guardar = False try: if guardar: Persistence().guardarPersona(self.__persona) else: Persistence().actualizarPersona(self.__persona) except sqlite3.IntegrityError: if guardar: self.__persona = None QtGui.QMessageBox.information(self, 'Error', 'El elemento ya existe') else: return QtGui.QDialog.accept(self) def accept(self): if not len(self.txtNombre.text()): QtGui.QMessageBox.warning(self, 'Cambo obligatorio', 'El nombre se considera obligatorio') self.txtNombre.setFocus() elif not len(self.txtTelefono.text()): ret = QtGui.QMessageBox.question(self, 'Pregunta', u'¿Desea guardar sin agregar un teléfono?', QtGui.QMessageBox.Yes | QtGui.QMessageBox.No, QtGui.QMessageBox.No) if ret == QtGui.QMessageBox.No: self.txtTelefono.setFocus() elif self.__gestor.organizarCampos(): self.__guardar() elif self.__gestor.organizarCampos(): self.__guardar() def reject(self): Util.reject(self, self.__dirty) def setDirty(self): self.__dirty = True self.disconnect(self.sender(), QtCore.SIGNAL("textEdited()"), self.setDirty)