diff --git a/apimail/models/stored_message.py b/apimail/models/stored_message.py index d9ccade77780f552056f74269bd6f8b92dce8af3..d00ed5d2e120fa63a49a0d10bdd10f0c620152ab 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 0000000000000000000000000000000000000000..3cbd38cb7ed6729afcb74e097108f9d0568e0bd9 --- /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 0000000000000000000000000000000000000000..e783b3cb9a1a4695a67a3e92d830bf5a220bd834 --- /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 a4e7b0cfda966d51234b7d4138b9396264c44adf..31cf5fad66c6564bd3cfd467ee84163bafdb09c7 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 0000000000000000000000000000000000000000..ca8cc813d2c94683153c63638c4de36f36c27a47 --- /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)