Update day 16

Signed-off-by: Manuel Vergara <manuel@vergaracarmona.es>
This commit is contained in:
Manuel Vergara 2023-05-24 00:36:13 +02:00
parent af00070aeb
commit 6d977ce83a
4 changed files with 43 additions and 2 deletions

View File

@ -773,6 +773,35 @@ Así nos desviará a la página de logueo sin no estamos registrados.
## 16.16. - Información específica de usuario ## 16.16. - Información específica de usuario
Cada usuario debe ver tan solo sus tareas, para eso vamos a añadir un nuevo usuario en el panel de administración de django. Así que en views.py vamos añadir el método GetContentData y sobreescribirlo en la calse de ListaPendientes:
```python
def get_context_data(self, **kwarg):
context = super().get_context_data(**kwarg)
context['tareas'] = context['tareas'].filter(usuario=self.request.user)
context['count'] = context['tareas'].filter(completo=False).count()
return context
```
Se puede ver dos filtros al contexto, el primero es para que solo se vea las tareas del usuario registrado y el segundo es para que solo se vean las tareas que no estén completas.
Ahora, con el nuevo usuario creado no veremos las tareas del anterior usuario:
![](../img/dia16_35.png)
Ahora, si un usuario crea una tarea queremos que se le asigne a si mismo, así que vamos a views.py y en la clase de CrearTarea redefinimos la función de form_valid:
```python
def form_valid(self, form):
form.instance.usuario = self.request.user
return super(CrearTarea, self).form_valid(form)
```
Y en la misma clase, donde tenemos que aparezcan todos los campos con __all__ tenemos que dar la lista para que no de la opción de escoger el usuario. También lo tendremos que hacer en EditarTarea:
```python
fields = ['titulo', 'descripcion', 'completo']
```
![](../img/dia16_36.png)
## 16.17. - Registrar nuevo usuario ## 16.17. - Registrar nuevo usuario
## 16.18. - Barra de búsquedas ## 16.18. - Barra de búsquedas

View File

@ -23,6 +23,13 @@ class ListaPendientes(LoginRequiredMixin, ListView):
model = Tarea model = Tarea
context_object_name = 'tareas' context_object_name = 'tareas'
def get_context_data(self, **kwarg):
context = super().get_context_data(**kwarg)
context['tareas'] = context['tareas'].filter(usuario=self.request.user)
context['count'] = context['tareas'].filter(completo=False).count()
return context
class DetalleTarea(LoginRequiredMixin, DetailView): class DetalleTarea(LoginRequiredMixin, DetailView):
model = Tarea model = Tarea
@ -32,13 +39,18 @@ class DetalleTarea(LoginRequiredMixin, DetailView):
class CrearTarea(LoginRequiredMixin, CreateView): class CrearTarea(LoginRequiredMixin, CreateView):
model = Tarea model = Tarea
fields = '__all__' fields = ['titulo', 'descripcion', 'completo']
success_url = reverse_lazy('tareas') success_url = reverse_lazy('tareas')
def form_valid(self, form):
form.instance.usuario = self.request.user
return super(CrearTarea, self).form_valid(form)
class EditarTarea(LoginRequiredMixin, UpdateView): class EditarTarea(LoginRequiredMixin, UpdateView):
model = Tarea model = Tarea
fields = '__all__' fields = ['titulo', 'descripcion', 'completo']
success_url = reverse_lazy('tareas') success_url = reverse_lazy('tareas')

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB