diff --git a/Changelog b/Changelog index df611d74..23d2434c 100644 --- a/Changelog +++ b/Changelog @@ -1,3 +1,5 @@ +2.10.3: 2020-02-25 + * Handle 500 error in invoice list page for non-stripe users (MR!731) 2.10.2: 2020-02-04 * Introduce base price for VMs and let admins add stripe_coupon_id (MR!730) Notes for deployment: diff --git a/datacenterlight/views.py b/datacenterlight/views.py index abd17964..3c9be6db 100644 --- a/datacenterlight/views.py +++ b/datacenterlight/views.py @@ -29,7 +29,7 @@ from utils.forms import ( ) from utils.hosting_utils import ( get_vm_price_with_vat, get_all_public_keys, get_vat_rate_for_country, - get_vm_price_for_given_vat, round_up + get_vm_price_for_given_vat ) from utils.stripe_utils import StripeUtils from utils.tasks import send_plain_email_task diff --git a/hosting/views.py b/hosting/views.py index 17af51fd..0cf555f2 100644 --- a/hosting/views.py +++ b/hosting/views.py @@ -1297,9 +1297,12 @@ class InvoiceListView(LoginRequiredMixin, TemplateView): except CustomUser.DoesNotExist as dne: logger.debug("User does not exist") cu = self.request.user - invs = stripe.Invoice.list(customer=cu.stripecustomer.stripe_id, - count=100) - paginator = Paginator(invs.data, 10) + if hasattr(cu, 'stripecustomer'): + invs = stripe.Invoice.list(customer=cu.stripecustomer.stripe_id, + count=100) + else: + invs = [] + paginator = Paginator(invs.data if len(invs) > 0 else [], 10) try: invs_page = paginator.page(page) except PageNotAnInteger: @@ -1308,11 +1311,14 @@ class InvoiceListView(LoginRequiredMixin, TemplateView): invs_page = paginator.page(paginator.num_pages) else: try: - invs = stripe.Invoice.list( - customer=self.request.user.stripecustomer.stripe_id, - count=100 - ) - paginator = Paginator(invs.data, 10) + if hasattr(self.request.user, "stripecustomer"): + invs = stripe.Invoice.list( + customer=self.request.user.stripecustomer.stripe_id, + count=100 + ) + else: + invs = [] + paginator = Paginator(invs.data if len(invs) > 0 else [], 10) try: invs_page = paginator.page(page) except PageNotAnInteger: