From 55a0ef2b624edda3fa4688f705501dd4362fda8d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Felix=20Sch=C3=A4fer?= <felix@thegcat.net>
Date: Fri, 15 Apr 2022 16:51:52 +0200
Subject: [PATCH] Adapt to django_scopes

---
 CHANGELOG.md                   |  4 ++++
 pretix_matrix_inviter/tasks.py | 14 ++++++++------
 2 files changed, 12 insertions(+), 6 deletions(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 660ae6b..89a8ba6 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -9,6 +9,10 @@ Versioning](https://semver.org/spec/v2.0.0.html).
 
 ## [Unreleased]
 
+### Fixed
+
+- Adapt to django_scopes
+
 ## [1.2.2] - 2022-02-11
 
 ### Fixed
diff --git a/pretix_matrix_inviter/tasks.py b/pretix_matrix_inviter/tasks.py
index 92681ca..4817a7f 100644
--- a/pretix_matrix_inviter/tasks.py
+++ b/pretix_matrix_inviter/tasks.py
@@ -1,8 +1,9 @@
 import logging
 import requests
 from celery.exceptions import MaxRetriesExceededError
-from pretix.base.models import Event, Order, OrderPosition
-from pretix.base.services.tasks import TransactionAwareTask
+from django_scopes import scopes_disabled
+from pretix.base.models import Order, OrderPosition
+from pretix.base.services.tasks import ProfiledEventTask
 from pretix.celery_app import app
 from urllib.parse import quote as url_quote
 
@@ -12,7 +13,7 @@ logger = logging.getLogger(__name__)
 
 
 @app.task(
-    base=TransactionAwareTask,
+    base=ProfiledEventTask,
     bind=True,
     max_retries=10,
     retry_backoff=True,
@@ -21,7 +22,8 @@ logger = logging.getLogger(__name__)
 def matrix_inviter_invite(
     self, event: int, order: int, order_position: int, invitation_reason: str
 ):
-    order_position = OrderPosition.objects.get(pk=order_position)
+    with scopes_disabled():
+        order_position = OrderPosition.objects.get(pk=order_position)
 
     user_matrix_id = order_position.meta_info_data.get("question_form_data", {}).get(
         "matrix_inviter_matrix_id"
@@ -30,8 +32,8 @@ def matrix_inviter_invite(
     if not user_matrix_id:
         return
 
-    event = Event.objects.get(pk=event)
-    order = Order.objects.get(pk=order)
+    with scopes_disabled():
+        order = Order.objects.get(pk=order)
     server = event.settings.matrix_inviter_matrix_server
     token = event.settings.matrix_inviter_authorization_token
     room_id = matrix_room_id(server, event.settings.matrix_inviter_matrix_room)
-- 
GitLab