From d8e2ce8224be3e63af39047a4f282193804cdda9 Mon Sep 17 00:00:00 2001 From: arielperezti Date: Sun, 27 Oct 2024 02:00:58 -0500 Subject: [PATCH] =?UTF-8?q?A=C3=B1adir=20listado=20de=20charlas=20propuest?= =?UTF-8?q?as=20(Issue=20#243)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Se agrega botón en la barra de navegación "My Talks" para los usuarios logueados. Este redirecciona a una página con el listado de charlas relacionadas a un usuario logueado. --- temii/talks/urls.py | 3 ++- temii/talks/views.py | 13 ++++++++++++- temii/templates/base.html | 3 +++ temii/templates/talks/talk_list.html | 24 ++++++++++++++++++++++++ 4 files changed, 41 insertions(+), 2 deletions(-) create mode 100644 temii/templates/talks/talk_list.html diff --git a/temii/talks/urls.py b/temii/talks/urls.py index 6a83092..523e5d1 100644 --- a/temii/talks/urls.py +++ b/temii/talks/urls.py @@ -1,11 +1,12 @@ from django.urls import path from django.views.generic import TemplateView -from .views import talk_create_view +from .views import talk_create_view, talk_list_view app_name = "talks" urlpatterns = [ path("", TemplateView.as_view(template_name="pages/about.html"), name="talks"), path("~create/", view=talk_create_view, name="create"), path("thanks/", TemplateView.as_view(template_name="talks/talk_thanks.html"), name="thanks"), + path("~my-talks/", view=talk_list_view, name="list"), ] diff --git a/temii/talks/views.py b/temii/talks/views.py index e7dac81..c4e0229 100644 --- a/temii/talks/views.py +++ b/temii/talks/views.py @@ -1,11 +1,22 @@ from django.contrib.auth.mixins import LoginRequiredMixin from django.urls import reverse_lazy +from django.views.generic import ListView from django.views.generic.edit import CreateView from .forms import NewTalkForm from .models import Talk +class TalkListView(LoginRequiredMixin, ListView): + """List all authenticated user talks.""" + + model = Talk + context_object_name = "talks" + template_name = "talks/list.html" + + def get_queryset(self): + return Talk.objects.filter(user=self.request.user) + class TalkCreateView(LoginRequiredMixin, CreateView): """Propose a new talk.""" @@ -18,5 +29,5 @@ def form_valid(self, form): form.instance.user = self.request.user return super().form_valid(form) - +talk_list_view = TalkListView.as_view() talk_create_view = TalkCreateView.as_view() diff --git a/temii/templates/base.html b/temii/templates/base.html index ed76ff5..3df8129 100644 --- a/temii/templates/base.html +++ b/temii/templates/base.html @@ -65,6 +65,9 @@ + diff --git a/temii/templates/talks/talk_list.html b/temii/templates/talks/talk_list.html new file mode 100644 index 0000000..7f5bcdd --- /dev/null +++ b/temii/templates/talks/talk_list.html @@ -0,0 +1,24 @@ +{% extends "base.html" %} +{% load i18n %} + +{% block title %}My Talks{% endblock %} + +{% block content %} + +

My Talks

+ +{% if talks %} +

Here you have all the talks you've proposed.

+{% endif %} + + + + + +{% endblock content %}