コード例 #1
0
def cancel_subscription(request, subscription_id):
    subscription = get_object_or_404(Subscription, id=subscription_id)
    now = timezone.now().date()
    if now <= cancelation_date():
        end_date = end_of_business_year()
    else:
        end_date = end_of_next_business_year()
    if request.method == 'POST':
        for extra in subscription.extra_subscription_set.all():
            if extra.active is True:
                extra.canceled = True
                extra.save()
            elif extra.active is False and extra.deactivation_date is None:
                extra.delete()
        if subscription.active is True and subscription.canceled is False:
            subscription.canceled = True
            subscription.end_date = request.POST.get('end_date')
            subscription.save()
            message = request.POST.get('message')
            send_subscription_canceled(subscription, message)
        elif subscription.active is False and subscription.deactivation_date is None:
            subscription.delete()
        return redirect('sub-detail')

    renderdict = get_menu_dict(request)
    renderdict.update({
        'end_date': end_date,
    })
    return render(request, 'cancelsubscription.html', renderdict)
コード例 #2
0
def subscription_change(request, subscription_id):
    '''
    change an subscription
    '''
    subscription = get_object_or_404(Subscription, id=subscription_id)
    now = timezone.now().date()
    can_change = not (temporal.cancelation_date() <= now <
                      temporal.start_of_next_business_year())
    renderdict = get_menu_dict(request)
    renderdict.update({
        'subscription':
        subscription,
        'member':
        request.user.member,
        'change_size':
        can_change,
        'next_cancel_date':
        temporal.next_cancelation_date(),
        'next_extra_subscription_date':
        Subscription.next_extra_change_date(),
        'next_business_year':
        temporal.start_of_next_business_year(),
        'sub_change_addons':
        addons.config.get_sub_changes(),
    })
    return render(request, 'subscription_change.html', renderdict)
コード例 #3
0
def cancel_subscription(request, subscription_id):
    subscription = get_object_or_404(Subscription, id=subscription_id)
    now = timezone.now().date()
    end_date = end_of_business_year(
    ) if now <= cancelation_date() else end_of_next_business_year()
    if request.method == 'POST':
        cancel_sub(subscription, request.POST.get('end_date'),
                   request.POST.get('message'))
        return redirect('sub-detail')
    renderdict = get_menu_dict(request)
    renderdict.update({
        'end_date': end_date,
    })
    return render(request, 'cancelsubscription.html', renderdict)
コード例 #4
0
def cancel_subscription(request, subscription_id):
    subscription = get_object_or_404(Subscription, id=subscription_id)
    now = timezone.now().date()
    end_date = end_of_business_year(
    ) if now <= cancelation_date() else end_of_next_business_year()
    if request.method == 'POST':
        for extra in subscription.extra_subscription_set.all():
            cancel_extra_sub(extra)
        for part in subscription.active_parts.all():
            part.cancel()
        for part in subscription.future_parts.all():
            part.delete()
        cancel_sub(subscription, request.POST.get('end_date'),
                   request.POST.get('message'))
        return redirect('sub-detail')
    renderdict = get_menu_dict(request)
    renderdict.update({
        'end_date': end_date,
    })
    return render(request, 'cancelsubscription.html', renderdict)