diff --git a/rowers/rower_rules.py b/rowers/rower_rules.py index 40f2bff1..cb906bfd 100644 --- a/rowers/rower_rules.py +++ b/rowers/rower_rules.py @@ -82,6 +82,20 @@ def user_is_not_basic(user): return False +@rules.predicate +def can_start_trial(user): + if user.is_anonymous: + return False + + return user.rower.protrialexpires > datetime.date(1970,1,1) + +@rules.predicate +def can_start_plantrial(user): + if user.is_anonymous: + return False + + return user.rower.plantrialexpires > datetime.date(1970,1,1) + @rules.predicate def is_coach(user): return user.rower.rowerplan in ['coach','freecoach'] diff --git a/rowers/views/teamviews.py b/rowers/views/teamviews.py index 4997483e..93245597 100644 --- a/rowers/views/teamviews.py +++ b/rowers/views/teamviews.py @@ -437,7 +437,8 @@ def team_requestmembership_view(request,teamid,userid): r = getrequestrower(request,userid=userid) - if t.manager.rower.rowerplan in ['plan','pro'] and r.rowerplan == 'basic': + #if t.manager.rower.rowerplan in ['plan','pro'] and r.rowerplan == 'basic': + if not can_join_team(r.user,t) messages.error(request, "You have to be on a paid plan (Pro or higher) to join this team. As a basic user you can only join teams managed by users on the Coach plan.") diff --git a/rowers/views/userviews.py b/rowers/views/userviews.py index b9e89509..d3f4903d 100644 --- a/rowers/views/userviews.py +++ b/rowers/views/userviews.py @@ -9,7 +9,7 @@ from rowers.views.statements import * def start_trial_view(request): r = getrower(request.user) - if r.protrialexpires > datetime.date(1970,1,1): + if not can_start_trial(request.user): messages.error(request,'You do not qualify for a trial') url = '/rowers/paidplans' return HttpResponseRedirect(url) @@ -43,7 +43,7 @@ def start_trial_view(request): def start_plantrial_view(request): r = getrower(request.user) - if r.plantrialexpires > datetime.date(1970,1,1): + if not can_start_plantrial(request.user): messages.error(request,'You do not qualify for a trial') url = '/rowers/paidplans' return HttpResponseRedirect(url)