示例#1
0
def activate_future_types(request, subscription_id):
    subscription = get_object_or_404(Subscription, id=subscription_id)
    for type in TSST.objects.filter(subscription=subscription):
        type.delete()
    for type in TFSST.objects.filter(subscription=subscription):
        TSST.objects.create(subscription=subscription, type=type.type)
    return return_to_previous_location(request)
示例#2
0
def size_change(request, subscription_id):
    """
    change the size of a subscription
    """
    subscription = get_object_or_404(Subscription, id=subscription_id)
    parts_order_allowed = subscription.waiting or subscription.active
    if request.method == 'POST':
        if not parts_order_allowed:
            raise ValidationError(
                _('Für gekündigte {} können keine Bestandteile bestellt werden'
                  ).format(Config.vocabulary('subscription_pl')),
                code='invalid')
        form = SubscriptionPartOrderForm(subscription, request.POST)
        if form.is_valid():
            create_subscription_parts(subscription, form.get_selected())
            return return_to_previous_location(request)
    else:
        form = SubscriptionPartOrderForm()
    renderdict = get_menu_dict(request)
    renderdict.update({
        'form': form,
        'subscription': subscription,
        'hours_used': Config.assignment_unit() == 'HOURS',
        'next_cancel_date': temporal.next_cancelation_date(),
        'parts_order_allowed': parts_order_allowed,
    })
    return render(request, 'size_change.html', renderdict)
示例#3
0
def set_change_date(request):
    if request.method != 'POST':
        raise Http404
    raw_date = request.POST.get('date')
    date = timezone.datetime.strptime(raw_date, '%m/%d/%Y').date()
    request.session['changedate'] = date
    return return_to_previous_location(request)
示例#4
0
def deactivate_subscription(request, subscription_id):
    subscription = get_object_or_404(Subscription, id=subscription_id)
    change_date = request.session.get('changedate', None)
    try:
        subscription.deactivate(change_date)
    except ValidationError as e:
        return error_page(request, e.message)
    return return_to_previous_location(request)
示例#5
0
def deactivate_extra(request, extra_id):
    extra = get_object_or_404(ExtraSubscription, id=extra_id)
    change_date = request.session.get('changedate', None)
    if extra.active is True:
        extra.active = False
        extra.deactivation_date = change_date
        extra.save()
    return return_to_previous_location(request)
示例#6
0
def cancel_extra(request, extra_id, subscription_id):
    extra = get_object_or_404(ExtraSubscription, id=extra_id)
    if extra.active is False:
        extra.delete()
    else:
        extra.canceled = True
        extra.save()
    return return_to_previous_location(request)
示例#7
0
def cancel_part(request, part_id, subscription_id):
    part = get_object_or_404(SubscriptionPart,
                             subscription__id=subscription_id,
                             id=part_id)
    if part.activation_date is None:
        part.delete()
    else:
        part.cancel()
    return return_to_previous_location(request)
示例#8
0
def cancel_extra(request, extra_id, subscription_id):
    extra = get_object_or_404(ExtraSubscription,
                              main_subscription__id=subscription_id,
                              id=extra_id)
    if extra.activation_date is None:
        extra.delete()
    else:
        extra.cancel()
    return return_to_previous_location(request)
示例#9
0
def payout_share(request, share_id):
    share = get_object_or_404(Share, id=share_id)
    share.payback_date = timezone.now().date()
    share.save()
    member = share.member
    if member.active_shares_count == 0 and member.canceled is True:
        member.inactive = True
        member.save()
    return return_to_previous_location(request)
示例#10
0
def activate_future_content(request, subscription_id):
    subscription = get_object_or_404(Subscription, id=subscription_id)
    for content in subscription.content.products.all():
        content.delete()
    for content in subscription.content.future_products.all():
        SubscriptionContentItem.objects.create(
            subscription_content=subscription.content,
            amount=content.amount,
            product=content.product)
    return return_to_previous_location(request)
示例#11
0
def set_change_date(request):
    if request.method != 'POST':
        raise Http404
    raw_date = request.POST.get('date')
    try:
        date = timezone.datetime.strptime(raw_date, '%m/%d/%Y').date()
        request.session['changedate'] = date
    except ValueError:
        return error_page(request, _('Bitte gib ein Datum im Format MM/TT/JJJJ ein.'))
    return return_to_previous_location(request)
def activate_future_depot(request, subscription_id):
    subscription = get_object_or_404(Subscription, id=subscription_id)
    subscription.depot = subscription.future_depot
    subscription.future_depot = None
    subscription.save()
    emails = []
    for member in subscription.recipients:
        emails.append(member.email)
    membernotification.depot_changed(emails, subscription.depot)
    return return_to_previous_location(request)
示例#13
0
def depot_change_confirm(request, subscription_id):
    # Cheap copy of juntagrico util/subs.py activate_future_depots
    sub = get_object_or_404(Subscription, id=subscription_id)
    sub.depot = sub.future_depot
    sub.future_depot = None
    sub.save()
    emails = []
    for member in sub.recipients:
        emails.append(member.email)
    membernotification.depot_changed(emails, sub.depot)
    return return_to_previous_location(request)
示例#14
0
def activate_future_types(request, subscription_id):
    subscription = get_object_or_404(Subscription, id=subscription_id)
    now = timezone.now().date()
    for part in SubscriptionPartDao.get_canceled_for_subscription(
            subscription):
        part.deactivation_date = now
        part.save()
    for part in SubscriptionPartDao.get_waiting_for_subscription(subscription):
        part.activation_date = now
        part.save()
    return return_to_previous_location(request)
示例#15
0
def deactivate_subscription(request, subscription_id):
    subscription = get_object_or_404(Subscription, id=subscription_id)
    change_date = request.session.get('changedate', None)
    subscription.deactivate(change_date)
    for extra in subscription.extra_subscription_set.all():
        extra.deactivate(change_date)
    for part in subscription.active_parts.all():
        part.deactivate(change_date)
    for part in subscription.future_parts.all():
        part.delete()
    return return_to_previous_location(request)
示例#16
0
def activate_subscription(request, subscription_id):
    subscription = get_object_or_404(Subscription, id=subscription_id)
    change_date = request.session.get('changedate', None)
    try:
        subscription.activate(change_date)
        for part in subscription.future_parts.all():
            part.activate(change_date)
    except ValidationError:
        renderdict = get_menu_dict(request)
        return render(request, 'activation_error.html', renderdict)
    return return_to_previous_location(request)
示例#17
0
def activate_subscription(request, subscription_id):
    subscription = get_object_or_404(Subscription, id=subscription_id)
    change_date = request.session.get('changedate', None)
    if subscription.active is False and subscription.deactivation_date is None:
        try:
            subscription.active = True
            subscription.activation_date = change_date
            subscription.save()
        except ValidationError:
            renderdict = get_menu_dict(request)
            return render(request, 'activation_error.html', renderdict)
    return return_to_previous_location(request)
示例#18
0
def deactivate_subscription(request, subscription_id):
    subscription = get_object_or_404(Subscription, id=subscription_id)
    change_date = request.session.get('changedate', None)
    if subscription.active is True:
        subscription.active = False
        subscription.deactivation_date = change_date
        subscription.save()
        for extra in subscription.extra_subscription_set.all():
            if extra.active is True:
                extra.active = False
                extra.deactivation_date = change_date
                extra.save()
    return return_to_previous_location(request)
示例#19
0
def activate_future_types(request, subscription_id):
    subscription = get_object_or_404(Subscription, id=subscription_id)
    changedate = request.session.get('changedate', timezone.now().date())
    try:
        for part in SubscriptionPartDao.get_canceled_for_subscription(
                subscription):
            part.deactivation_date = changedate
            part.save()
        for part in SubscriptionPartDao.get_waiting_for_subscription(
                subscription):
            part.activation_date = changedate
            part.save()
    except ValidationError as e:
        return error_page(request, e.message)
    return return_to_previous_location(request)
示例#20
0
def size_change(request, subscription_id):
    """
    change the size of a subscription
    """
    subscription = get_object_or_404(Subscription, id=subscription_id)
    if request.method == 'POST':
        form = SubscriptionPartOrderForm(subscription, request.POST)
        if form.is_valid():
            create_subscription_parts(subscription, form.get_selected())
            return return_to_previous_location(request)
    else:
        form = SubscriptionPartOrderForm()
    renderdict = get_menu_dict(request)
    renderdict.update({
        'form': form,
        'subscription': subscription,
        'hours_used': Config.assignment_unit() == 'HOURS',
        'next_cancel_date': temporal.next_cancelation_date(),
    })
    return render(request, 'size_change.html', renderdict)
示例#21
0
def bills_notify(request):
    """
    List of bills to send notification e-mails
    """
    renderdict = get_menu_dict(request)

    bills_list = list(Bill.objects.filter(notification_sent=False))

    if request.method == 'POST':
        for bill in bills_list:
            send_bill_notification(bill)
            bill.notification_sent = True
            bill.save()

        return return_to_previous_location(request)

    renderdict.update({
        'bills_list': bills_list,
        'bills_count': len(bills_list),
        'email_form_disabled': True,
        'change_date_disabled': True,
    })

    return render(request, "jb/bills_notify.html", renderdict)
示例#22
0
def unset_change_date(request):
    request.session['changedate'] = None
    return return_to_previous_location(request)
示例#23
0
def deactivate_member(request, member_id):
    member = get_object_or_404(Member, id=member_id)
    member.deactivation_date = timezone.now().date()
    member.save()
    return return_to_previous_location(request)
示例#24
0
def cancel_share(request, share_id):
    share = get_object_or_404(Share, id=share_id, member=request.user.member)
    share.cancelled_date = timezone.now().date()
    share.save()
    return return_to_previous_location(request)
示例#25
0
def bills_setyear(request):
    # determine chosen billing year
    year = request.POST.get('year')
    request.session['bills_businessyear'] = year
    return return_to_previous_location(request)
示例#26
0
def activate_extra(request, extra_id):
    extra = get_object_or_404(ExtraSubscription, id=extra_id)
    change_date = request.session.get('changedate', None)
    if extra.activation_date is None and extra.deactivation_date is None:
        extra.activate(change_date)
    return return_to_previous_location(request)
示例#27
0
def deactivate_member(request, member_id):
    member = get_object_or_404(Member, id=member_id)
    member.inactive = True
    member.save()
    return return_to_previous_location(request)