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:
parent
ba2e231078
commit
56776e8894
5 changed files with 105 additions and 14 deletions
|
|
@ -65,6 +65,19 @@ class Membership(models.Model):
|
|||
start_date = models.DateField()
|
||||
end_date = models.DateField()
|
||||
|
||||
@classmethod
|
||||
def get_current_membership(cls, user):
|
||||
|
||||
has_order_current_month = Q(membershiporder__customer__user=user,
|
||||
membershiporder__created_at__month=datetime.today().month)
|
||||
# import pdb;pdb.set_trace()
|
||||
return cls.objects.\
|
||||
filter(has_order_current_month).last()
|
||||
|
||||
# def get_current_active_membership(cls, user):
|
||||
# membership = cls.get_current_membership(user)
|
||||
# return membership if membership and membership.active else None
|
||||
|
||||
@classmethod
|
||||
def get_by_user(cls, user):
|
||||
return cls.objects.\
|
||||
|
|
@ -75,15 +88,22 @@ class Membership(models.Model):
|
|||
instance = cls.objects.create(**data)
|
||||
return instance
|
||||
|
||||
@classmethod
|
||||
def activate_or_crete(cls, data, user):
|
||||
membership = cls.get_by_user(user)
|
||||
obj, created = cls.objects.update_or_create(id=membership.id, defaults=data)
|
||||
return obj
|
||||
|
||||
@classmethod
|
||||
def is_digitalglarus_active_member(cls, user):
|
||||
past_month = (datetime.today() - relativedelta(months=1)).month
|
||||
# past_month = (datetime.today() - relativedelta(months=1)).month
|
||||
has_order_current_month = Q(membershiporder__customer__user=user,
|
||||
membershiporder__created_at__month=datetime.today().month)
|
||||
has_order_past_month = Q(membershiporder__customer__user=user,
|
||||
membershiporder__created_at__month=past_month)
|
||||
# has_order_past_month = Q(membershiporder__customer__user=user,
|
||||
# membershiporder__created_at__month=past_month)
|
||||
active_membership = Q(active=True)
|
||||
return cls.objects.filter(has_order_past_month | has_order_current_month).\
|
||||
# return cls.objects.filter(has_order_past_month | has_order_current_month).\
|
||||
return cls.objects.filter(has_order_current_month).\
|
||||
filter(active_membership).exists()
|
||||
|
||||
def update_dates(self, start_date, end_date):
|
||||
|
|
@ -95,6 +115,10 @@ class Membership(models.Model):
|
|||
self.active = False
|
||||
self.save()
|
||||
|
||||
def activate(self):
|
||||
self.active = True
|
||||
self.save()
|
||||
|
||||
|
||||
class MembershipOrder(Ordereable, models.Model):
|
||||
membership = models.ForeignKey(Membership)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue