mirror of
https://github.com/pretix/pretix.git
synced 2026-05-07 15:34:02 +00:00
Consistently use messages framework in control
simplify redirect(reserve()) calls
This commit is contained in:
@@ -2,11 +2,6 @@
|
|||||||
{% load i18n %}
|
{% load i18n %}
|
||||||
{% load bootstrap3 %}
|
{% load bootstrap3 %}
|
||||||
{% block inside %}
|
{% block inside %}
|
||||||
{% if "success" in request.GET %}
|
|
||||||
<div class="alert alert-success">
|
|
||||||
{% trans "Your changes have been saved." %}
|
|
||||||
</div>
|
|
||||||
{% endif %}
|
|
||||||
<form action="" method="post" class="form-horizontal">
|
<form action="" method="post" class="form-horizontal">
|
||||||
{% csrf_token %}
|
{% csrf_token %}
|
||||||
<fieldset>
|
<fieldset>
|
||||||
|
|||||||
@@ -3,19 +3,6 @@
|
|||||||
{% block title %}{% trans "Product categories" %}{% endblock %}
|
{% block title %}{% trans "Product categories" %}{% endblock %}
|
||||||
{% block inside %}
|
{% block inside %}
|
||||||
<h1>{% trans "Product categories" %}</h1>
|
<h1>{% trans "Product categories" %}</h1>
|
||||||
{% if "updated" in request.GET %}
|
|
||||||
<div class="alert alert-success">
|
|
||||||
{% trans "Your changes have been saved." %}
|
|
||||||
</div>
|
|
||||||
{% elif "created" in request.GET %}
|
|
||||||
<div class="alert alert-success">
|
|
||||||
{% trans "A new category has been created." %}
|
|
||||||
</div>
|
|
||||||
{% elif "deleted" in request.GET %}
|
|
||||||
<div class="alert alert-success">
|
|
||||||
{% trans "The category has been deleted." %}
|
|
||||||
</div>
|
|
||||||
{% endif %}
|
|
||||||
<p>
|
<p>
|
||||||
<a href="{% url "control:event.items.categories.add" organizer=request.event.organizer.slug event=request.event.slug %}" class="btn btn-default"><i class="fa fa-plus"></i> {% trans "Create new category" %}</a>
|
<a href="{% url "control:event.items.categories.add" organizer=request.event.organizer.slug event=request.event.slug %}" class="btn btn-default"><i class="fa fa-plus"></i> {% trans "Create new category" %}</a>
|
||||||
</p>
|
</p>
|
||||||
|
|||||||
@@ -3,19 +3,6 @@
|
|||||||
{% block title %}{% trans "Product properties" %}{% endblock %}
|
{% block title %}{% trans "Product properties" %}{% endblock %}
|
||||||
{% block inside %}
|
{% block inside %}
|
||||||
<h1>{% trans "Product properties" %}</h1>
|
<h1>{% trans "Product properties" %}</h1>
|
||||||
{% if "updated" in request.GET %}
|
|
||||||
<div class="alert alert-success">
|
|
||||||
{% trans "Your changes have been saved." %}
|
|
||||||
</div>
|
|
||||||
{% elif "created" in request.GET %}
|
|
||||||
<div class="alert alert-success">
|
|
||||||
{% trans "A new property has been created." %}
|
|
||||||
</div>
|
|
||||||
{% elif "deleted" in request.GET %}
|
|
||||||
<div class="alert alert-success">
|
|
||||||
{% trans "The property has been deleted." %}
|
|
||||||
</div>
|
|
||||||
{% endif %}
|
|
||||||
<p>
|
<p>
|
||||||
<a href="{% url "control:event.items.properties.add" organizer=request.event.organizer.slug event=request.event.slug %}" class="btn btn-default"><i class="fa fa-plus"></i> {% trans "Create new property" %}</a>
|
<a href="{% url "control:event.items.properties.add" organizer=request.event.organizer.slug event=request.event.slug %}" class="btn btn-default"><i class="fa fa-plus"></i> {% trans "Create new property" %}</a>
|
||||||
</p>
|
</p>
|
||||||
|
|||||||
@@ -7,11 +7,6 @@
|
|||||||
<h1>{% trans "Product property" %}</h1>
|
<h1>{% trans "Product property" %}</h1>
|
||||||
<form action="" method="post" class="form-horizontal">
|
<form action="" method="post" class="form-horizontal">
|
||||||
{% csrf_token %}
|
{% csrf_token %}
|
||||||
{% if "success" in request.GET %}
|
|
||||||
<div class="alert alert-success">
|
|
||||||
{% trans "Your changes have been saved." %}
|
|
||||||
</div>
|
|
||||||
{% endif %}
|
|
||||||
<fieldset>
|
<fieldset>
|
||||||
<legend>{% trans "General information" %}</legend>
|
<legend>{% trans "General information" %}</legend>
|
||||||
{% bootstrap_field form.name layout="horizontal" %}
|
{% bootstrap_field form.name layout="horizontal" %}
|
||||||
|
|||||||
@@ -6,11 +6,6 @@
|
|||||||
<h1>{% trans "Question" %}</h1>
|
<h1>{% trans "Question" %}</h1>
|
||||||
<form action="" method="post" class="form-horizontal">
|
<form action="" method="post" class="form-horizontal">
|
||||||
{% csrf_token %}
|
{% csrf_token %}
|
||||||
{% if "success" in request.GET %}
|
|
||||||
<div class="alert alert-success">
|
|
||||||
{% trans "Your changes have been saved." %}
|
|
||||||
</div>
|
|
||||||
{% endif %}
|
|
||||||
<fieldset>
|
<fieldset>
|
||||||
<legend>{% trans "General information" %}</legend>
|
<legend>{% trans "General information" %}</legend>
|
||||||
{% bootstrap_field form.question layout="horizontal" %}
|
{% bootstrap_field form.question layout="horizontal" %}
|
||||||
|
|||||||
@@ -3,19 +3,6 @@
|
|||||||
{% block title %}{% trans "Questions" %}{% endblock %}
|
{% block title %}{% trans "Questions" %}{% endblock %}
|
||||||
{% block inside %}
|
{% block inside %}
|
||||||
<h1>{% trans "Questions" %}</h1>
|
<h1>{% trans "Questions" %}</h1>
|
||||||
{% if "updated" in request.GET %}
|
|
||||||
<div class="alert alert-success">
|
|
||||||
{% trans "Your changes have been saved." %}
|
|
||||||
</div>
|
|
||||||
{% elif "created" in request.GET %}
|
|
||||||
<div class="alert alert-success">
|
|
||||||
{% trans "A new question has been created." %}
|
|
||||||
</div>
|
|
||||||
{% elif "deleted" in request.GET %}
|
|
||||||
<div class="alert alert-success">
|
|
||||||
{% trans "The question has been deleted." %}
|
|
||||||
</div>
|
|
||||||
{% endif %}
|
|
||||||
<p>
|
<p>
|
||||||
<a href="{% url "control:event.items.questions.add" organizer=request.event.organizer.slug event=request.event.slug %}" class="btn btn-default"><i class="fa fa-plus"></i> {% trans "Create new question" %}</a>
|
<a href="{% url "control:event.items.questions.add" organizer=request.event.organizer.slug event=request.event.slug %}" class="btn btn-default"><i class="fa fa-plus"></i> {% trans "Create new question" %}</a>
|
||||||
</p>
|
</p>
|
||||||
|
|||||||
@@ -6,11 +6,6 @@
|
|||||||
<h1>{% trans "Quota" %}</h1>
|
<h1>{% trans "Quota" %}</h1>
|
||||||
<form action="" method="post" class="form-horizontal">
|
<form action="" method="post" class="form-horizontal">
|
||||||
{% csrf_token %}
|
{% csrf_token %}
|
||||||
{% if "success" in request.GET %}
|
|
||||||
<div class="alert alert-success">
|
|
||||||
{% trans "Your changes have been saved." %}
|
|
||||||
</div>
|
|
||||||
{% endif %}
|
|
||||||
<fieldset>
|
<fieldset>
|
||||||
<legend>{% trans "General information" %}</legend>
|
<legend>{% trans "General information" %}</legend>
|
||||||
{% bootstrap_field form.name layout="horizontal" %}
|
{% bootstrap_field form.name layout="horizontal" %}
|
||||||
|
|||||||
@@ -3,19 +3,6 @@
|
|||||||
{% block title %}{% trans "Quotas" %}{% endblock %}
|
{% block title %}{% trans "Quotas" %}{% endblock %}
|
||||||
{% block inside %}
|
{% block inside %}
|
||||||
<h1>{% trans "Quotas" %}</h1>
|
<h1>{% trans "Quotas" %}</h1>
|
||||||
{% if "updated" in request.GET %}
|
|
||||||
<div class="alert alert-success">
|
|
||||||
{% trans "Your changes have been saved." %}
|
|
||||||
</div>
|
|
||||||
{% elif "created" in request.GET %}
|
|
||||||
<div class="alert alert-success">
|
|
||||||
{% trans "A new quota has been created." %}
|
|
||||||
</div>
|
|
||||||
{% elif "deleted" in request.GET %}
|
|
||||||
<div class="alert alert-success">
|
|
||||||
{% trans "The quota has been deleted." %}
|
|
||||||
</div>
|
|
||||||
{% endif %}
|
|
||||||
<p>
|
<p>
|
||||||
<a href="{% url "control:event.items.quotas.add" organizer=request.event.organizer.slug event=request.event.slug %}" class="btn btn-default"><i class="fa fa-plus"></i> {% trans "Create a new quota" %}</a>
|
<a href="{% url "control:event.items.quotas.add" organizer=request.event.organizer.slug event=request.event.slug %}" class="btn btn-default"><i class="fa fa-plus"></i> {% trans "Create a new quota" %}</a>
|
||||||
</p>
|
</p>
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
from itertools import product
|
from itertools import product
|
||||||
|
from django.contrib import messages
|
||||||
from django.db import transaction
|
from django.db import transaction
|
||||||
from django.forms import BooleanField
|
from django.forms import BooleanField
|
||||||
from django.utils.functional import cached_property
|
from django.utils.functional import cached_property
|
||||||
@@ -64,13 +65,14 @@ class CategoryDelete(EventPermissionRequiredMixin, DeleteView):
|
|||||||
item.save()
|
item.save()
|
||||||
success_url = self.get_success_url()
|
success_url = self.get_success_url()
|
||||||
self.object.delete()
|
self.object.delete()
|
||||||
|
messages.success(request, _('The selected category has been deleted.'))
|
||||||
return HttpResponseRedirect(success_url)
|
return HttpResponseRedirect(success_url)
|
||||||
|
|
||||||
def get_success_url(self) -> str:
|
def get_success_url(self) -> str:
|
||||||
return reverse('control:event.items.categories', kwargs={
|
return reverse('control:event.items.categories', kwargs={
|
||||||
'organizer': self.request.event.organizer.slug,
|
'organizer': self.request.event.organizer.slug,
|
||||||
'event': self.request.event.slug,
|
'event': self.request.event.slug,
|
||||||
}) + '?deleted=true'
|
})
|
||||||
|
|
||||||
|
|
||||||
class CategoryUpdate(EventPermissionRequiredMixin, UpdateView):
|
class CategoryUpdate(EventPermissionRequiredMixin, UpdateView):
|
||||||
@@ -86,11 +88,15 @@ class CategoryUpdate(EventPermissionRequiredMixin, UpdateView):
|
|||||||
identity=url.kwargs['category']
|
identity=url.kwargs['category']
|
||||||
)
|
)
|
||||||
|
|
||||||
|
def form_valid(self, form):
|
||||||
|
messages.success(self.request, _('Your changes have been saved.'))
|
||||||
|
return super().form_valid(form)
|
||||||
|
|
||||||
def get_success_url(self) -> str:
|
def get_success_url(self) -> str:
|
||||||
return reverse('control:event.items.categories', kwargs={
|
return reverse('control:event.items.categories', kwargs={
|
||||||
'organizer': self.request.event.organizer.slug,
|
'organizer': self.request.event.organizer.slug,
|
||||||
'event': self.request.event.slug,
|
'event': self.request.event.slug,
|
||||||
}) + '?updated=true'
|
})
|
||||||
|
|
||||||
|
|
||||||
class CategoryCreate(EventPermissionRequiredMixin, CreateView):
|
class CategoryCreate(EventPermissionRequiredMixin, CreateView):
|
||||||
@@ -104,10 +110,11 @@ class CategoryCreate(EventPermissionRequiredMixin, CreateView):
|
|||||||
return reverse('control:event.items.categories', kwargs={
|
return reverse('control:event.items.categories', kwargs={
|
||||||
'organizer': self.request.event.organizer.slug,
|
'organizer': self.request.event.organizer.slug,
|
||||||
'event': self.request.event.slug,
|
'event': self.request.event.slug,
|
||||||
}) + '?created=true'
|
})
|
||||||
|
|
||||||
def form_valid(self, form):
|
def form_valid(self, form):
|
||||||
form.instance.event = self.request.event
|
form.instance.event = self.request.event
|
||||||
|
messages.success(self.request, _('The new category has been created.'))
|
||||||
return super().form_valid(form)
|
return super().form_valid(form)
|
||||||
|
|
||||||
|
|
||||||
@@ -146,19 +153,17 @@ def category_move(request, category, up=True):
|
|||||||
@event_permission_required("can_change_items")
|
@event_permission_required("can_change_items")
|
||||||
def category_move_up(request, organizer, event, category):
|
def category_move_up(request, organizer, event, category):
|
||||||
category_move(request, category, up=True)
|
category_move(request, category, up=True)
|
||||||
return redirect(reverse('control:event.items.categories', kwargs={
|
return redirect('control:event.items.categories',
|
||||||
'organizer': request.event.organizer.slug,
|
organizer=request.event.organizer.slug,
|
||||||
'event': request.event.slug,
|
event=request.event.slug)
|
||||||
}) + '?ordered=true')
|
|
||||||
|
|
||||||
|
|
||||||
@event_permission_required("can_change_items")
|
@event_permission_required("can_change_items")
|
||||||
def category_move_down(request, organizer, event, category):
|
def category_move_down(request, organizer, event, category):
|
||||||
category_move(request, category, up=False)
|
category_move(request, category, up=False)
|
||||||
return redirect(reverse('control:event.items.categories', kwargs={
|
return redirect('control:event.items.categories',
|
||||||
'organizer': request.event.organizer.slug,
|
organizer=request.event.organizer.slug,
|
||||||
'event': request.event.slug,
|
event=request.event.slug)
|
||||||
}) + '?ordered=true')
|
|
||||||
|
|
||||||
|
|
||||||
class PropertyList(ListView):
|
class PropertyList(ListView):
|
||||||
@@ -207,7 +212,7 @@ class PropertyUpdate(EventPermissionRequiredMixin, UpdateView):
|
|||||||
'organizer': self.request.event.organizer.slug,
|
'organizer': self.request.event.organizer.slug,
|
||||||
'event': self.request.event.slug,
|
'event': self.request.event.slug,
|
||||||
'property': self.kwargs['property']
|
'property': self.kwargs['property']
|
||||||
}) + '?success=true'
|
})
|
||||||
|
|
||||||
def get_formset(self):
|
def get_formset(self):
|
||||||
formsetclass = inlineformset_factory(
|
formsetclass = inlineformset_factory(
|
||||||
@@ -238,6 +243,8 @@ class PropertyUpdate(EventPermissionRequiredMixin, UpdateView):
|
|||||||
f.instance = f.instance.clone()
|
f.instance = f.instance.clone()
|
||||||
f.instance.position = i
|
f.instance.position = i
|
||||||
f.instance.save()
|
f.instance.save()
|
||||||
|
|
||||||
|
messages.success(self.request, _('Your changes have been saved.'))
|
||||||
return super().form_valid(form)
|
return super().form_valid(form)
|
||||||
|
|
||||||
def post(self, request, *args, **kwargs):
|
def post(self, request, *args, **kwargs):
|
||||||
@@ -262,7 +269,7 @@ class PropertyCreate(EventPermissionRequiredMixin, CreateView):
|
|||||||
return reverse('control:event.items.properties', kwargs={
|
return reverse('control:event.items.properties', kwargs={
|
||||||
'organizer': self.request.event.organizer.slug,
|
'organizer': self.request.event.organizer.slug,
|
||||||
'event': self.request.event.slug,
|
'event': self.request.event.slug,
|
||||||
}) + '?created=true'
|
})
|
||||||
|
|
||||||
def get_formset(self):
|
def get_formset(self):
|
||||||
formsetclass = inlineformset_factory(
|
formsetclass = inlineformset_factory(
|
||||||
@@ -289,6 +296,7 @@ class PropertyCreate(EventPermissionRequiredMixin, CreateView):
|
|||||||
f.instance.position = i
|
f.instance.position = i
|
||||||
f.instance.prop = form.instance
|
f.instance.prop = form.instance
|
||||||
f.instance.save()
|
f.instance.save()
|
||||||
|
messages.success(self.request, _('The new property has been created.'))
|
||||||
return resp
|
return resp
|
||||||
|
|
||||||
def post(self, request, *args, **kwargs):
|
def post(self, request, *args, **kwargs):
|
||||||
@@ -328,6 +336,7 @@ class PropertyDelete(EventPermissionRequiredMixin, DeleteView):
|
|||||||
if self.is_allowed():
|
if self.is_allowed():
|
||||||
success_url = self.get_success_url()
|
success_url = self.get_success_url()
|
||||||
self.get_object().delete()
|
self.get_object().delete()
|
||||||
|
messages.success(request, _('The selected property has been deleted.'))
|
||||||
return HttpResponseRedirect(success_url)
|
return HttpResponseRedirect(success_url)
|
||||||
else:
|
else:
|
||||||
return HttpResponseForbidden()
|
return HttpResponseForbidden()
|
||||||
@@ -336,7 +345,7 @@ class PropertyDelete(EventPermissionRequiredMixin, DeleteView):
|
|||||||
return reverse('control:event.items.properties', kwargs={
|
return reverse('control:event.items.properties', kwargs={
|
||||||
'organizer': self.request.event.organizer.slug,
|
'organizer': self.request.event.organizer.slug,
|
||||||
'event': self.request.event.slug,
|
'event': self.request.event.slug,
|
||||||
}) + '?deleted=true'
|
})
|
||||||
|
|
||||||
|
|
||||||
class QuestionList(ListView):
|
class QuestionList(ListView):
|
||||||
@@ -380,13 +389,14 @@ class QuestionDelete(EventPermissionRequiredMixin, DeleteView):
|
|||||||
self.object = self.get_object()
|
self.object = self.get_object()
|
||||||
success_url = self.get_success_url()
|
success_url = self.get_success_url()
|
||||||
self.object.delete()
|
self.object.delete()
|
||||||
|
messages.success(request, _('The selected question has been deleted.'))
|
||||||
return HttpResponseRedirect(success_url)
|
return HttpResponseRedirect(success_url)
|
||||||
|
|
||||||
def get_success_url(self) -> str:
|
def get_success_url(self) -> str:
|
||||||
return reverse('control:event.items.questions', kwargs={
|
return reverse('control:event.items.questions', kwargs={
|
||||||
'organizer': self.request.event.organizer.slug,
|
'organizer': self.request.event.organizer.slug,
|
||||||
'event': self.request.event.slug,
|
'event': self.request.event.slug,
|
||||||
}) + '?deleted=true'
|
})
|
||||||
|
|
||||||
|
|
||||||
class QuestionUpdate(EventPermissionRequiredMixin, UpdateView):
|
class QuestionUpdate(EventPermissionRequiredMixin, UpdateView):
|
||||||
@@ -401,11 +411,15 @@ class QuestionUpdate(EventPermissionRequiredMixin, UpdateView):
|
|||||||
identity=self.kwargs['question']
|
identity=self.kwargs['question']
|
||||||
)
|
)
|
||||||
|
|
||||||
|
def form_valid(self, form):
|
||||||
|
messages.success(self.request, _('Your changes have been saved.'))
|
||||||
|
return super().form_valid(form)
|
||||||
|
|
||||||
def get_success_url(self) -> str:
|
def get_success_url(self) -> str:
|
||||||
return reverse('control:event.items.questions', kwargs={
|
return reverse('control:event.items.questions', kwargs={
|
||||||
'organizer': self.request.event.organizer.slug,
|
'organizer': self.request.event.organizer.slug,
|
||||||
'event': self.request.event.slug,
|
'event': self.request.event.slug,
|
||||||
}) + '?updated=true'
|
})
|
||||||
|
|
||||||
|
|
||||||
class QuestionCreate(EventPermissionRequiredMixin, CreateView):
|
class QuestionCreate(EventPermissionRequiredMixin, CreateView):
|
||||||
@@ -419,10 +433,11 @@ class QuestionCreate(EventPermissionRequiredMixin, CreateView):
|
|||||||
return reverse('control:event.items.questions', kwargs={
|
return reverse('control:event.items.questions', kwargs={
|
||||||
'organizer': self.request.event.organizer.slug,
|
'organizer': self.request.event.organizer.slug,
|
||||||
'event': self.request.event.slug,
|
'event': self.request.event.slug,
|
||||||
}) + '?created=true'
|
})
|
||||||
|
|
||||||
def form_valid(self, form):
|
def form_valid(self, form):
|
||||||
form.instance.event = self.request.event
|
form.instance.event = self.request.event
|
||||||
|
messages.success(self.request, _('The new question has been created.'))
|
||||||
return super().form_valid(form)
|
return super().form_valid(form)
|
||||||
|
|
||||||
|
|
||||||
@@ -538,10 +553,11 @@ class QuotaCreate(EventPermissionRequiredMixin, QuotaEditorMixin, CreateView):
|
|||||||
return reverse('control:event.items.quotas', kwargs={
|
return reverse('control:event.items.quotas', kwargs={
|
||||||
'organizer': self.request.event.organizer.slug,
|
'organizer': self.request.event.organizer.slug,
|
||||||
'event': self.request.event.slug,
|
'event': self.request.event.slug,
|
||||||
}) + '?created=true'
|
})
|
||||||
|
|
||||||
def form_valid(self, form):
|
def form_valid(self, form):
|
||||||
form.instance.event = self.request.event
|
form.instance.event = self.request.event
|
||||||
|
messages.success(self.request, _('The new quota has been created.'))
|
||||||
return super().form_valid(form)
|
return super().form_valid(form)
|
||||||
|
|
||||||
|
|
||||||
@@ -557,11 +573,15 @@ class QuotaUpdate(EventPermissionRequiredMixin, QuotaEditorMixin, UpdateView):
|
|||||||
identity=self.kwargs['quota']
|
identity=self.kwargs['quota']
|
||||||
)
|
)
|
||||||
|
|
||||||
|
def form_valid(self, form):
|
||||||
|
messages.success(self.request, _('Your changes have been saved.'))
|
||||||
|
return super().form_valid(form)
|
||||||
|
|
||||||
def get_success_url(self) -> str:
|
def get_success_url(self) -> str:
|
||||||
return reverse('control:event.items.quotas', kwargs={
|
return reverse('control:event.items.quotas', kwargs={
|
||||||
'organizer': self.request.event.organizer.slug,
|
'organizer': self.request.event.organizer.slug,
|
||||||
'event': self.request.event.slug,
|
'event': self.request.event.slug,
|
||||||
}) + '?updated=true'
|
})
|
||||||
|
|
||||||
|
|
||||||
class QuotaDelete(EventPermissionRequiredMixin, DeleteView):
|
class QuotaDelete(EventPermissionRequiredMixin, DeleteView):
|
||||||
@@ -584,13 +604,14 @@ class QuotaDelete(EventPermissionRequiredMixin, DeleteView):
|
|||||||
self.object = self.get_object()
|
self.object = self.get_object()
|
||||||
success_url = self.get_success_url()
|
success_url = self.get_success_url()
|
||||||
self.object.delete()
|
self.object.delete()
|
||||||
|
messages.success(self.request, _('The selected quota has been deleted.'))
|
||||||
return HttpResponseRedirect(success_url)
|
return HttpResponseRedirect(success_url)
|
||||||
|
|
||||||
def get_success_url(self) -> str:
|
def get_success_url(self) -> str:
|
||||||
return reverse('control:event.items.quotas', kwargs={
|
return reverse('control:event.items.quotas', kwargs={
|
||||||
'organizer': self.request.event.organizer.slug,
|
'organizer': self.request.event.organizer.slug,
|
||||||
'event': self.request.event.slug,
|
'event': self.request.event.slug,
|
||||||
}) + '?deleted=true'
|
})
|
||||||
|
|
||||||
|
|
||||||
class ItemDetailMixin(SingleObjectMixin):
|
class ItemDetailMixin(SingleObjectMixin):
|
||||||
@@ -641,7 +662,11 @@ class ItemCreate(EventPermissionRequiredMixin, CreateView):
|
|||||||
'organizer': self.request.event.organizer.slug,
|
'organizer': self.request.event.organizer.slug,
|
||||||
'event': self.request.event.slug,
|
'event': self.request.event.slug,
|
||||||
'item': self.object.identity,
|
'item': self.object.identity,
|
||||||
}) + '?success=true'
|
})
|
||||||
|
|
||||||
|
def form_valid(self, form):
|
||||||
|
messages.success(self.request, _('Your changes have been saved.'))
|
||||||
|
return super().form_valid(form)
|
||||||
|
|
||||||
def get_form_kwargs(self):
|
def get_form_kwargs(self):
|
||||||
"""
|
"""
|
||||||
@@ -663,7 +688,11 @@ class ItemUpdateGeneral(ItemDetailMixin, EventPermissionRequiredMixin, UpdateVie
|
|||||||
'organizer': self.request.event.organizer.slug,
|
'organizer': self.request.event.organizer.slug,
|
||||||
'event': self.request.event.slug,
|
'event': self.request.event.slug,
|
||||||
'item': self.get_object().identity,
|
'item': self.get_object().identity,
|
||||||
}) + '?success=true'
|
})
|
||||||
|
|
||||||
|
def form_valid(self, form):
|
||||||
|
messages.success(self.request, _('Your changes have been saved.'))
|
||||||
|
return super().form_valid(form)
|
||||||
|
|
||||||
|
|
||||||
class ItemVariationForm(VersionedModelForm):
|
class ItemVariationForm(VersionedModelForm):
|
||||||
@@ -802,6 +831,7 @@ class ItemVariations(ItemDetailMixin, EventPermissionRequiredMixin, TemplateView
|
|||||||
def post(self, request, *args, **kwargs):
|
def post(self, request, *args, **kwargs):
|
||||||
self.main(request, *args, **kwargs)
|
self.main(request, *args, **kwargs)
|
||||||
context = self.get_context_data(object=self.object)
|
context = self.get_context_data(object=self.object)
|
||||||
|
valid = True
|
||||||
with transaction.atomic():
|
with transaction.atomic():
|
||||||
for form in self.forms_flat:
|
for form in self.forms_flat:
|
||||||
if form.is_valid() and form.has_changed():
|
if form.is_valid() and form.has_changed():
|
||||||
@@ -811,7 +841,11 @@ class ItemVariations(ItemDetailMixin, EventPermissionRequiredMixin, TemplateView
|
|||||||
# for newly created items as cleanerversion does already set the
|
# for newly created items as cleanerversion does already set the
|
||||||
# primary key in its post_init hook
|
# primary key in its post_init hook
|
||||||
form.instance.values.add(*form.values)
|
form.instance.values.add(*form.values)
|
||||||
# TODO: Redirect to success message
|
elif not form.is_valid and form.has_changed():
|
||||||
|
valid = False
|
||||||
|
if valid:
|
||||||
|
messages.success(self.request, _('Your changes have been saved.'))
|
||||||
|
return redirect(self.get_success_url())
|
||||||
return self.render_to_response(context)
|
return self.render_to_response(context)
|
||||||
|
|
||||||
def get_template_names(self) -> "List[str]":
|
def get_template_names(self) -> "List[str]":
|
||||||
@@ -822,6 +856,13 @@ class ItemVariations(ItemDetailMixin, EventPermissionRequiredMixin, TemplateView
|
|||||||
elif self.dimension >= 2:
|
elif self.dimension >= 2:
|
||||||
return ['pretixcontrol/item/variations_nd.html']
|
return ['pretixcontrol/item/variations_nd.html']
|
||||||
|
|
||||||
|
def get_success_url(self) -> str:
|
||||||
|
return reverse('control:event.item.variations', kwargs={
|
||||||
|
'organizer': self.request.event.organizer.slug,
|
||||||
|
'event': self.request.event.slug,
|
||||||
|
'item': self.get_object().identity,
|
||||||
|
})
|
||||||
|
|
||||||
def get_context_data(self, **kwargs) -> dict:
|
def get_context_data(self, **kwargs) -> dict:
|
||||||
context = super().get_context_data(**kwargs)
|
context = super().get_context_data(**kwargs)
|
||||||
context['forms'] = self.forms
|
context['forms'] = self.forms
|
||||||
@@ -873,6 +914,7 @@ class ItemRestrictions(ItemDetailMixin, EventPermissionRequiredMixin, TemplateVi
|
|||||||
form.instance.event = request.event
|
form.instance.event = request.event
|
||||||
form.instance.item = self.object
|
form.instance.item = self.object
|
||||||
form.save()
|
form.save()
|
||||||
|
messages.success(self.request, _('Your changes have been saved.'))
|
||||||
return redirect(self.get_success_url())
|
return redirect(self.get_success_url())
|
||||||
else:
|
else:
|
||||||
context = self.get_context_data(object=self.object)
|
context = self.get_context_data(object=self.object)
|
||||||
@@ -888,4 +930,4 @@ class ItemRestrictions(ItemDetailMixin, EventPermissionRequiredMixin, TemplateVi
|
|||||||
'organizer': self.request.event.organizer.slug,
|
'organizer': self.request.event.organizer.slug,
|
||||||
'event': self.request.event.slug,
|
'event': self.request.event.slug,
|
||||||
'item': self.object.identity
|
'item': self.object.identity
|
||||||
}) + '?success=true'
|
})
|
||||||
|
|||||||
@@ -134,14 +134,10 @@ class OrderTransition(OrderView):
|
|||||||
ret = self.payment_provider.order_control_refund_perform(self.request, self.order)
|
ret = self.payment_provider.order_control_refund_perform(self.request, self.order)
|
||||||
if ret:
|
if ret:
|
||||||
return redirect(ret)
|
return redirect(ret)
|
||||||
return redirect(reverse(
|
return redirect('control:event.order',
|
||||||
'control:event.order',
|
event=self.request.event.slug,
|
||||||
kwargs={
|
organizer=self.request.event.organizer.slug,
|
||||||
'event': self.request.event.slug,
|
code=self.order.code)
|
||||||
'organizer': self.request.event.organizer.slug,
|
|
||||||
'code': self.order.code,
|
|
||||||
}
|
|
||||||
))
|
|
||||||
|
|
||||||
def get(self, *args, **kwargs):
|
def get(self, *args, **kwargs):
|
||||||
to = self.request.GET.get('status', '')
|
to = self.request.GET.get('status', '')
|
||||||
@@ -182,14 +178,10 @@ class OrderExtend(OrderView):
|
|||||||
return self.get(*args, **kwargs)
|
return self.get(*args, **kwargs)
|
||||||
|
|
||||||
def _redirect_back(self):
|
def _redirect_back(self):
|
||||||
return redirect(reverse(
|
return redirect('control:event.order',
|
||||||
'control:event.order',
|
event=self.request.event.slug,
|
||||||
kwargs={
|
organizer=self.request.event.organizer.slug,
|
||||||
'event': self.request.event.slug,
|
code=self.order.code)
|
||||||
'organizer': self.request.event.organizer.slug,
|
|
||||||
'code': self.order.code,
|
|
||||||
}
|
|
||||||
))
|
|
||||||
|
|
||||||
def get(self, *args, **kwargs):
|
def get(self, *args, **kwargs):
|
||||||
if self.order.status != Order.STATUS_PENDING:
|
if self.order.status != Order.STATUS_PENDING:
|
||||||
|
|||||||
@@ -125,10 +125,9 @@ class ImportView(EventPermissionRequiredMixin, TemplateView):
|
|||||||
})
|
})
|
||||||
|
|
||||||
def redirect_back(self):
|
def redirect_back(self):
|
||||||
return redirect(reverse('plugins:banktransfer:import', kwargs={
|
return redirect('plugins:banktransfer:import',
|
||||||
'event': self.request.event.slug,
|
event=self.request.event.slug,
|
||||||
'organizer': self.request.event.organizer.slug,
|
organizer=self.request.event.organizer.slug)
|
||||||
}))
|
|
||||||
|
|
||||||
def annotate_data(self, data):
|
def annotate_data(self, data):
|
||||||
pattern = re.compile(self.request.event.slug.upper() + "([A-Z0-9]{5})")
|
pattern = re.compile(self.request.event.slug.upper() + "([A-Z0-9]{5})")
|
||||||
|
|||||||
@@ -23,10 +23,9 @@ def success(request):
|
|||||||
request.session['payment_paypal_payer'] = payer
|
request.session['payment_paypal_payer'] = payer
|
||||||
try:
|
try:
|
||||||
event = Event.objects.current.get(identity=request.session['payment_paypal_event'])
|
event = Event.objects.current.get(identity=request.session['payment_paypal_event'])
|
||||||
return redirect(reverse('presale:event.checkout.confirm', kwargs={
|
return redirect('presale:event.checkout.confirm',
|
||||||
'event': event.slug,
|
event=event.slug,
|
||||||
'organizer': event.organizer.slug,
|
organizer=event.organizer.slug)
|
||||||
}))
|
|
||||||
except Event.DoesNotExist:
|
except Event.DoesNotExist:
|
||||||
pass # TODO: Handle this
|
pass # TODO: Handle this
|
||||||
else:
|
else:
|
||||||
@@ -38,10 +37,9 @@ def abort(request):
|
|||||||
messages.error(request, _('It looks like you cancelled the PayPal payment'))
|
messages.error(request, _('It looks like you cancelled the PayPal payment'))
|
||||||
try:
|
try:
|
||||||
event = Event.objects.current.get(identity=request.session['payment_paypal_event'])
|
event = Event.objects.current.get(identity=request.session['payment_paypal_event'])
|
||||||
return redirect(reverse('presale:event.checkout.payment', kwargs={
|
return redirect('presale:event.checkout.payment',
|
||||||
'event': event.slug,
|
event=event.slug,
|
||||||
'organizer': event.organizer.slug,
|
organizer=event.organizer.slug)
|
||||||
}))
|
|
||||||
except Event.DoesNotExist:
|
except Event.DoesNotExist:
|
||||||
pass # TODO: Handle this
|
pass # TODO: Handle this
|
||||||
|
|
||||||
@@ -103,8 +101,7 @@ def retry(request, order):
|
|||||||
if resp:
|
if resp:
|
||||||
return redirect(resp)
|
return redirect(resp)
|
||||||
|
|
||||||
return redirect(reverse('presale:event.order', kwargs={
|
return redirect('presale:event.order',
|
||||||
'event': order.event.slug,
|
event=order.event.slug,
|
||||||
'organizer': order.event.organizer.slug,
|
organizer=order.event.organizer.slug,
|
||||||
'order': order.code,
|
order=order.code)
|
||||||
}))
|
|
||||||
|
|||||||
@@ -229,12 +229,9 @@ class EventLogin(EventViewMixin, TemplateView):
|
|||||||
if 'next' in self.request.GET:
|
if 'next' in self.request.GET:
|
||||||
return redirect(self.request.GET.get('next'))
|
return redirect(self.request.GET.get('next'))
|
||||||
else:
|
else:
|
||||||
return redirect(reverse(
|
return redirect('presale:event.orders',
|
||||||
'presale:event.orders', kwargs={
|
organizer=self.request.event.organizer.slug,
|
||||||
'organizer': self.request.event.organizer.slug,
|
event=self.request.event.slug)
|
||||||
'event': self.request.event.slug,
|
|
||||||
}
|
|
||||||
))
|
|
||||||
|
|
||||||
def get(self, request, *args, **kwargs):
|
def get(self, request, *args, **kwargs):
|
||||||
if request.user.is_authenticated() and \
|
if request.user.is_authenticated() and \
|
||||||
@@ -377,12 +374,9 @@ class EventForgot(EventViewMixin, TemplateView):
|
|||||||
def get(self, request, *args, **kwargs):
|
def get(self, request, *args, **kwargs):
|
||||||
if request.user.is_authenticated() and \
|
if request.user.is_authenticated() and \
|
||||||
(request.user.event is None or request.user.event == request.event):
|
(request.user.event is None or request.user.event == request.event):
|
||||||
return redirect(reverse(
|
return redirect('presale:event.orders',
|
||||||
'presale:event.orders', kwargs={
|
organizer=self.request.event.organizer.slug,
|
||||||
'organizer': self.request.event.organizer.slug,
|
event=self.request.event.slug)
|
||||||
'event': self.request.event.slug,
|
|
||||||
}
|
|
||||||
))
|
|
||||||
return super().get(request, *args, **kwargs)
|
return super().get(request, *args, **kwargs)
|
||||||
|
|
||||||
def generate_token(self, user):
|
def generate_token(self, user):
|
||||||
@@ -412,12 +406,9 @@ class EventForgot(EventViewMixin, TemplateView):
|
|||||||
else:
|
else:
|
||||||
messages.success(request, _('We are unable to send you a new password, as you did not enter an e-mail '
|
messages.success(request, _('We are unable to send you a new password, as you did not enter an e-mail '
|
||||||
'address at your registration.'))
|
'address at your registration.'))
|
||||||
return redirect(reverse(
|
return redirect('presale:event.forgot',
|
||||||
'presale:event.forgot', kwargs={
|
organizer=self.request.event.organizer.slug,
|
||||||
'organizer': self.request.event.organizer.slug,
|
event=self.request.event.slug)
|
||||||
'event': self.request.event.slug,
|
|
||||||
}
|
|
||||||
))
|
|
||||||
else:
|
else:
|
||||||
return self.get(request, *args, **kwargs)
|
return self.get(request, *args, **kwargs)
|
||||||
|
|
||||||
@@ -448,12 +439,9 @@ class EventRecover(EventViewMixin, TemplateView):
|
|||||||
def get(self, request, *args, **kwargs):
|
def get(self, request, *args, **kwargs):
|
||||||
if request.user.is_authenticated() and \
|
if request.user.is_authenticated() and \
|
||||||
(request.user.event is None or request.user.event == request.event):
|
(request.user.event is None or request.user.event == request.event):
|
||||||
return redirect(reverse(
|
return redirect('presale:event.orders',
|
||||||
'presale:event.orders', kwargs={
|
organizer=self.request.event.organizer.slug,
|
||||||
'organizer': self.request.event.organizer.slug,
|
event=self.request.event.slug)
|
||||||
'event': self.request.event.slug,
|
|
||||||
}
|
|
||||||
))
|
|
||||||
try:
|
try:
|
||||||
self.get_user()
|
self.get_user()
|
||||||
except User.DoesNotExist:
|
except User.DoesNotExist:
|
||||||
@@ -473,12 +461,9 @@ class EventRecover(EventViewMixin, TemplateView):
|
|||||||
|
|
||||||
def invalid(self, msg):
|
def invalid(self, msg):
|
||||||
messages.error(self.request, self.error_messages[msg])
|
messages.error(self.request, self.error_messages[msg])
|
||||||
return redirect(reverse(
|
return redirect('presale:event.forgot',
|
||||||
'presale:event.forgot', kwargs={
|
organizer=self.request.event.organizer.slug,
|
||||||
'organizer': self.request.event.organizer.slug,
|
event=self.request.event.slug)
|
||||||
'event': self.request.event.slug
|
|
||||||
}
|
|
||||||
))
|
|
||||||
|
|
||||||
def post(self, request, *args, **kwargs):
|
def post(self, request, *args, **kwargs):
|
||||||
if self.form.is_valid():
|
if self.form.is_valid():
|
||||||
@@ -493,12 +478,9 @@ class EventRecover(EventViewMixin, TemplateView):
|
|||||||
else:
|
else:
|
||||||
user.set_password(self.form.cleaned_data['password'])
|
user.set_password(self.form.cleaned_data['password'])
|
||||||
messages.success(request, _('You can now login using your new password.'))
|
messages.success(request, _('You can now login using your new password.'))
|
||||||
return redirect(reverse(
|
return redirect('presale:event.checkout.login',
|
||||||
'presale:event.checkout.login', kwargs={
|
organizer=self.request.event.organizer.slug,
|
||||||
'organizer': self.request.event.organizer.slug,
|
event=self.request.event.slug)
|
||||||
'event': self.request.event.slug,
|
|
||||||
}
|
|
||||||
))
|
|
||||||
else:
|
else:
|
||||||
return self.get(request, *args, **kwargs)
|
return self.get(request, *args, **kwargs)
|
||||||
|
|
||||||
@@ -517,12 +499,9 @@ class EventRecover(EventViewMixin, TemplateView):
|
|||||||
class EventLogout(EventViewMixin, View):
|
class EventLogout(EventViewMixin, View):
|
||||||
def get(self, request, *args, **kwargs):
|
def get(self, request, *args, **kwargs):
|
||||||
logout(request)
|
logout(request)
|
||||||
return redirect(reverse(
|
return redirect('presale:event.index',
|
||||||
'presale:event.index', kwargs={
|
organizer=self.request.event.organizer.slug,
|
||||||
'organizer': self.request.event.organizer.slug,
|
event=self.request.event.slug)
|
||||||
'event': self.request.event.slug,
|
|
||||||
}
|
|
||||||
))
|
|
||||||
|
|
||||||
|
|
||||||
class EventOrders(EventLoginRequiredMixin, EventViewMixin, TemplateView):
|
class EventOrders(EventLoginRequiredMixin, EventViewMixin, TemplateView):
|
||||||
|
|||||||
@@ -108,11 +108,10 @@ class OrderModify(EventViewMixin, EventLoginRequiredMixin, OrderDetailMixin,
|
|||||||
messages.error(self.request,
|
messages.error(self.request,
|
||||||
_("We had difficulties processing your input. Please review the errors below."))
|
_("We had difficulties processing your input. Please review the errors below."))
|
||||||
return self.get(*args, **kwargs)
|
return self.get(*args, **kwargs)
|
||||||
return redirect(reverse('presale:event.order', kwargs={
|
return redirect('presale:event.order',
|
||||||
'event': self.request.event.slug,
|
event=self.request.event.slug,
|
||||||
'organizer': self.request.event.organizer.slug,
|
organizer=self.request.event.organizer.slug,
|
||||||
'order': self.order.code,
|
order=self.order.code)
|
||||||
}))
|
|
||||||
|
|
||||||
def get(self, request, *args, **kwargs):
|
def get(self, request, *args, **kwargs):
|
||||||
self.request = request
|
self.request = request
|
||||||
@@ -143,11 +142,10 @@ class OrderCancel(EventViewMixin, EventLoginRequiredMixin, OrderDetailMixin,
|
|||||||
order = self.order.clone()
|
order = self.order.clone()
|
||||||
order.status = Order.STATUS_CANCELLED
|
order.status = Order.STATUS_CANCELLED
|
||||||
order.save()
|
order.save()
|
||||||
return redirect(reverse('presale:event.order', kwargs={
|
return redirect('presale:event.order',
|
||||||
'event': self.request.event.slug,
|
event=self.request.event.slug,
|
||||||
'organizer': self.request.event.organizer.slug,
|
organizer=self.request.event.organizer.slug,
|
||||||
'order': order.code,
|
order=order.code)
|
||||||
}))
|
|
||||||
|
|
||||||
def get(self, request, *args, **kwargs):
|
def get(self, request, *args, **kwargs):
|
||||||
self.kwargs = kwargs
|
self.kwargs = kwargs
|
||||||
|
|||||||
Reference in New Issue
Block a user