forked from CGM_Public/pretix_original
Bump Django to 4.1.* (#2989)
This commit is contained in:
@@ -19,7 +19,6 @@
|
||||
# You should have received a copy of the GNU Affero General Public License along with this program. If not, see
|
||||
# <https://www.gnu.org/licenses/>.
|
||||
#
|
||||
from bootstrap3.renderers import FieldRenderer
|
||||
from bootstrap3.text import text_value
|
||||
from bootstrap3.utils import add_css_class
|
||||
from django.forms import CheckboxInput, CheckboxSelectMultiple, RadioSelect
|
||||
@@ -28,6 +27,8 @@ from django.utils.html import escape, format_html, strip_tags
|
||||
from django.utils.safestring import mark_safe
|
||||
from django.utils.translation import pgettext
|
||||
|
||||
from pretix.base.forms.renderers import FieldRenderer
|
||||
|
||||
|
||||
def render_label(content, label_for=None, label_class=None, label_title='', label_id='', optional=False, is_valid=None, attrs=None):
|
||||
"""
|
||||
|
||||
@@ -22,7 +22,6 @@
|
||||
import datetime
|
||||
from urllib.parse import urlparse
|
||||
|
||||
import pytz
|
||||
import vobject
|
||||
from django.conf import settings
|
||||
from django.utils.formats import date_format
|
||||
@@ -41,11 +40,11 @@ def get_public_ical(events):
|
||||
"""
|
||||
cal = vobject.iCalendar()
|
||||
cal.add('prodid').value = '-//pretix//{}//'.format(settings.PRETIX_INSTANCE_NAME.replace(" ", "_"))
|
||||
creation_time = datetime.datetime.now(pytz.utc)
|
||||
creation_time = datetime.datetime.now(datetime.timezone.utc)
|
||||
|
||||
for ev in events:
|
||||
event = ev if isinstance(ev, Event) else ev.event
|
||||
tz = pytz.timezone(event.settings.timezone)
|
||||
tz = event.timezone
|
||||
if isinstance(ev, Event):
|
||||
url = build_absolute_uri(event, 'presale:event.index')
|
||||
else:
|
||||
@@ -114,9 +113,9 @@ def get_private_icals(event, positions):
|
||||
- It would be pretty hard to implement it in a way that doesn't require us to use distinct
|
||||
settings fields for emails to customers and to attendees, which feels like an overcomplication.
|
||||
"""
|
||||
tz = pytz.timezone(event.settings.timezone)
|
||||
tz = event.timezone
|
||||
|
||||
creation_time = datetime.datetime.now(pytz.utc)
|
||||
creation_time = datetime.datetime.now(datetime.timezone.utc)
|
||||
calobjects = []
|
||||
|
||||
evs = set(p.subevent or event for p in positions)
|
||||
|
||||
@@ -32,8 +32,7 @@
|
||||
# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
# License for the specific language governing permissions and limitations under the License.
|
||||
|
||||
from django.conf.urls import re_path
|
||||
from django.urls import include
|
||||
from django.urls import include, re_path
|
||||
from django.views.decorators.csrf import csrf_exempt
|
||||
|
||||
import pretix.presale.views.cart
|
||||
|
||||
@@ -29,7 +29,6 @@ from urllib.parse import parse_qs, urlencode, urlparse, urlunparse
|
||||
from Crypto.PublicKey import RSA
|
||||
from django.db import transaction
|
||||
from django.http import Http404, HttpResponse, JsonResponse
|
||||
from django.middleware.csrf import _compare_masked_tokens
|
||||
from django.shortcuts import redirect, render
|
||||
from django.utils.crypto import get_random_string
|
||||
from django.utils.decorators import method_decorator
|
||||
@@ -103,8 +102,9 @@ class AuthorizeView(View):
|
||||
return self._process_auth_request(request, request.GET)
|
||||
|
||||
def post(self, request, *args, **kwargs):
|
||||
request_token = CsrfViewMiddleware(lambda: None)._get_token(request)
|
||||
if not request_token or not _compare_masked_tokens(request.POST.get('csrfmiddlewaretoken', ''), request_token):
|
||||
try:
|
||||
CsrfViewMiddleware(lambda: None)._check_token(request)
|
||||
except:
|
||||
# External request, we prefer GET and will redirect to prevent confusion with our login form
|
||||
return redirect(request.path + '?' + request.POST.urlencode())
|
||||
return self._process_auth_request(request, request.GET)
|
||||
|
||||
@@ -38,10 +38,10 @@ from collections import defaultdict
|
||||
from datetime import date, datetime, time, timedelta
|
||||
from functools import reduce
|
||||
from urllib.parse import quote, urlencode
|
||||
from zoneinfo import ZoneInfo
|
||||
|
||||
import dateutil
|
||||
import isoweek
|
||||
import pytz
|
||||
from django.conf import settings
|
||||
from django.core.cache import caches
|
||||
from django.db.models import Exists, Max, Min, OuterRef, Prefetch, Q
|
||||
@@ -392,7 +392,7 @@ class OrganizerIndex(OrganizerViewMixin, EventListMixin, ListView):
|
||||
def get_context_data(self, **kwargs):
|
||||
ctx = super().get_context_data(**kwargs)
|
||||
for event in ctx['events']:
|
||||
event.tzname = pytz.timezone(event.cache.get_or_set('timezone', lambda: event.settings.timezone))
|
||||
event.tzname = ZoneInfo(event.cache.get_or_set('timezone', lambda: event.settings.timezone))
|
||||
if event.has_subevents:
|
||||
event.daterange = daterange(
|
||||
event.min_from.astimezone(event.tzname),
|
||||
@@ -506,7 +506,7 @@ def add_subevents_for_days(qs, before, after, ebd, timezones, event=None, cart_n
|
||||
continue
|
||||
|
||||
timezones.add(s.timezone)
|
||||
tz = pytz.timezone(s.timezone)
|
||||
tz = ZoneInfo(s.timezone)
|
||||
datetime_from = se.date_from.astimezone(tz)
|
||||
date_from = datetime_from.date()
|
||||
if s.show_date_to and se.date_to:
|
||||
@@ -623,8 +623,8 @@ class CalendarView(OrganizerViewMixin, EventListMixin, TemplateView):
|
||||
raise Http404()
|
||||
|
||||
tz = get_current_timezone()
|
||||
before = tz.localize(datetime(self.year, self.month, 1, 0, 0, 0)) - timedelta(days=1)
|
||||
after = tz.localize(datetime(self.year, self.month, ndays, 0, 0, 0)) + timedelta(days=1)
|
||||
before = datetime(self.year, self.month, 1, 0, 0, 0, tzinfo=tz) - timedelta(days=1)
|
||||
after = datetime(self.year, self.month, ndays, 0, 0, 0, tzinfo=tz) + timedelta(days=1)
|
||||
|
||||
ctx['date'] = date(self.year, self.month, 1)
|
||||
ctx['before'] = before
|
||||
@@ -700,12 +700,12 @@ class WeekCalendarView(OrganizerViewMixin, EventListMixin, TemplateView):
|
||||
|
||||
tz = get_current_timezone()
|
||||
week = isoweek.Week(self.year, self.week)
|
||||
before = tz.localize(datetime(
|
||||
week.monday().year, week.monday().month, week.monday().day, 0, 0, 0,
|
||||
)) - timedelta(days=1)
|
||||
after = tz.localize(datetime(
|
||||
week.sunday().year, week.sunday().month, week.sunday().day, 0, 0, 0,
|
||||
)) + timedelta(days=1)
|
||||
before = datetime(
|
||||
week.monday().year, week.monday().month, week.monday().day, 0, 0, 0, tzinfo=tz,
|
||||
) - timedelta(days=1)
|
||||
after = datetime(
|
||||
week.sunday().year, week.sunday().month, week.sunday().day, 0, 0, 0, tzinfo=tz,
|
||||
) + timedelta(days=1)
|
||||
|
||||
ctx['date'] = week.monday()
|
||||
ctx['before'] = before
|
||||
@@ -827,12 +827,12 @@ class DayCalendarView(OrganizerViewMixin, EventListMixin, TemplateView):
|
||||
ctx = super().get_context_data()
|
||||
|
||||
tz = get_current_timezone()
|
||||
before = tz.localize(datetime(
|
||||
self.date.year, self.date.month, self.date.day, 0, 0, 0,
|
||||
)) - timedelta(days=1)
|
||||
after = tz.localize(datetime(
|
||||
self.date.year, self.date.month, self.date.day, 0, 0, 0,
|
||||
)) + timedelta(days=1)
|
||||
before = datetime(
|
||||
self.date.year, self.date.month, self.date.day, 0, 0, 0, tzinfo=tz,
|
||||
) - timedelta(days=1)
|
||||
after = datetime(
|
||||
self.date.year, self.date.month, self.date.day, 0, 0, 0, tzinfo=tz,
|
||||
) + timedelta(days=1)
|
||||
|
||||
ctx['date'] = self.date
|
||||
ctx['cal_tz'] = self.tz
|
||||
|
||||
@@ -26,9 +26,9 @@ import logging
|
||||
from collections import defaultdict
|
||||
from datetime import date, datetime, timedelta
|
||||
from urllib.parse import urljoin
|
||||
from zoneinfo import ZoneInfo
|
||||
|
||||
import isoweek
|
||||
import pytz
|
||||
from compressor.filters.jsmin import rJSMinFilter
|
||||
from django.conf import settings
|
||||
from django.contrib.staticfiles import finders
|
||||
@@ -438,7 +438,7 @@ class WidgetAPIProductList(EventListMixin, View):
|
||||
event = ev.event
|
||||
else:
|
||||
event = ev
|
||||
tz = pytz.timezone(e['timezone'])
|
||||
tz = ZoneInfo(e['timezone'])
|
||||
time = date_format(ev.date_from.astimezone(tz), 'TIME_FORMAT') if e.get('time') and event.settings.show_times else None
|
||||
if time and ev.date_to and ev.date_from.astimezone(tz).date() == ev.date_to.astimezone(tz).date() and event.settings.show_date_to:
|
||||
time += ' – ' + date_format(ev.date_to.astimezone(tz), 'TIME_FORMAT')
|
||||
@@ -626,7 +626,7 @@ class WidgetAPIProductList(EventListMixin, View):
|
||||
data['events'] = []
|
||||
qs = self._get_event_queryset()
|
||||
for event in qs:
|
||||
tz = pytz.timezone(event.cache.get_or_set('timezone', lambda: event.settings.timezone))
|
||||
tz = ZoneInfo(event.cache.get_or_set('timezone', lambda: event.settings.timezone))
|
||||
if event.has_subevents:
|
||||
dr = daterange(
|
||||
event.min_from.astimezone(tz),
|
||||
|
||||
Reference in New Issue
Block a user