forked from CGM_Public/pretix_original
Return correct 404 error codes for DoesNotExist exceptions
This commit is contained in:
@@ -9,7 +9,7 @@ from django.views.generic.edit import DeleteView
|
|||||||
from django.views.generic.base import TemplateView
|
from django.views.generic.base import TemplateView
|
||||||
from django.views.generic.detail import SingleObjectMixin
|
from django.views.generic.detail import SingleObjectMixin
|
||||||
from django.core.urlresolvers import resolve, reverse
|
from django.core.urlresolvers import resolve, reverse
|
||||||
from django.http import HttpResponseRedirect, HttpResponseForbidden
|
from django.http import HttpResponseRedirect, HttpResponseForbidden, Http404
|
||||||
from django.shortcuts import redirect
|
from django.shortcuts import redirect
|
||||||
from django.forms.models import inlineformset_factory
|
from django.forms.models import inlineformset_factory
|
||||||
from django.utils.translation import ugettext_lazy as _
|
from django.utils.translation import ugettext_lazy as _
|
||||||
@@ -54,9 +54,12 @@ class CategoryDelete(EventPermissionRequiredMixin, DeleteView):
|
|||||||
context_object_name = 'category'
|
context_object_name = 'category'
|
||||||
|
|
||||||
def get_object(self, queryset=None) -> ItemCategory:
|
def get_object(self, queryset=None) -> ItemCategory:
|
||||||
return self.request.event.categories.current.get(
|
try:
|
||||||
identity=self.kwargs['category']
|
return self.request.event.categories.current.get(
|
||||||
)
|
identity=self.kwargs['category']
|
||||||
|
)
|
||||||
|
except ItemCategory.DoesNotExist:
|
||||||
|
raise Http404(_("The requested product category does not exist."))
|
||||||
|
|
||||||
def delete(self, request, *args, **kwargs):
|
def delete(self, request, *args, **kwargs):
|
||||||
self.object = self.get_object()
|
self.object = self.get_object()
|
||||||
@@ -85,9 +88,12 @@ class CategoryUpdate(EventPermissionRequiredMixin, UpdateView):
|
|||||||
|
|
||||||
def get_object(self, queryset=None) -> ItemCategory:
|
def get_object(self, queryset=None) -> ItemCategory:
|
||||||
url = resolve(self.request.path_info)
|
url = resolve(self.request.path_info)
|
||||||
return self.request.event.categories.current.get(
|
try:
|
||||||
identity=url.kwargs['category']
|
return self.request.event.categories.current.get(
|
||||||
)
|
identity=url.kwargs['category']
|
||||||
|
)
|
||||||
|
except ItemCategory.DoesNotExist:
|
||||||
|
raise Http404(_("The requested product category does not exist."))
|
||||||
|
|
||||||
def form_valid(self, form):
|
def form_valid(self, form):
|
||||||
messages.success(self.request, _('Your changes have been saved.'))
|
messages.success(self.request, _('Your changes have been saved.'))
|
||||||
@@ -135,9 +141,12 @@ def category_move(request, category, up=True):
|
|||||||
category_move_down. It takes a category and a direction and then tries to bring
|
category_move_down. It takes a category and a direction and then tries to bring
|
||||||
all categories for this event in a new order.
|
all categories for this event in a new order.
|
||||||
"""
|
"""
|
||||||
category = request.event.categories.current.get(
|
try:
|
||||||
identity=category
|
category = request.event.categories.current.get(
|
||||||
)
|
identity=category
|
||||||
|
)
|
||||||
|
except ItemCategory.DoesNotExist:
|
||||||
|
raise Http404(_("The requested product category does not exist."))
|
||||||
categories = list(request.event.categories.current.order_by("position"))
|
categories = list(request.event.categories.current.order_by("position"))
|
||||||
|
|
||||||
index = categories.index(category)
|
index = categories.index(category)
|
||||||
@@ -206,9 +215,12 @@ class PropertyUpdate(EventPermissionRequiredMixin, UpdateView):
|
|||||||
context_object_name = 'property'
|
context_object_name = 'property'
|
||||||
|
|
||||||
def get_object(self, queryset=None) -> Property:
|
def get_object(self, queryset=None) -> Property:
|
||||||
return self.request.event.properties.current.get(
|
try:
|
||||||
identity=self.kwargs['property']
|
return self.request.event.properties.current.get(
|
||||||
)
|
identity=self.kwargs['property']
|
||||||
|
)
|
||||||
|
except Property.DoesNotExist:
|
||||||
|
raise Http404(_("The requested property does not exist."))
|
||||||
|
|
||||||
def get_success_url(self) -> str:
|
def get_success_url(self) -> str:
|
||||||
return reverse('control:event.items.properties.edit', kwargs={
|
return reverse('control:event.items.properties.edit', kwargs={
|
||||||
@@ -330,9 +342,12 @@ class PropertyDelete(EventPermissionRequiredMixin, DeleteView):
|
|||||||
|
|
||||||
def get_object(self, queryset=None) -> Property:
|
def get_object(self, queryset=None) -> Property:
|
||||||
if not hasattr(self, 'object') or not self.object:
|
if not hasattr(self, 'object') or not self.object:
|
||||||
self.object = self.request.event.properties.current.get(
|
try:
|
||||||
identity=self.kwargs['property']
|
self.object = self.request.event.properties.current.get(
|
||||||
)
|
identity=self.kwargs['property']
|
||||||
|
)
|
||||||
|
except Property.DoesNotExist:
|
||||||
|
raise Http404(_("The requested property does not exist."))
|
||||||
return self.object
|
return self.object
|
||||||
|
|
||||||
def delete(self, request, *args, **kwargs):
|
def delete(self, request, *args, **kwargs):
|
||||||
@@ -380,9 +395,12 @@ class QuestionDelete(EventPermissionRequiredMixin, DeleteView):
|
|||||||
context_object_name = 'question'
|
context_object_name = 'question'
|
||||||
|
|
||||||
def get_object(self, queryset=None) -> Question:
|
def get_object(self, queryset=None) -> Question:
|
||||||
return self.request.event.questions.current.get(
|
try:
|
||||||
identity=self.kwargs['question']
|
return self.request.event.questions.current.get(
|
||||||
)
|
identity=self.kwargs['question']
|
||||||
|
)
|
||||||
|
except Question.DoesNotExist:
|
||||||
|
raise Http404(_("The requested question does not exist."))
|
||||||
|
|
||||||
def get_context_data(self, *args, **kwargs) -> dict:
|
def get_context_data(self, *args, **kwargs) -> dict:
|
||||||
context = super().get_context_data(*args, **kwargs)
|
context = super().get_context_data(*args, **kwargs)
|
||||||
@@ -411,9 +429,12 @@ class QuestionUpdate(EventPermissionRequiredMixin, UpdateView):
|
|||||||
context_object_name = 'question'
|
context_object_name = 'question'
|
||||||
|
|
||||||
def get_object(self, queryset=None) -> Question:
|
def get_object(self, queryset=None) -> Question:
|
||||||
return self.request.event.questions.current.get(
|
try:
|
||||||
identity=self.kwargs['question']
|
return self.request.event.questions.current.get(
|
||||||
)
|
identity=self.kwargs['question']
|
||||||
|
)
|
||||||
|
except Question.DoesNotExist:
|
||||||
|
raise Http404(_("The requested question does not exist."))
|
||||||
|
|
||||||
def form_valid(self, form):
|
def form_valid(self, form):
|
||||||
messages.success(self.request, _('Your changes have been saved.'))
|
messages.success(self.request, _('Your changes have been saved.'))
|
||||||
@@ -574,9 +595,12 @@ class QuotaUpdate(EventPermissionRequiredMixin, QuotaEditorMixin, UpdateView):
|
|||||||
context_object_name = 'quota'
|
context_object_name = 'quota'
|
||||||
|
|
||||||
def get_object(self, queryset=None) -> Quota:
|
def get_object(self, queryset=None) -> Quota:
|
||||||
return self.request.event.quotas.current.get(
|
try:
|
||||||
identity=self.kwargs['quota']
|
return self.request.event.quotas.current.get(
|
||||||
)
|
identity=self.kwargs['quota']
|
||||||
|
)
|
||||||
|
except Quota.DoesNotExist:
|
||||||
|
raise Http404(_("The requested quota does not exist."))
|
||||||
|
|
||||||
def form_valid(self, form):
|
def form_valid(self, form):
|
||||||
messages.success(self.request, _('Your changes have been saved.'))
|
messages.success(self.request, _('Your changes have been saved.'))
|
||||||
@@ -596,9 +620,12 @@ class QuotaDelete(EventPermissionRequiredMixin, DeleteView):
|
|||||||
context_object_name = 'quota'
|
context_object_name = 'quota'
|
||||||
|
|
||||||
def get_object(self, queryset=None) -> Quota:
|
def get_object(self, queryset=None) -> Quota:
|
||||||
return self.request.event.quotas.current.get(
|
try:
|
||||||
identity=self.kwargs['quota']
|
return self.request.event.quotas.current.get(
|
||||||
)
|
identity=self.kwargs['quota']
|
||||||
|
)
|
||||||
|
except Quota.DoesNotExist:
|
||||||
|
raise Http404(_("The requested quota does not exist."))
|
||||||
|
|
||||||
def get_context_data(self, *args, **kwargs) -> dict:
|
def get_context_data(self, *args, **kwargs) -> dict:
|
||||||
context = super().get_context_data(*args, **kwargs)
|
context = super().get_context_data(*args, **kwargs)
|
||||||
@@ -624,12 +651,15 @@ class ItemDetailMixin(SingleObjectMixin):
|
|||||||
context_object_name = 'item'
|
context_object_name = 'item'
|
||||||
|
|
||||||
def get_object(self, queryset=None) -> Item:
|
def get_object(self, queryset=None) -> Item:
|
||||||
if not hasattr(self, 'object') or not self.object:
|
try:
|
||||||
self.item = self.request.event.items.current.get(
|
if not hasattr(self, 'object') or not self.object:
|
||||||
identity=self.kwargs['item']
|
self.item = self.request.event.items.current.get(
|
||||||
)
|
identity=self.kwargs['item']
|
||||||
self.object = self.item
|
)
|
||||||
return self.object
|
self.object = self.item
|
||||||
|
return self.object
|
||||||
|
except Item.DoesNotExist:
|
||||||
|
raise Http404(_("The requested item does not exist."))
|
||||||
|
|
||||||
|
|
||||||
class ItemFormGeneral(VersionedModelForm):
|
class ItemFormGeneral(VersionedModelForm):
|
||||||
|
|||||||
Reference in New Issue
Block a user