Edited membership_order_list.html to allow “become a member” option.Edited membership_order_list.html for new deactivate membership flow.Fixed get_current_membership function .Fixed Reactivated membership view.Fixed Mixin to know if an user is an active member or not.

This commit is contained in:
Levi 2016-10-31 23:01:43 -05:00
commit 56776e8894
5 changed files with 105 additions and 14 deletions

View file

@ -1,5 +1,11 @@
from django.core.urlresolvers import reverse_lazy
from django.contrib.auth.mixins import LoginRequiredMixin
from django.views.generic import UpdateView
from django.db import models
from django.http import HttpResponseRedirect
from django.contrib import messages
from membership.models import StripeCustomer
from utils.models import BillingAddress
@ -50,3 +56,27 @@ class Ordereable(models.Model):
instance.cc_brand = stripe_charge.source.brand
instance.save()
return instance
class ChangeMembershipStatusMixin(LoginRequiredMixin, UpdateView):
success_message = None
success_url = reverse_lazy('digitalglarus:membership_orders_list')
login_url = reverse_lazy('digitalglarus:login')
fields = '__all__'
def get_object(self):
from .models import MembershipOrder
membership_order = MembershipOrder.objects.\
filter(customer__user=self.request.user).last()
if not membership_order:
raise AttributeError("Membership does not exists")
membership = membership_order.membership
return membership
def post(self, *args, **kwargs):
membership = self.get_object()
membership.activate()
messages.add_message(self.request, messages.SUCCESS, self.success_message)
return HttpResponseRedirect(self.success_url)