Curso-lenguaje-python/python-total/dia_16/mi_web/src/proyecto/base/views.py

61 lines
1.7 KiB
Python
Raw Normal View History

from django.shortcuts import render
from django.views.generic.list import ListView
from django.views.generic.detail import DetailView
from django.views.generic.edit import CreateView, UpdateView, DeleteView
from django.contrib.auth.views import LoginView
from django.contrib.auth.mixins import LoginRequiredMixin
from django.urls import reverse_lazy
from .models import Tarea
# Create your views here.
class Logueo(LoginView):
template_name = "base/login.html"
field = '__all__'
redirect_authenticated_user = True
def get_success_url(self):
return reverse_lazy('tareas')
class ListaPendientes(LoginRequiredMixin, ListView):
model = Tarea
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):
model = Tarea
context_object_name = 'tarea'
template_name = 'base/tarea.html'
class CrearTarea(LoginRequiredMixin, CreateView):
model = Tarea
fields = ['titulo', 'descripcion', 'completo']
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):
model = Tarea
fields = ['titulo', 'descripcion', 'completo']
success_url = reverse_lazy('tareas')
class EliminarTarea(LoginRequiredMixin, DeleteView):
model = Tarea
context_object_name = 'tarea'
success_url = reverse_lazy('tareas')