Beispiel #1
0
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)
Beispiel #2
0
    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