[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
This commit is contained in:
asv-hungvt
2017-05-06 19:39:48 +07:00
committed by Raphael Michel
parent 27d6f24c3c
commit 5eac3cf9cf
2 changed files with 15 additions and 1 deletions

View File

@@ -29,6 +29,7 @@
<pre>{{ value.message|linebreaksbr }}</pre> <pre>{{ value.message|linebreaksbr }}</pre>
{% endfor %} {% endfor %}
</p> </p>
<a href="{% url 'plugins:sendmail:send' organizer=request.event.organizer.slug event=request.event.slug %}?from_log={{ log.id }}">{% trans "Send a new email based on this" %}</a>
</li> </li>
{% endfor %} {% endfor %}
</ul> </ul>

View File

@@ -4,13 +4,14 @@ from datetime import timedelta
import pytz import pytz
from django.contrib import messages from django.contrib import messages
from django.db.models import Q from django.db.models import Q
from django.http import Http404
from django.shortcuts import redirect from django.shortcuts import redirect
from django.utils.formats import date_format from django.utils.formats import date_format
from django.utils.timezone import now from django.utils.timezone import now
from django.utils.translation import ugettext_lazy as _ from django.utils.translation import ugettext_lazy as _
from django.views.generic import FormView, ListView 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.models import LogEntry, Order
from pretix.base.services.mail import SendMailException, mail from pretix.base.services.mail import SendMailException, mail
from pretix.control.permissions import EventPermissionRequiredMixin from pretix.control.permissions import EventPermissionRequiredMixin
@@ -29,6 +30,18 @@ class SenderView(EventPermissionRequiredMixin, FormView):
def get_form_kwargs(self): def get_form_kwargs(self):
kwargs = super().get_form_kwargs() kwargs = super().get_form_kwargs()
kwargs['event'] = self.request.event 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 return kwargs
def form_invalid(self, form): def form_invalid(self, form):