From 0ae18af9e49eb36e95b823f9b94fc0ca075c4716 Mon Sep 17 00:00:00 2001 From: "J.-S. Caux" <J.S.Caux@uva.nl> Date: Fri, 15 Nov 2019 10:15:24 +0100 Subject: [PATCH] Include user views (draft, to be deprecated in favour of Vue.js) --- apimail/models/stored_message.py | 5 ++- apimail/templates/apimail/message_detail.html | 1 + apimail/templates/apimail/message_list.html | 4 +++ apimail/urls.py | 32 +++++++++++++------ apimail/views.py | 15 +++++++++ 5 files changed, 47 insertions(+), 10 deletions(-) create mode 100644 apimail/templates/apimail/message_detail.html create mode 100644 apimail/templates/apimail/message_list.html create mode 100644 apimail/views.py diff --git a/apimail/models/stored_message.py b/apimail/models/stored_message.py index d9ccade77..d00ed5d2e 100644 --- a/apimail/models/stored_message.py +++ b/apimail/models/stored_message.py @@ -32,7 +32,10 @@ class StoredMessage(models.Model): ordering = ['-datetimestamp',] def get_absolute_url(self): - return reverse('apimail:stored_message_detail', kwargs={'uuid': self.uuid}) + return reverse('apimail:message_detail', kwargs={'uuid': self.uuid}) + + def get_absolute_url_api(self): + return reverse('apimail:api_stored_message_retrieve', kwargs={'uuid': self.uuid}) class StoredMessageAttachment(models.Model): diff --git a/apimail/templates/apimail/message_detail.html b/apimail/templates/apimail/message_detail.html new file mode 100644 index 000000000..3cbd38cb7 --- /dev/null +++ b/apimail/templates/apimail/message_detail.html @@ -0,0 +1 @@ +{{ object }} diff --git a/apimail/templates/apimail/message_list.html b/apimail/templates/apimail/message_list.html new file mode 100644 index 000000000..e783b3cb9 --- /dev/null +++ b/apimail/templates/apimail/message_list.html @@ -0,0 +1,4 @@ + +{% for message in object_list.all %} + {{ message }} +{% endfor %} diff --git a/apimail/urls.py b/apimail/urls.py index a4e7b0cfd..31cf5fad6 100644 --- a/apimail/urls.py +++ b/apimail/urls.py @@ -4,30 +4,44 @@ __license__ = "AGPL v3" from django.urls import path -from apimail.api import views +from apimail.api import views as apiviews +from . import views app_name = 'apimail' urlpatterns = [ - path( # /apimail/api/events + + # API + + path( # /mail/api/events 'api/events', - views.EventListAPIView.as_view(), + apiviews.EventListAPIView.as_view(), name='api_event_list' ), - path( # /apimail/api/event/<uuid> + path( # /mail/api/event/<uuid> 'api/event/<uuid:uuid>', - views.EventRetrieveAPIView.as_view(), + apiviews.EventRetrieveAPIView.as_view(), name='api_event_retrieve' ), - path( # /apimail/api/stored_messages + path( # /mail/api/stored_messages 'api/stored_messages', - views.StoredMessageListAPIView.as_view(), + apiviews.StoredMessageListAPIView.as_view(), name='api_stored_message_list' ), - path( # /apimail/api/stored_message/<uuid> + path( # /mail/api/stored_message/<uuid> 'api/stored_message/<uuid:uuid>', - views.StoredMessageRetrieveAPIView.as_view(), + apiviews.StoredMessageRetrieveAPIView.as_view(), name='api_stored_message_retrieve' ), + + + # User views + + path( # /mail/messages + 'messages', + views.StoredMessageListView.as_view(), + name='message_list' + ), + ] diff --git a/apimail/views.py b/apimail/views.py new file mode 100644 index 000000000..ca8cc813d --- /dev/null +++ b/apimail/views.py @@ -0,0 +1,15 @@ +__copyright__ = "Copyright © Stichting SciPost (SciPost Foundation)" +__license__ = "AGPL v3" + + +from django.views.generic.list import ListView + +from .models import StoredMessage + + +class StoredMessageListView(ListView): + model = StoredMessage + template_name = 'apimail/message_list.html' + + def get_queryset(self): + return StoredMessage.objects.filter_for_user(self.request.user) -- GitLab