Skip to content
Snippets Groups Projects
Commit e44c07c5 authored by Pelle Koster's avatar Pelle Koster
Browse files

make registration types to ignore in error report configurable

parent 3a03d520
No related branches found
No related tags found
No related merge requests found
...@@ -7,5 +7,13 @@ ...@@ -7,5 +7,13 @@
"VISIT_EXPO_ID": "18lm2fafttito", "VISIT_EXPO_ID": "18lm2fafttito",
"SEND_ERROR_EMAILS_TO": [], "SEND_ERROR_EMAILS_TO": [],
"MAX_INVOICE_DUE_DATE": "2025-05-23", "MAX_INVOICE_DUE_DATE": "2025-05-23",
"MAX_BANK_TRANSFER_ALLOWED_DATE": "2025-05-12" "MAX_BANK_TRANSFER_ALLOWED_DATE": "2025-05-12",
"ERROR_REPORT_IGNORE_REGISTRATION_TYPES": [
"VIP",
"Staff",
"FTP",
"Partner",
"Online Participant",
"E-NREN"
]
} }
\ No newline at end of file
from typing import Collection
from django.conf import settings
import stripe import stripe
from stripe_checkout.stripe_checkout import visit from stripe_checkout.stripe_checkout import visit
...@@ -36,10 +38,13 @@ class VisitorWrapper(StripeWrapper): ...@@ -36,10 +38,13 @@ class VisitorWrapper(StripeWrapper):
class PossibleErrorReporter(CSVReporter): class PossibleErrorReporter(CSVReporter):
def iter_report_items(self, data): def iter_report_items(self, data):
ignore_registration_types = set(
getattr(settings, "ERROR_REPORT_IGNORE_REGISTRATION_TYPES", [])
)
seen = set() seen = set()
for obj in super().iter_report_items(data): for obj in super().iter_report_items(data):
seen.add(obj["Email address"]) seen.add(obj["Email address"])
if self._is_suspect(obj): if self._is_suspect(obj, ignore_registration_types):
yield obj yield obj
unseen_invoices: dict[str, list[dict]] = {} unseen_invoices: dict[str, list[dict]] = {}
for obj_id, obj in data["stripe"].items(): for obj_id, obj in data["stripe"].items():
...@@ -60,8 +65,8 @@ class PossibleErrorReporter(CSVReporter): ...@@ -60,8 +65,8 @@ class PossibleErrorReporter(CSVReporter):
} }
@staticmethod @staticmethod
def _is_suspect(obj: dict): def _is_suspect(obj: dict, ignore_registration_types: Collection[str]):
if obj["Registration Type"] in {"VIP", "Staff"}: if obj["Registration Type"] in ignore_registration_types:
return False return False
return obj["Invoice Count"] != 1 return obj["Invoice Count"] != 1
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment