Example #1
0
def membership(request, username):
    user = get_object_or_404(User, username=username)

    start = today = timezone.localtime(timezone.now()).date()
    last_membership = user.profile.last_membership()
    if last_membership and last_membership.end_date and last_membership.end_date > today - timedelta(days=10):
        start = (last_membership.end_date + timedelta(days=1))
    last = start + MonthDelta(1) - timedelta(days=1)

    if request.method == 'POST':
        membership_form = MembershipForm(request.POST, request.FILES)
        try:
            if membership_form.is_valid():
                membership_form.created_by = request.user
                membership_form.save()
                return HttpResponseRedirect(reverse('staff_user_detail', kwargs={'username': username}))
        except Exception as e:
            messages.add_message(request, messages.ERROR, e)
    else:
        membership_form = MembershipForm(initial={'username': username, 'start_date': start})

    # Send them to the update page if we don't have an end date
    if (last_membership and not last_membership.end_date):
        return HttpResponseRedirect(reverse('staff_membership', kwargs={'membership_id': last_membership.id}))

    plans = MembershipPlan.objects.filter(enabled=True).order_by('name')
    context = {'user':user, 'membership_plans': plans,
        'membership_form': membership_form, 'today': today.isoformat(),
        'last': last.isoformat()}
    return render(request, 'staff/membership.html', context)
Example #2
0
def membership(request, membership_id):
    membership = get_object_or_404(Membership, pk=membership_id)

    if request.method == 'POST':
        membership_form = MembershipForm(request.POST, request.FILES)
        try:
            if membership_form.is_valid():
                membership_form.save()
                return HttpResponseRedirect(
                    reverse('staff:user:detail',
                            kwargs={'username': membership.user.username}))
        except Exception as e:
            messages.add_message(request, messages.ERROR, e)
    else:
        membership_form = MembershipForm(
            initial={
                'membership_id': membership.id,
                'username': membership.user.username,
                'membership_plan': membership.membership_plan,
                'start_date': membership.start_date,
                'end_date': membership.end_date,
                'monthly_rate': membership.monthly_rate,
                'dropin_allowance': membership.dropin_allowance,
                'daily_rate': membership.daily_rate,
                'has_desk': membership.has_desk,
                'has_key': membership.has_key,
                'has_mail': membership.has_mail,
                'paid_by': membership.paid_by
            })

    today = timezone.localtime(timezone.now()).date()
    last = membership.next_billing_date() - timedelta(days=1)

    context = {
        'user': membership.user,
        'membership': membership,
        'membership_plans': MembershipPlan.objects.all(),
        'membership_form': membership_form,
        'today': today.isoformat(),
        'last': last.isoformat()
    }
    return render(request, 'staff/user/membership.html', context)
Example #3
0
def add_membership(request, username):
    user = get_object_or_404(User, username=username)

    start = today = timezone.localtime(timezone.now()).date()
    last_membership = user.profile.last_membership()
    if last_membership and last_membership.end_date and last_membership.end_date > today - timedelta(
            days=10):
        start = (last_membership.end_date + timedelta(days=1))
    last = start + relativedelta(months=1) - timedelta(days=1)

    if request.method == 'POST':
        membership_form = MembershipForm(request.POST, request.FILES)
        try:
            if membership_form.is_valid():
                membership_form.created_by = request.user
                membership_form.save()
                return HttpResponseRedirect(
                    reverse('staff:user:detail', kwargs={'username':
                                                         username}))
        except Exception as e:
            messages.add_message(request, messages.ERROR, e)
    else:
        membership_form = MembershipForm(initial={
            'username': username,
            'start_date': start
        })

    # Send them to the update page if we don't have an end date
    if (last_membership and not last_membership.end_date):
        return HttpResponseRedirect(
            reverse('staff:user:membership',
                    kwargs={'membership_id': last_membership.id}))

    plans = MembershipPlan.objects.filter(enabled=True).order_by('name')
    context = {
        'user': user,
        'membership_plans': plans,
        'membership_form': membership_form,
        'today': today.isoformat(),
        'last': last.isoformat()
    }
    return render(request, 'staff/user/membership.html', context)
Example #4
0
def membership(request, membership_id):
    membership = get_object_or_404(Membership, pk=membership_id)

    if request.method == 'POST':
        membership_form = MembershipForm(request.POST, request.FILES)
        try:
            if membership_form.is_valid():
                membership_form.save()
                return HttpResponseRedirect(reverse('staff_user_detail', kwargs={'username': membership.user.username}))
        except Exception as e:
            messages.add_message(request, messages.ERROR, e)
    else:
        membership_form = MembershipForm(initial={'membership_id': membership.id, 'username': membership.user.username, 'membership_plan': membership.membership_plan,
                                                  'start_date': membership.start_date, 'end_date': membership.end_date, 'monthly_rate': membership.monthly_rate, 'dropin_allowance': membership.dropin_allowance,
                                                  'daily_rate': membership.daily_rate, 'has_desk': membership.has_desk, 'has_key': membership.has_key, 'has_mail': membership.has_mail,
                                                  'paid_by': membership.paid_by})

    today = timezone.localtime(timezone.now()).date()
    last = membership.next_billing_date() - timedelta(days=1)

    context = {'user': membership.user, 'membership': membership,
        'membership_plans': MembershipPlan.objects.all(), 'membership_form': membership_form,
        'today': today.isoformat(), 'last': last.isoformat()}
    return render(request, 'staff/membership.html', context)