Exemple #1
0
def subscription(request):
    """
    When adding new subscription, this function is called.

    @param request:
    @return:
    """

    group = get_last_used_group(request.user)
    subscription = Subscription.objects.get(user=request.user)

    context = base_context(request, group.id)

    initial_profile = {
        "company_name": context["user_profile"].company_name,
        "company_address": context["user_profile"].company_address,
        "company_postcode": context["user_profile"].company_postcode,
        "company_city": context["user_profile"].company_city,
        "company_country": context["user_profile"].company_country,
        "company_tax_id": context["user_profile"].company_tax_id,
        "company_tax_payer": context["user_profile"].company_tax_payer,
    }

    user_profile_form = UserProfileForm(initial=initial_profile)
    context["user_profile_form"] = user_profile_form
    context["subscription"] = subscription
    context["from"] = subscription.expiration_date
    context["until"] = subscription.expiration_date + datetime.timedelta(days=31)
    context["sepa_transaction_fee"] = settings.PAYMENT["sepa"]["transaction_fee"]
    context["section"] = "settings"
    context["subscription_price"] = settings.SUBSCRIPTION_PRICE
    context["title"] = _("Subscription payment")
    context["site_title"] = g.SITE_TITLE

    return render(request, "subscription/subscription.html", context)
Exemple #2
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)