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…
Reference in a new issue