mirror of
https://github.com/pretix/pretix.git
synced 2026-11-04 00:29:52 +00:00
Compare commits
1
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
6b04e07f83 |
No files matched your search
+1
-2
@@ -46,7 +46,7 @@ dependencies = [
|
||||
"django-formtools==2.7",
|
||||
"django-hierarkey==2.0.*,>=2.0.2",
|
||||
"django-hijack==3.7.*",
|
||||
"django-i18nfield==1.12.*",
|
||||
"django-i18nfield==1.11.*",
|
||||
"django-libsass==0.9",
|
||||
"django-localflavor==5.1",
|
||||
"django-markup",
|
||||
@@ -61,7 +61,6 @@ dependencies = [
|
||||
"dnspython==2.8.*",
|
||||
"drf_ujson2==1.7.*",
|
||||
"geoip2==5.*",
|
||||
"importlib_metadata==9.*", # Polyfill, we can probably drop this once we require Python 3.10+
|
||||
"isoweek",
|
||||
"jsonschema",
|
||||
"kombu==5.6.*",
|
||||
|
||||
@@ -22,9 +22,9 @@
|
||||
import os
|
||||
import sys
|
||||
from enum import Enum
|
||||
from importlib import metadata
|
||||
from typing import List
|
||||
|
||||
import importlib_metadata as metadata
|
||||
from django.apps import AppConfig, apps
|
||||
from django.conf import settings
|
||||
from django.core.exceptions import ImproperlyConfigured
|
||||
|
||||
@@ -147,7 +147,7 @@ class PluginSignal(Generic[T], django.dispatch.Signal):
|
||||
def _is_receiver_active(self, sender, receiver):
|
||||
return is_receiver_active(sender, receiver)
|
||||
|
||||
def send(self, sender: T, skip_exceptions=False, **named) -> List[Tuple[Callable, Any]]:
|
||||
def send(self, sender: T, **named) -> List[Tuple[Callable, Any]]:
|
||||
"""
|
||||
Send signal from sender to all connected receivers that belong to
|
||||
plugins enabled for the given event / organizer.
|
||||
@@ -164,19 +164,8 @@ class PluginSignal(Generic[T], django.dispatch.Signal):
|
||||
|
||||
for receiver in self._live_receivers(sender)[0]:
|
||||
if self._is_receiver_active(sender, receiver):
|
||||
try:
|
||||
response = receiver(signal=self, sender=sender, **named)
|
||||
except Exception as e:
|
||||
if skip_exceptions:
|
||||
logger.exception("Signal handler skipped due to exception")
|
||||
if settings.SENTRY_ENABLED:
|
||||
import sentry_sdk
|
||||
|
||||
sentry_sdk.capture_exception(e)
|
||||
else:
|
||||
raise
|
||||
else:
|
||||
responses.append((receiver, response))
|
||||
response = receiver(signal=self, sender=sender, **named)
|
||||
responses.append((receiver, response))
|
||||
return responses
|
||||
|
||||
def send_chained(self, sender: T, chain_kwarg_name, **named) -> List[Tuple[Callable, Any]]:
|
||||
@@ -323,30 +312,6 @@ class OrganizerPluginSignal(PluginSignal[Organizer]):
|
||||
|
||||
|
||||
class GlobalSignal(django.dispatch.Signal):
|
||||
def send(self, sender, skip_exceptions=False, **named):
|
||||
if (
|
||||
not self.receivers
|
||||
or self.sender_receivers_cache.get(sender) is NO_RECEIVERS
|
||||
):
|
||||
return []
|
||||
responses = []
|
||||
sync_receivers, _ = self._live_receivers(sender)
|
||||
for receiver in sync_receivers:
|
||||
try:
|
||||
response = receiver(signal=self, sender=sender, **named)
|
||||
except Exception as e:
|
||||
if skip_exceptions:
|
||||
logger.exception("Signal handler skipped due to exception")
|
||||
if settings.SENTRY_ENABLED:
|
||||
import sentry_sdk
|
||||
|
||||
sentry_sdk.capture_exception(e)
|
||||
else:
|
||||
raise
|
||||
else:
|
||||
responses.append((receiver, response))
|
||||
return responses
|
||||
|
||||
def send_chained(self, sender: Event, chain_kwarg_name, **named) -> List[Tuple[Callable, Any]]:
|
||||
"""
|
||||
Send signal from sender to all connected receivers. The return value of the first receiver
|
||||
|
||||
@@ -23,10 +23,10 @@ import json
|
||||
import logging
|
||||
import pathlib
|
||||
import re
|
||||
from importlib import metadata
|
||||
from urllib.parse import urljoin
|
||||
from urllib.request import urlopen
|
||||
|
||||
import importlib_metadata as metadata
|
||||
from django import template
|
||||
from django.conf import settings
|
||||
from django.utils.safestring import mark_safe
|
||||
|
||||
@@ -135,7 +135,7 @@ def get_event_navigation(request: HttpRequest):
|
||||
# It would be better to allow plugins to handle the permission themselves, but for backwards compatibility
|
||||
# we need to have it in the "if" statement
|
||||
event_settings += sorted(
|
||||
sum((list(a[1]) for a in nav_event_settings.send(request.event, skip_exceptions=True, request=request)), []),
|
||||
sum((list(a[1]) for a in nav_event_settings.send(request.event, request=request)), []),
|
||||
key=lambda r: r['label']
|
||||
)
|
||||
if event_settings:
|
||||
@@ -487,7 +487,7 @@ def get_global_navigation(request):
|
||||
})
|
||||
|
||||
merge_in(nav, sorted(
|
||||
sum((list(a[1]) for a in nav_global.send(request, skip_exceptions=True, request=request)), []),
|
||||
sum((list(a[1]) for a in nav_global.send(request, request=request)), []),
|
||||
key=lambda r: (1 if r.get('parent') else 0, r['label'])
|
||||
))
|
||||
return nav
|
||||
@@ -718,7 +718,7 @@ def get_organizer_navigation(request):
|
||||
})
|
||||
|
||||
merge_in(nav, sorted(
|
||||
sum((list(a[1]) for a in nav_organizer.send(request.organizer, skip_exceptions=True, request=request, organizer=request.organizer)),
|
||||
sum((list(a[1]) for a in nav_organizer.send(request.organizer, request=request, organizer=request.organizer)),
|
||||
[]),
|
||||
key=lambda r: (1 if r.get('parent') else 0, r['label'])
|
||||
))
|
||||
|
||||
@@ -370,7 +370,7 @@ def event_index(request, organizer, event):
|
||||
|
||||
widgets = []
|
||||
if can_view_orders:
|
||||
for r, result in event_dashboard_widgets.send(sender=request.event, subevent=subevent, lazy=True, skip_exceptions=True):
|
||||
for r, result in event_dashboard_widgets.send(sender=request.event, subevent=subevent, lazy=True):
|
||||
widgets.extend(result)
|
||||
|
||||
ctx = {
|
||||
@@ -406,7 +406,7 @@ def event_index_widgets_lazy(request, organizer, event):
|
||||
request=request)
|
||||
widgets = []
|
||||
if can_view_orders:
|
||||
for r, result in event_dashboard_widgets.send(sender=request.event, subevent=subevent, lazy=False, skip_exceptions=True):
|
||||
for r, result in event_dashboard_widgets.send(sender=request.event, subevent=subevent, lazy=False):
|
||||
widgets.extend(result)
|
||||
|
||||
return build_json_response(widgets)
|
||||
@@ -666,7 +666,7 @@ def user_index_widgets_lazy(request):
|
||||
|
||||
def user_index(request):
|
||||
widgets = []
|
||||
for r, result in user_dashboard_widgets.send(request, skip_exceptions=True, user=request.user):
|
||||
for r, result in user_dashboard_widgets.send(request, user=request.user):
|
||||
widgets.extend(result)
|
||||
|
||||
ctx = {
|
||||
|
||||
@@ -31,7 +31,8 @@
|
||||
# Unless required by applicable law or agreed to in writing, software distributed under the Apache License 2.0 is
|
||||
# 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.
|
||||
import importlib_metadata as metadata
|
||||
from importlib import metadata as metadata
|
||||
|
||||
from django.conf import settings
|
||||
from django.contrib import messages
|
||||
from django.db import transaction
|
||||
|
||||
@@ -239,7 +239,7 @@ class ActionView(View):
|
||||
})
|
||||
|
||||
def get(self, request, *args, **kwargs):
|
||||
u = request.GET.get('query', '').strip()
|
||||
u = request.GET.get('query', '')
|
||||
if len(u) < 2:
|
||||
return JsonResponse({'results': []})
|
||||
|
||||
|
||||
@@ -41,7 +41,7 @@ from json import loads
|
||||
from pathlib import Path
|
||||
from urllib.parse import urlparse
|
||||
|
||||
import importlib_metadata as metadata
|
||||
from importlib import metadata
|
||||
from django.core.exceptions import ImproperlyConfigured
|
||||
from django.utils.crypto import get_random_string
|
||||
from kombu import Queue
|
||||
|
||||
Reference in new issue
Block a user