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)
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)
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)
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)