This commit is contained in:
Levi 2016-11-28 10:32:37 -05:00
commit f3ebc52679
8 changed files with 435 additions and 6 deletions

View file

@ -13,7 +13,7 @@ from django.utils.translation import get_language
from djangocms_blog.models import Post
from django.contrib import messages
from django.http import JsonResponse
from django.views.generic import View, DetailView, ListView
from django.views.generic import View, DetailView, ListView, DeleteView
from .models import Supporter
@ -34,7 +34,7 @@ from utils.models import UserBillingAddress
from .forms import LoginForm, SignupForm, MembershipBillingForm, BookingDateForm,\
BookingBillingForm
BookingBillingForm, CancelBookingForm
from .models import MembershipType, Membership, MembershipOrder, Booking, BookingPrice,\
BookingOrder
@ -568,14 +568,63 @@ class OrdersMembershipDetailView(LoginRequiredMixin, DetailView):
return context
class OrdersBookingDetailView(LoginRequiredMixin, DetailView):
# class BookingCancelView(FormView):
# success_message = "Your booking has been cancelled"
# model = BookingOrder
# form_class = CancelBookingForm
# def get_success_url(self):
# pk = self.kwargs.get(self.pk_url_kwarg)
# return reverse_lazy('digitalglarus:booking_orders_list', kwargs={'pk': pk})
# def form_valid(self, form):
# booking_order = self.get_object()
# # booking_order.cancel()
# request = self.request
# return HttpResponseRedirect(self.get_success_url())
class OrdersBookingDetailView(LoginRequiredMixin, UpdateView):
template_name = "digitalglarus/booking_orders_detail.html"
context_object_name = "order"
login_url = reverse_lazy('digitalglarus:login')
form_class = CancelBookingForm
success_message = "You booking has been cancelled"
# permission_required = ['view_hostingorder']
model = BookingOrder
def get_context_data(self, *args, **kwargs):
def get_success_url(self):
pk = self.kwargs.get(self.pk_url_kwarg)
return reverse_lazy('digitalglarus:booking_orders_detail', kwargs={'pk': pk})
def form_valid(self, form):
booking_order = self.get_object()
booking_order.cancel()
request = self.request
context = {
'order': booking_order,
'booking': booking_order.booking,
'base_url': "{0}://{1}".format(request.scheme, request.get_host())
}
email_data = {
'subject': 'Your membership has been charged',
'to': request.user.email,
'context': context,
'template_name': 'booking_cancellation',
'template_path': 'digitalglarus/emails/'
}
email = BaseEmail(**email_data)
email.send()
messages.add_message(self.request, messages.SUCCESS, self.success_message)
return HttpResponseRedirect(self.get_success_url())
def get_context_data(self, **kwargs):
context = super(OrdersBookingDetailView, self).get_context_data(**kwargs)