Fix rare crash in MembershipStep

This commit is contained in:
Raphael Michel
2022-11-16 17:14:38 +01:00
parent 616cc42b9c
commit a337cf8efa

View File

@@ -52,7 +52,7 @@ from django.utils.translation import (
from django.views.generic.base import TemplateResponseMixin from django.views.generic.base import TemplateResponseMixin
from django_scopes import scopes_disabled from django_scopes import scopes_disabled
from pretix.base.models import Customer, Order from pretix.base.models import Customer, Membership, Order
from pretix.base.models.orders import InvoiceAddress, OrderPayment from pretix.base.models.orders import InvoiceAddress, OrderPayment
from pretix.base.models.tax import TaxedPrice, TaxRule from pretix.base.models.tax import TaxedPrice, TaxRule
from pretix.base.services.cart import ( from pretix.base.services.cart import (
@@ -401,10 +401,15 @@ class MembershipStep(CartMixin, TemplateFlowStep):
def forms(self): def forms(self):
forms = [] forms = []
if self.cart_customer:
memberships = list(self.cart_customer.memberships.with_usages().filter( memberships = list(self.cart_customer.memberships.with_usages().filter(
Q(Q(membership_type__max_usages__isnull=True) | Q(usages__lt=F('membership_type__max_usages'))), Q(Q(membership_type__max_usages__isnull=True) | Q(usages__lt=F('membership_type__max_usages'))),
canceled=False canceled=False
).select_related('membership_type')) ).select_related('membership_type'))
else:
# Only possible to reach if you have a product that requries membership but customer accoutns have been
# disabled entirely
memberships = Membership.objects.none()
for p in self.applicable_positions: for p in self.applicable_positions:
form = MembershipForm( form = MembershipForm(