mirror of
https://github.com/pretix/pretix.git
synced 2026-05-05 15:14:04 +00:00
Prepare for DeleteView change in Django 4.0
This commit is contained in:
@@ -22,9 +22,39 @@
|
||||
import datetime
|
||||
import sys
|
||||
|
||||
from django.forms import Form
|
||||
from django.views.generic.detail import (
|
||||
BaseDetailView, SingleObjectTemplateResponseMixin,
|
||||
)
|
||||
from django.views.generic.edit import DeletionMixin, FormMixin
|
||||
|
||||
|
||||
def date_fromisocalendar(isoyear, isoweek, isoday):
|
||||
if sys.version_info < (3, 8):
|
||||
return datetime.datetime.strptime(f'{isoyear}-W{isoweek}-{isoday}', "%G-W%V-%u")
|
||||
else:
|
||||
return datetime.datetime.fromisocalendar(isoyear, isoweek, isoday)
|
||||
|
||||
|
||||
class CompatDeleteView(SingleObjectTemplateResponseMixin, DeletionMixin, FormMixin, BaseDetailView):
|
||||
"""
|
||||
This is a DeleteView variant that allows us to create subclasses that work on both Django 3.2 and
|
||||
Django 4.0.
|
||||
"""
|
||||
form_class = Form
|
||||
template_name_suffix = "_confirm_delete"
|
||||
|
||||
def post(self, request, *args, **kwargs):
|
||||
# Set self.object before the usual form processing flow.
|
||||
# Inlined because having DeletionMixin as the first base, for
|
||||
# get_success_url(), makes leveraging super() with ProcessFormView
|
||||
# overly complex.
|
||||
self.object = self.get_object()
|
||||
form = self.get_form()
|
||||
if form.is_valid():
|
||||
return self.form_valid(form)
|
||||
else:
|
||||
return self.form_invalid(form)
|
||||
|
||||
def form_valid(self, form):
|
||||
return self.delete(self.request, self.args, self.kwargs)
|
||||
|
||||
Reference in New Issue
Block a user