finishing digitalglarus booking

This commit is contained in:
Levi 2016-09-29 00:04:40 -05:00
commit 447ddc7c2e
7 changed files with 137 additions and 24 deletions

View file

@ -100,11 +100,22 @@ class BookingSelectDatesView(LoginRequiredMixin, MembershipRequiredMixin, FormVi
start_date = form.cleaned_data.get('start_date')
end_date = form.cleaned_data.get('end_date')
booking_days = (end_date - start_date).days + 1
original_price, discount_price, free_days = Booking.\
price_per_day = BookingPrice.objects.get().price_per_day
original_price, final_price, free_days,\
membership_required_months, membership_required_months_price = Booking.\
booking_price(user, start_date, end_date)
total_discount = price_per_day * free_days
self.request.session.update({
'original_price': original_price,
'discount_price': discount_price,
'final_price': final_price,
'total_discount': total_discount,
'membership_required_months_price': membership_required_months_price,
'membership_required_months': membership_required_months,
'booking_price_per_day': price_per_day,
'booking_days': booking_days,
'free_days': free_days,
'start_date': start_date.strftime('%m/%d/%Y'),
@ -118,8 +129,10 @@ class BookingPaymentView(LoginRequiredMixin, MembershipRequiredMixin, FormView):
form_class = BookingBillingForm
membership_redirect_url = reverse_lazy('digitalglarus:membership_pricing')
# success_url = reverse_lazy('digitalglarus:booking_payment')
booking_needed_fields = ['original_price', 'discount_price', 'booking_days', 'free_days',
'start_date', 'end_date']
booking_needed_fields = ['original_price', 'final_price', 'booking_days', 'free_days',
'start_date', 'end_date', 'membership_required_months_price',
'membership_required_months', 'booking_price_per_day',
'total_discount']
def dispatch(self, request, *args, **kwargs):
from_booking = all(field in request.session.keys()
@ -138,7 +151,7 @@ class BookingPaymentView(LoginRequiredMixin, MembershipRequiredMixin, FormView):
'initial': {
'start_date': self.request.session.get('start_date'),
'end_date': self.request.session.get('end_date'),
'price': self.request.session.get('discount_price'),
'price': self.request.session.get('final_price'),
}
})
return form_kwargs
@ -148,11 +161,11 @@ class BookingPaymentView(LoginRequiredMixin, MembershipRequiredMixin, FormView):
booking_data = {key: self.request.session.get(key)
for key in self.booking_needed_fields}
booking_price_per_day = BookingPrice.objects.get().price_per_day
total_discount = booking_price_per_day * booking_data.get('free_days')
# booking_price_per_day = BookingPrice.objects.get().price_per_day
# total_discount = booking_price_per_day * booking_data.get('free_days')
booking_data.update({
'booking_price_per_day': booking_price_per_day,
'total_discount': total_discount,
# 'booking_price_per_day': booking_price_per_day,
# 'total_discount': total_discount,
'stripe_key': settings.STRIPE_API_PUBLIC_KEY
})
context.update(booking_data)
@ -165,7 +178,8 @@ class BookingPaymentView(LoginRequiredMixin, MembershipRequiredMixin, FormView):
start_date = data.get('start_date')
end_date = data.get('end_date')
normal_price, final_price, free_days = Booking.\
normal_price, final_price, free_days, membership_required_months,\
membership_required_months_price = Booking.\
booking_price(self.request.user, start_date, end_date)
# Get or create stripe customer
@ -213,14 +227,12 @@ class BookingPaymentView(LoginRequiredMixin, MembershipRequiredMixin, FormView):
'stripe_charge': charge,
'amount': final_price,
'original_price': normal_price,
'special_month_price': BookingPrice.objects.last().special_month_price
'special_month_price': BookingPrice.objects.last().special_month_price,
'membership_required_months': membership_required_months,
'membership_required_months_price': membership_required_months_price,
}
order = BookingOrder.create(order_data)
# request.session.update({
# 'membership_price': membership.type.first_month_price,
# 'membership_dates': membership.type.first_month_formated_range
# })
return HttpResponseRedirect(self.get_success_url(order.id))
@ -439,9 +451,15 @@ class OrdersBookingDetailView(LoginRequiredMixin, DetailView):
booking_days = (end_date - start_date).days + 1
original_price = booking.price
final_price = booking.final_price
membership_required_months = bookig_order.membership_required_months
membership_required_months_price = bookig_order.membership_required_months_price
context.update({
'original_price': original_price,
'total_discount': original_price - final_price,
'membership_required_months': membership_required_months,
'membership_required_months_price': membership_required_months_price,
'final_price': final_price,
'booking_days': booking_days,
'free_days': free_days,