Private
Public Access
1
0

automatic expiry of non-recurring users

This commit is contained in:
Sander Roosendaal
2018-11-27 12:29:30 +01:00
parent 72743fed0e
commit e0303b90b6
6 changed files with 83 additions and 2 deletions

View File

@@ -5,8 +5,9 @@ import datetime
from utils import myqueue
import django_rq
queue = django_rq.get_queue('default')
from rowers.tasks import handle_updatefitnessmetric
from rowers.tasks import handle_updatefitnessmetric,handle_sendemail_expired
from rowers.mytypes import otwtypes
from django.contrib import messages
def getrower(user):
try:
@@ -101,3 +102,24 @@ class GDPRMiddleWare(object):
return redirect(
'/rowers/me/gdpr-optin/?next=%s' % nexturl
)
class RowerPlanMiddleWare(object):
def process_request(self, request):
if request.user.is_authenticated() and request.user.rower.rowerplan != 'basic':
if request.user.rower.paymenttype == 'single':
if request.user.rower.planexpires < timezone.now().date():
messg = 'Your paid plan has expired. We have reset you to a free basic plan.'
messages.error(request,messg)
r = getrower(request.user)
r.rowerplan = 'basic'
r.save()
# send email
job = myqueue(queue,
handle_sendemail_expired,
r.user.email,
r.user.first_name,
r.user.last_name,
str(r.planexpires))
elif request.user.rower.planexpires-datetime.timedelta(days=5)<timezone.now().date():
messg = 'Your paid plan will expire soon. Your account will be reset to basic on %d' % request.user.rower.planexpires
messages.info(request,messg)