Fix issues on settings/card save/delete methods
This commit is contained in:
		
					parent
					
						
							
								31c5336e18
							
						
					
				
			
			
				commit
				
					
						7cd485bc6d
					
				
			
		
					 3 changed files with 13 additions and 30 deletions
				
			
		| 
						 | 
					@ -51,7 +51,7 @@ urlpatterns = [
 | 
				
			||||||
        name='choice_ssh_keys'),
 | 
					        name='choice_ssh_keys'),
 | 
				
			||||||
    url(r'delete_ssh_key/(?P<pk>\d+)/?$', SSHKeyDeleteView.as_view(),
 | 
					    url(r'delete_ssh_key/(?P<pk>\d+)/?$', SSHKeyDeleteView.as_view(),
 | 
				
			||||||
        name='delete_ssh_key'),
 | 
					        name='delete_ssh_key'),
 | 
				
			||||||
    url(r'delete_card/(?P<pk>\d+)/?$', SettingsView.as_view(),
 | 
					    url(r'delete_card/(?P<pk>[\w\-]+)/$', SettingsView.as_view(),
 | 
				
			||||||
        name='delete_card'),
 | 
					        name='delete_card'),
 | 
				
			||||||
    url(r'create_ssh_key/?$', SSHKeyCreateView.as_view(),
 | 
					    url(r'create_ssh_key/?$', SSHKeyCreateView.as_view(),
 | 
				
			||||||
        name='create_ssh_key'),
 | 
					        name='create_ssh_key'),
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -595,33 +595,14 @@ class SettingsView(LoginRequiredMixin, FormView):
 | 
				
			||||||
            messages.add_message(request, messages.SUCCESS, msg)
 | 
					            messages.add_message(request, messages.SUCCESS, msg)
 | 
				
			||||||
            return HttpResponseRedirect(reverse_lazy('hosting:settings'))
 | 
					            return HttpResponseRedirect(reverse_lazy('hosting:settings'))
 | 
				
			||||||
        if 'delete_card' in request.POST:
 | 
					        if 'delete_card' in request.POST:
 | 
				
			||||||
            try:
 | 
					            card = self.kwargs.get('pk')
 | 
				
			||||||
                card = UserCardDetail.objects.get(pk=self.kwargs.get('pk'))
 | 
					            stripe_utils = StripeUtils()
 | 
				
			||||||
                if (request.user.has_perm(self.permission_required[0], card)
 | 
					            stripe_utils.dissociate_customer_card(
 | 
				
			||||||
                        and
 | 
					                request.user.stripecustomer.stripe_id,
 | 
				
			||||||
                        request.user
 | 
					                card
 | 
				
			||||||
                                .stripecustomer
 | 
					            )
 | 
				
			||||||
                                .usercarddetail_set
 | 
					            msg = _("Card deassociation successful")
 | 
				
			||||||
                                .count() > 1):
 | 
					            messages.add_message(request, messages.SUCCESS, msg)
 | 
				
			||||||
                    if card.card_id is not None:
 | 
					 | 
				
			||||||
                        stripe_utils = StripeUtils()
 | 
					 | 
				
			||||||
                        stripe_utils.dissociate_customer_card(
 | 
					 | 
				
			||||||
                            request.user.stripecustomer.stripe_id,
 | 
					 | 
				
			||||||
                            card.card_id
 | 
					 | 
				
			||||||
                        )
 | 
					 | 
				
			||||||
                        if card.preferred:
 | 
					 | 
				
			||||||
                            UserCardDetail.set_default_card_from_stripe(
 | 
					 | 
				
			||||||
                                request.user.stripecustomer.stripe_id
 | 
					 | 
				
			||||||
                            )
 | 
					 | 
				
			||||||
                        card.delete()
 | 
					 | 
				
			||||||
                        msg = _("Card deassociation successful")
 | 
					 | 
				
			||||||
                        messages.add_message(request, messages.SUCCESS, msg)
 | 
					 | 
				
			||||||
                else:
 | 
					 | 
				
			||||||
                    msg = _("You are not permitted to do this operation")
 | 
					 | 
				
			||||||
                    messages.add_message(request, messages.ERROR, msg)
 | 
					 | 
				
			||||||
            except UserCardDetail.DoesNotExist:
 | 
					 | 
				
			||||||
                msg = _("The selected card does not exist")
 | 
					 | 
				
			||||||
                messages.add_message(request, messages.ERROR, msg)
 | 
					 | 
				
			||||||
            return HttpResponseRedirect(reverse_lazy('hosting:settings'))
 | 
					            return HttpResponseRedirect(reverse_lazy('hosting:settings'))
 | 
				
			||||||
        form = self.get_form()
 | 
					        form = self.get_form()
 | 
				
			||||||
        if form.is_valid():
 | 
					        if form.is_valid():
 | 
				
			||||||
| 
						 | 
					@ -697,7 +678,7 @@ class SettingsView(LoginRequiredMixin, FormView):
 | 
				
			||||||
                    messages.add_message(request, messages.SUCCESS, msg)
 | 
					                    messages.add_message(request, messages.SUCCESS, msg)
 | 
				
			||||||
            else:
 | 
					            else:
 | 
				
			||||||
                # TODO : Test this flow
 | 
					                # TODO : Test this flow
 | 
				
			||||||
                id_payment_method = form.cleaned_data.get('id_payment_method')
 | 
					                id_payment_method = request.POST.get('id_payment_method', None)
 | 
				
			||||||
                stripe_utils = StripeUtils()
 | 
					                stripe_utils = StripeUtils()
 | 
				
			||||||
                card_details = stripe_utils.get_cards_details_from_payment_method(
 | 
					                card_details = stripe_utils.get_cards_details_from_payment_method(
 | 
				
			||||||
                    id_payment_method
 | 
					                    id_payment_method
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -101,7 +101,9 @@ class StripeUtils(object):
 | 
				
			||||||
        if card_id.startswith("pm"):
 | 
					        if card_id.startswith("pm"):
 | 
				
			||||||
            logger.debug("PaymentMethod %s detached %s" % (card_id,
 | 
					            logger.debug("PaymentMethod %s detached %s" % (card_id,
 | 
				
			||||||
                                                           stripe_customer_id))
 | 
					                                                           stripe_customer_id))
 | 
				
			||||||
            customer.PaymentMethod.detach(card_id)
 | 
					            pm = stripe.PaymentMethod.retrieve(card_id)
 | 
				
			||||||
 | 
					            stripe.PaymentMethod.detach(card_id)
 | 
				
			||||||
 | 
					            pm.delete()
 | 
				
			||||||
        else:
 | 
					        else:
 | 
				
			||||||
            logger.debug("card %s detached %s" % (card_id, stripe_customer_id))
 | 
					            logger.debug("card %s detached %s" % (card_id, stripe_customer_id))
 | 
				
			||||||
            card = customer.sources.retrieve(card_id)
 | 
					            card = customer.sources.retrieve(card_id)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue