removed redirects form get_context() to get()

This commit is contained in:
Arvind Tiwari 2017-09-21 16:38:54 +05:30
parent 2c4390767d
commit 5d8fb71215

View file

@ -652,46 +652,42 @@ class OrdersHostingDetailView(LoginRequiredMixin,
context = super(DetailView, self).get_context_data(**kwargs) context = super(DetailView, self).get_context_data(**kwargs)
obj = self.get_object() obj = self.get_object()
owner = self.request.user owner = self.request.user
if 'specs' not in self.request.session:
return HttpResponseRedirect(
reverse('hosting:create_virtual_machine'))
if 'token' not in self.request.session:
return HttpResponseRedirect(reverse('hosting:payment'))
stripe_customer_id = self.request.session.get('customer') stripe_customer_id = self.request.session.get('customer')
customer = StripeCustomer.objects.filter(id=stripe_customer_id).first() customer = StripeCustomer.objects.filter(id=stripe_customer_id).first()
stripe_utils = StripeUtils() stripe_utils = StripeUtils()
card_details = stripe_utils.get_card_details(customer.stripe_id, card_details = stripe_utils.get_card_details(
self.request.session.get( customer.stripe_id,
'token')) self.request.session.get('token')
if not card_details.get('response_object'): )
msg = card_details.get('error')
messages.add_message(self.request, messages.ERROR, msg,
extra_tags='failed_payment')
return HttpResponseRedirect(
reverse('hosting:payment') + '#payment_error')
if self.request.GET.get('page', '') == 'payment': if self.request.GET.get('page') == 'payment':
context['page_header_text'] = _('Confirm Order') context['page_header_text'] = _('Confirm Order')
else: else:
context['page_header_text'] = _('Invoice') context['page_header_text'] = _('Invoice')
if obj is not None: if obj is not None:
try: try:
manager = OpenNebulaManager(email=owner.email, manager = OpenNebulaManager(
password=owner.password) email=owner.email, password=owner.password
)
vm = manager.get_vm(obj.vm_id) vm = manager.get_vm(obj.vm_id)
context['vm'] = VirtualMachineSerializer(vm).data context['vm'] = VirtualMachineSerializer(vm).data
except WrongIdError: except WrongIdError:
messages.error(self.request, messages.error(
'The VM you are looking for is unavailable at the moment. \ self.request,
Please contact Data Center Light support.' 'The VM you are looking for is unavailable at the moment. \
) Please contact Data Center Light support.'
)
self.kwargs['error'] = 'WrongIdError' self.kwargs['error'] = 'WrongIdError'
context['error'] = 'WrongIdError' context['error'] = 'WrongIdError'
except ConnectionRefusedError: except ConnectionRefusedError:
messages.error(self.request, messages.error(
'In order to create a VM, you need to create/upload your SSH KEY first.' self.request,
) 'In order to create a VM, you need to create/upload your SSH KEY first.'
)
elif not card_details.get('response_object'):
context['failed_payment'] = True
context['card_details'] = card_details
else: else:
context['site_url'] = reverse('hosting:create_virtual_machine') context['site_url'] = reverse('hosting:create_virtual_machine')
context['cc_last4'] = card_details.get('response_object').get( context['cc_last4'] = card_details.get('response_object').get(
@ -701,6 +697,26 @@ class OrdersHostingDetailView(LoginRequiredMixin,
context['vm'] = self.request.session.get('specs') context['vm'] = self.request.session.get('specs')
return context return context
def get(self, request, *args, **kwargs):
if 'specs' not in self.request.session:
return HttpResponseRedirect(
reverse('hosting:create_virtual_machine')
)
if 'token' not in self.request.session:
return HttpResponseRedirect(reverse('hosting:payment'))
self.object = self.get_object()
context = self.get_context_data(object=self.object)
if 'failed_payment' in context:
msg = context['card_details'].get('error')
messages.add_message(
self.request, messages.ERROR, msg,
extra_tags='failed_payment'
)
return HttpResponseRedirect(
reverse('hosting:payment') + '#payment_error'
)
return self.render_to_response(context)
def post(self, request): def post(self, request):
template = request.session.get('template') template = request.session.get('template')
specs = request.session.get('specs') specs = request.session.get('specs')