Cancel subscription on membership deactivation + some more reorganizes + import logger
This commit is contained in:
		
					parent
					
						
							
								707e1897b3
							
						
					
				
			
			
				commit
				
					
						29c24574aa
					
				
			
		
					 1 changed files with 26 additions and 7 deletions
				
			
		| 
						 | 
				
			
			@ -1,3 +1,5 @@
 | 
			
		|||
import logging
 | 
			
		||||
 | 
			
		||||
from django.conf import settings
 | 
			
		||||
from django.shortcuts import render
 | 
			
		||||
from django.http import HttpResponseRedirect
 | 
			
		||||
| 
						 | 
				
			
			@ -35,10 +37,7 @@ from .mixins import (
 | 
			
		|||
    MembershipRequiredMixin, IsNotMemberMixin, ChangeMembershipStatusMixin
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
from .models import MembershipType, Membership, MembershipOrder, Booking, BookingPrice,\
 | 
			
		||||
    BookingOrder, BookingCancellation
 | 
			
		||||
 | 
			
		||||
from .mixins import MembershipRequiredMixin, IsNotMemberMixin
 | 
			
		||||
logger = logging.getLogger(__name__)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class IndexView(TemplateView):
 | 
			
		||||
| 
						 | 
				
			
			@ -282,7 +281,6 @@ class BookingPaymentView(LoginRequiredMixin, MembershipRequiredMixin, FormView):
 | 
			
		|||
        booking_data = {
 | 
			
		||||
            'start_date': start_date,
 | 
			
		||||
            'end_date': end_date,
 | 
			
		||||
            'start_date': start_date,
 | 
			
		||||
            'free_days': free_days,
 | 
			
		||||
            'price': normal_price,
 | 
			
		||||
            'final_price': final_price,
 | 
			
		||||
| 
						 | 
				
			
			@ -529,8 +527,29 @@ class MembershipDeactivateView(LoginRequiredMixin, UpdateView):
 | 
			
		|||
    def post(self, *args, **kwargs):
 | 
			
		||||
        membership = self.get_object()
 | 
			
		||||
        membership.deactivate()
 | 
			
		||||
 | 
			
		||||
        messages.add_message(self.request, messages.SUCCESS, self.success_message)
 | 
			
		||||
        messages.add_message(
 | 
			
		||||
            self.request, messages.SUCCESS, self.success_message
 | 
			
		||||
        )
 | 
			
		||||
        # cancel Stripe subscription
 | 
			
		||||
        stripe_utils = StripeUtils()
 | 
			
		||||
        membership_order = MembershipOrder.objects.filter(
 | 
			
		||||
            customer__user=self.request.user
 | 
			
		||||
        ).last()
 | 
			
		||||
        if membership_order.subscription_id:
 | 
			
		||||
            result = stripe_utils.unsubscribe_customer(
 | 
			
		||||
                subscription_id=membership_order.subscription_id
 | 
			
		||||
            )
 | 
			
		||||
            stripe_subscription_obj = result.get('response_object')
 | 
			
		||||
            # Check if the subscription was canceled
 | 
			
		||||
            if (stripe_subscription_obj is None or
 | 
			
		||||
                    stripe_subscription_obj.status != 'canceled'):
 | 
			
		||||
                error_msg = result.get('error')
 | 
			
		||||
                logger.error(
 | 
			
		||||
                    "Could not cancel Digital Glarus subscription. Reason: "
 | 
			
		||||
                    "{reason}".format(
 | 
			
		||||
                        reason=error_msg
 | 
			
		||||
                    )
 | 
			
		||||
                )
 | 
			
		||||
 | 
			
		||||
        return HttpResponseRedirect(self.success_url)
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue