From 5eac3cf9cf931fd803d62270c46c0cf005e119fc Mon Sep 17 00:00:00 2001
From: asv-hungvt
Date: Sat, 6 May 2017 19:39:48 +0700
Subject: [PATCH] [WIP] Fix #447 -- Sendmail plugin: Create new mail based on
an old one (#476)
* send old email content to the new one
* error key event
* test commit
* query bad ID
* query bad ID
* query bad ID
* query bad ID
---
.../templates/pretixplugins/sendmail/history.html | 1 +
src/pretix/plugins/sendmail/views.py | 15 ++++++++++++++-
2 files changed, 15 insertions(+), 1 deletion(-)
diff --git a/src/pretix/plugins/sendmail/templates/pretixplugins/sendmail/history.html b/src/pretix/plugins/sendmail/templates/pretixplugins/sendmail/history.html
index afe60a92ff..53b7593c2d 100644
--- a/src/pretix/plugins/sendmail/templates/pretixplugins/sendmail/history.html
+++ b/src/pretix/plugins/sendmail/templates/pretixplugins/sendmail/history.html
@@ -29,6 +29,7 @@
{{ value.message|linebreaksbr }}
{% endfor %}
+ {% trans "Send a new email based on this" %}
{% endfor %}
diff --git a/src/pretix/plugins/sendmail/views.py b/src/pretix/plugins/sendmail/views.py
index 0e2512559b..7963db9332 100644
--- a/src/pretix/plugins/sendmail/views.py
+++ b/src/pretix/plugins/sendmail/views.py
@@ -4,13 +4,14 @@ from datetime import timedelta
import pytz
from django.contrib import messages
from django.db.models import Q
+from django.http import Http404
from django.shortcuts import redirect
from django.utils.formats import date_format
from django.utils.timezone import now
from django.utils.translation import ugettext_lazy as _
from django.views.generic import FormView, ListView
-from pretix.base.i18n import language
+from pretix.base.i18n import LazyI18nString, language
from pretix.base.models import LogEntry, Order
from pretix.base.services.mail import SendMailException, mail
from pretix.control.permissions import EventPermissionRequiredMixin
@@ -29,6 +30,18 @@ class SenderView(EventPermissionRequiredMixin, FormView):
def get_form_kwargs(self):
kwargs = super().get_form_kwargs()
kwargs['event'] = self.request.event
+ if 'from_log' in self.request.GET:
+ try:
+ from_log_id = self.request.GET.get('from_log')
+ logentry = LogEntry.objects.get(
+ id=from_log_id,
+ event=self.request.event,
+ action_type='pretix.plugins.sendmail.sent'
+ )
+ message = LazyI18nString(logentry.parsed_data['message'])
+ kwargs['initial'] = {'message': message}
+ except LogEntry.DoesNotExist:
+ raise Http404(_('You supplied an invalid log entry ID'))
return kwargs
def form_invalid(self, form):