Ejemplo n.º 1
0
class Anotador:
    '''Representa una colección de Notas que se pueden etiquetar, modificar, y
    buscar'''
    def __init__(self):
        '''Inicializa el anotador con una lista vacía de Notas'''
        self.repositorio = Repositorio()
        self.notas = self.repositorio.get_all()

    def nueva_nota(self, texto, etiquetas=''):
        '''Crea una nueva nota y la agrega a la lista'''
        nota = Nota(texto, etiquetas)
        nota.id = self.repositorio.guardar(nota)
        self.notas.append(nota)
        return nota

    def _buscar_por_id(self, id_nota):
        '''Buscar la nota con el id dado'''
        for nota in self.notas:
            if str(nota.id) == str(id_nota):
                return nota
        return None

    def modificar_nota(self, id_nota, texto):
        '''Busca la nota con el id dado y modifica el texto'''
        nota = self._buscar_por_id(id_nota)
        if nota:
            nota.texto = texto
            self.repositorio.actualizar(nota)
            return True
        return False

    def modificar_etiquetas(self, id_nota, etiquetas):
        '''Busca la nota con el id dado y modifica las etiquetas'''
        nota = self._buscar_por_id(id_nota)
        if nota:
            nota.etiquetas = etiquetas
            self.repositorio.actualizar(nota)
            return True
        return False

    def buscar(self, filtro):
        '''Busca todas las notas que coincidan con el filtro dado'''
        return [nota for nota in self.notas if nota.coincide(filtro)]

    def eliminar_nota(self, id_nota):
        '''Busca la nota con el id dado y la elimina de la lista notas'''
        nota = self._buscar_por_id(id_nota)
        if nota:
            self.notas.remove(nota)
            self.repositorio.eliminar(nota)
            return True
        return False
Ejemplo n.º 2
0
class Gestion:
    def __init__(self):
        self.r = Repositorio()
        self.rt = Repositorio_Turno()
        self.pacientes = self.r.get_all()
        self.turnos = self.rt.get_all()

    def nuevo_paciente(self, apellido, nombre, dni, telefono, mail):
        paciente = Paciente(apellido, nombre, dni, telefono, mail)
        paciente.id = self.r.guardar(paciente)
        #self.pacientes.append(paciente)
        return paciente

    def _buscar_por_id(self, id_paciente):
        for paciente in self.pacientes:
            if str(paciente.id) == str(id_paciente):
                return paciente
        return None

    def modificar_paciente(self, id_paciente, apellido, nombre, dni, telefono,
                           mail):
        paciente = self._buscar_por_id(id_paciente)
        if paciente:
            paciente.apellido = apellido
            paciente.nombre = nombre
            paciente.dni = dni
            paciente.telefono = telefono
            paciente.mail = mail
            self.r.actualizar(paciente)
            return True
        return False

    def eliminar_paciente(self, id_paciente):
        paciente = self._buscar_por_id(id_paciente)
        if paciente:
            self.r.eliminar(paciente)
            return True
        return False

    def _buscar_turno_id(self, id_turno):
        for turno in self.turnos:
            if str(turno.id) == str(id_turno):
                return turno
        return None

    def asignar_turno(self, id_paciente, fecha_turno, hora, descripcion):
        paciente = self._buscar_por_id(id_paciente)
        turno = Turno(paciente, fecha_turno, hora, descripcion)
        turno.id = self.rt.guardar(turno)
        return turno

    def eliminar_turno(self, id_turno):
        turno = self._buscar_turno_id(id_turno)
        if turno:
            self.rt.eliminar(turno)
            return True
        return False

    def modificar_turno(self, id_turno, fecha_turno, hora, descripcion):
        turno = self._buscar_turno_id(id_turno)
        if turno:
            turno.fecha_turno = fecha_turno
            turno.hora = hora
            turno.descripcion = descripcion
            self.rt.actualizar(turno)
            #self.turnos.append(turno) #29/10 eliminado, corrigió error al actualizar el treeview
            return True
        return False

    def turnos_dia(self, filtro):
        return [turno for turno in self.turnos if turno.busqueda(filtro)]
Ejemplo n.º 3
0
class Gestion:
    def __init__(self):
        self.r = Repositorio()
        self.pacientes = self.r.get_all()
        #self.pacientes = []
        self.turnos = []

    def nuevo_paciente(self, apellido, nombre, dni, telefono, mail):
        paciente = Paciente(apellido, nombre, dni, telefono, mail)
        self.r.guardar(paciente)
        #self.pacientes.append(paciente)
        return paciente

    def _buscar_por_id(self, id_paciente):
        for paciente in self.pacientes:
            if str(paciente.id) == str(id_paciente):
                return paciente
        return None

    def modificar_paciente(self, id_paciente, apellido, nombre, dni, telefono,
                           mail):
        paciente = self._buscar_por_id(id_paciente)
        if paciente:
            paciente.apellido = apellido
            paciente.nombre = nombre
            paciente.dni = dni
            paciente.telefono = telefono
            paciente.mail = mail
            self.r.actualizar(paciente)  # !!
            return True
        return False

    def eliminar_paciente(self, id_paciente):
        paciente = self._buscar_por_id(id_paciente)
        if paciente:
            self.r.eliminar(paciente)
            #self.pacientes.remove(paciente)
            return True
        return False

    def _buscar_turno_id(self, id_turno):
        for turno in self.turnos:
            if str(turno.id_t) == str(id_turno):
                return paciente
        return None

    def asignar_turno(self, id_paciente, fecha_turno, hora, descripcion):
        paciente = self._buscar_por_id(id_paciente)
        turno = self.asignar_turno(paciente, fecha_turno, hora, descripcion)
        self.turnos.append(turno)

    def eliminar_turno(self, id_paciente):
        if turno:
            self.turnos.remove(turno)
            return True
        return False

    def modificar_turno(self, id_paciente, fecha_turno, hora, descripcion):
        paciente = self._buscar_por_id(id_paciente)
        if turno:
            turno.fecha_turno = fecha_turno
            turno.hora = hora
            turno.descripcion = descripcion
            return True
        return False