mirror of
https://github.com/pretix/pretix.git
synced 2026-05-04 15:04:03 +00:00
Sendmail: Allow to copy rules
This commit is contained in:
@@ -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>
|
||||
|
||||
@@ -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):
|
||||
|
||||
Reference in New Issue
Block a user