Sendmail: Allow to copy rules

This commit is contained in:
Raphael Michel
2024-02-21 17:54:45 +01:00
parent f9d78eaf1a
commit 2be790fa45
2 changed files with 16 additions and 0 deletions

View File

@@ -80,6 +80,7 @@
</td>
<td class="text-right flip">
<a class="btn btn-sm btn-default" href="{% url "plugins:sendmail:rule.schedule" organizer=request.organizer.slug event=request.event.slug rule=r.pk %}" data-toggle="tooltip" title="{% trans "Inspect scheduled times" %}"><i class="fa fa-list"></i></a>
<a class="btn btn-sm btn-default" href="{% url "plugins:sendmail:rule.create" organizer=request.organizer.slug event=request.event.slug %}?copy_from={{ r.pk }}" title="{% trans "Use as a template for a new rule" %}" data-toggle="tooltip"><i class="fa fa-copy"></i></a>
<a class="btn btn-sm btn-default" href="{% url "plugins:sendmail:rule.update" organizer=request.organizer.slug event=request.event.slug rule=r.pk %}"><i class="fa fa-edit"></i></a>
<a class="btn btn-sm btn-danger" href="{% url "plugins:sendmail:rule.delete" organizer=request.organizer.slug event=request.event.slug rule=r.pk %}"><i class="fa fa-trash"></i></a>
</td>

View File

@@ -62,6 +62,7 @@ from pretix.plugins.sendmail.tasks import (
)
from ...helpers.format import format_map
from ...helpers.models import modelcopy
from . import forms
from .models import Rule, ScheduledMail
@@ -573,9 +574,23 @@ class CreateRule(EventPermissionRequiredMixin, CreateView):
model = Rule
@cached_property
def copy_from(self):
if self.request.GET.get("copy_from") and not getattr(self, 'object', None):
try:
return Rule.objects.get(pk=self.request.GET.get("copy_from"), event=self.request.event)
except Rule.DoesNotExist:
pass
def get_form_kwargs(self):
kwargs = super().get_form_kwargs()
kwargs['event'] = self.request.event
if self.copy_from:
i = modelcopy(self.copy_from)
i.pk = None
i.redeemed = 0
kwargs["instance"] = i
return kwargs
def form_invalid(self, form):