forked from johnnyhanoi/anotador
/
anotador.py
57 lines (49 loc) · 1.86 KB
/
anotador.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
#! /usr/bin/env python3
from nota import Nota
from repositorio import Repositorio
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