diff --git a/src/plainui/jinja2/plainui/personal_message_send.html.j2 b/src/plainui/jinja2/plainui/personal_message_send.html.j2 index 1877be6c2d4d2936090bc6a2e3dd19a66b1598bc..309837476d5504f1fb2c5184a912fd1aba12cd76 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 195d38beb6c25e802ddb1cef79bb5f3ed0554c20..0806dfd5786a42256641d5ba0a29ab8b068391d4 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):