From 468897086504c7cc04ffdee2e5b99c1dd9a2b63b Mon Sep 17 00:00:00 2001 From: Lucas Brandstaetter <lucas@brandstaetter.tech> Date: Sat, 7 Dec 2024 03:38:59 +0100 Subject: [PATCH] Add render of original message to reply form --- .../jinja2/plainui/personal_message_send.html.j2 | 11 ++++++++++- src/plainui/views/personal_messages.py | 9 +++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/src/plainui/jinja2/plainui/personal_message_send.html.j2 b/src/plainui/jinja2/plainui/personal_message_send.html.j2 index 1877be6c2..309837476 100644 --- a/src/plainui/jinja2/plainui/personal_message_send.html.j2 +++ b/src/plainui/jinja2/plainui/personal_message_send.html.j2 @@ -1,5 +1,6 @@ {% import "plainui/components/form_elements.html.j2" as form_elements %} {% import "plainui/components/nav.html.j2" as navMacro with context %} +{% from "plainui/components/markdown.html.j2" import markdown %} {% extends "plainui/base.html.j2" %} @@ -42,6 +43,14 @@ </div> </div> </form> - + {% if in_reply_to %} + <hr class="hub-spacer"> + <div class="p-0 m-0"> + <div class="hub-card"> + <h2 class="hub-head-main">{{ in_reply_to.subject }}</h2> + <div class="card-body">{{ markdown(in_reply_to_body, border=False) }}</div> + </div> + </div> + {% endif %} <hr class="hub-spacer"> {% endblock content %} diff --git a/src/plainui/views/personal_messages.py b/src/plainui/views/personal_messages.py index 195d38beb..0806dfd57 100644 --- a/src/plainui/views/personal_messages.py +++ b/src/plainui/views/personal_messages.py @@ -5,6 +5,8 @@ __all__ = ( 'PersonalMessageShowView', ) +import contextlib + from django_ratelimit.decorators import ratelimit from django.contrib import messages @@ -67,10 +69,17 @@ class PersonalMessageSendView(ConferenceRequiredMixin, FormView): form_class = NewDirectMessageForm def get_context_data(self, **kwargs): + in_reply_to_uuid = self.request.POST.get('in_reply_to', self.request.GET.get('in_reply_to', '')) + in_reply_to = None + if in_reply_to_uuid: + with contextlib.suppress(DirectMessage.DoesNotExist): + in_reply_to = DirectMessage.objects.filter(recipient=self.request.user, deleted_by_recipient=False).get(id=in_reply_to_uuid) return { **super().get_context_data(**kwargs), 'conf': self.conf, 'disable_share': True, + 'in_reply_to': in_reply_to, + 'in_reply_to_body': render_markdown(self.conf, in_reply_to.body) if in_reply_to else '', } def get_initial(self): -- GitLab