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 @@
Here you have all the talks you've proposed.
+{% endif %} + +