Beispiel #1
0
 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)
Beispiel #2
0
def exportarActuacionesCSV(archivo, proceso, tab=False):
    if tab:
        writer = csv.writer(open(archivo,'wb'), dialect='excel-tab')
    else:
        writer = csv.writer(open(archivo,'wb'), dialect='excel')
    if not isinstance(proceso, Proceso):
        proceso = Persistence().consultarProceso(proceso)
    actuaciones = proceso.getActuaciones()
    writer.writerow(Actuacion.getHeaders())
    csvActuaciones = [actuacion.toCSV() for actuacion in actuaciones]
    writer.writerows(csvActuaciones)
Beispiel #3
0
def exportarActuacionesCriticasCSV(archivo, cantidadActuaciones, tab=False):
    if tab:
        writer = csv.writer(open(archivo,'wb'), dialect='excel-tab')
    else:
        writer = csv.writer(open(archivo,'wb'), dialect='excel')
    actuaciones = Persistence().consultarActuacionesCriticas(cantidadActuaciones)
    writer.writerow(Actuacion.getHeaders())
    csvActuaciones = [actuacion.toCSV() for actuacion in actuaciones]
    writer.writerows(csvActuaciones)

    
        
Beispiel #4
0
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)