def subscriptions(request): group = get_last_used_group(request.user) context = base_context(request, group.id) try: subscription = Subscription.objects.get(user=request.user) except Subscription.DoesNotExist: Subscription.subscribe_for_the_first_time(request.user, request.user) subscription = Subscription.objects.get(user=request.user) waiting_payment_subscriptions = Payment.objects.filter(created_by=request.user, status=WAITING).order_by( "datetime_created" ) subscriptions = Subscriptions.objects.filter(subscription=subscription).order_by("-datetime_created") my_payments = Payment.objects.filter( Q(status=PAID) | Q(status=NOT_ENOUGH_MONEY_ARRIVED) | Q(status=CANCELED), created_by=request.user ).order_by("-datetime_created") previous = None for wps in waiting_payment_subscriptions: wps.other_users_included_in_payment = wps.other_users_included_in_payment(request.user) wps.me_included = wps.me_included_in_payment(request.user) if wps.me_included: if not previous: wps.start_date = subscription.expiration_date wps.end_date = wps.start_date + datetime.timedelta(days=wps.subscription_duration * 31) else: wps.start_date = previous.end_date wps.end_date = wps.start_date + datetime.timedelta(days=wps.subscription_duration * 31) previous = wps context["sepa_address"] = settings.PAYMENT["sepa"] context["subscription"] = subscription context["waiting_payment_subscriptions"] = waiting_payment_subscriptions context["subscriptions"] = subscriptions context["my_payments"] = my_payments context["show_hide_canceled_button"] = False context["user"] = request.user context["subscription"] = Subscription.objects.get(user=request.user) # 'others_included': None, # 'past_subscriptions': past_subscriptions, context["title"] = _("My subscriptions") context["site_title"] = g.SITE_TITLE context["section"] = "settings" context["NOT_ENOUGH_MONEY_ARRIVED_STATUS"] = NOT_ENOUGH_MONEY_ARRIVED context["NO_MONEY_ARRIVED_STATUS"] = NO_MONEY_ARRIVED context["WAITING_STATUS"] = WAITING context["CANCELED_STATUS"] = CANCELED context["ALMOST_PAID_STATUS"] = ALMOST_PAID context["PAID_STATUS"] = PAID context["RUNNING_STATUS"] = RUNNING return render(request, "subscription/subscriptions.html", context)
def get_subscribed(self): from subscription.models import Subscription Subscription.subscribe_for_the_first_time(self, self) Subscription.move_from_email_to_user(self) try: subscription = Subscription.objects.get(user=self) except Subscription.DoesNotExist: return False if subscription.days_left > 0: return True return False