From 08adadffbf81d168c42f8de0f9f0d19800a50be3 Mon Sep 17 00:00:00 2001 From: rizwanisready Date: Mon, 12 Aug 2024 14:58:44 +0530 Subject: [PATCH] my subscriptions page 5 --- manage_subscriptions/views.py | 32 +++++++++++++++++++++++--------- 1 file changed, 23 insertions(+), 9 deletions(-) diff --git a/manage_subscriptions/views.py b/manage_subscriptions/views.py index 3ae8910..d5c6efa 100644 --- a/manage_subscriptions/views.py +++ b/manage_subscriptions/views.py @@ -658,10 +658,6 @@ class ActiveSubscriptionView(TemplateView): jwt.InvalidTokenError, ): return HttpResponseBadRequest("Invalid token or user not found") - return super().get(request, *args, **kwargs) - - def get_context_data(self, **kwargs): - request = self.request today = timezone.now().date() if request.user.is_authenticated: active_subscription = ( @@ -678,12 +674,30 @@ class ActiveSubscriptionView(TemplateView): .first() ) - if active_subscription and active_subscription.end_date > today: - context = super().get_context_data(**kwargs) - context["active_subscription"] = active_subscription - return context - else: + if not active_subscription or active_subscription.end_date < today: return HttpResponseRedirect(reverse("manage_subscriptions:stripe")) + return super().get(request, *args, **kwargs) + + def get_context_data(self, **kwargs): + context = super().get_context_data(**kwargs) + request = self.request + today = timezone.now().date() + if request.user.is_authenticated: + active_subscription = ( + PrincipalSubscription.objects.filter( + principal=request.user, + is_paid=True, + cancelled=False, + deleted=False, + active=True, + status=SubscriptionStatus.ACTIVE, + ) + .select_related("principal") # Optimize query + .order_by("-grace_period_end_date") + .first() + ) + context["active_subscription"] = active_subscription + return context class CancelSubscriptionView(LoginRequiredMixin, generic.View):