small changes
This commit is contained in:
@@ -1,7 +1,26 @@
|
||||
import rules
|
||||
import datetime
|
||||
|
||||
# PERMISSIONS
|
||||
|
||||
# USER permissions
|
||||
|
||||
@rules.predicate
|
||||
def user_is_not_basic(user):
|
||||
if user.rower.rowerplan != 'basic':
|
||||
return True
|
||||
|
||||
if user.rower.protrialexpires >= datetime.date.today() and user.rower.plantrialexpires >= datetime.date.today():
|
||||
return True
|
||||
|
||||
return False
|
||||
|
||||
@rules.predicate
|
||||
def is_coach(user):
|
||||
return user.rower.rowerplan in ['coach','freecoach']
|
||||
|
||||
# TEAM permissions
|
||||
|
||||
@rules.predicate
|
||||
def is_team_manager(user,team):
|
||||
return team.manager == user
|
||||
@@ -11,10 +30,6 @@ def is_team_member(user,team):
|
||||
members = team.rower.all()
|
||||
return user in [member.user for member in members]
|
||||
|
||||
@rules.predicate
|
||||
def is_coach(user):
|
||||
return user.rower.rowerplan in ['coach','freecoach']
|
||||
|
||||
@rules.predicate
|
||||
def can_view_team(user,team):
|
||||
# user based
|
||||
@@ -26,8 +41,9 @@ def can_view_team(user,team):
|
||||
# team is private
|
||||
return is_team_member(user,team) | is_team_manager(user,team)
|
||||
|
||||
|
||||
# For Team functionality
|
||||
rules.add_perm('teams.view_team',can_view_team)
|
||||
rules.add_perm('teams.add_team',is_coach)
|
||||
rules.add_perm('teams.add_team',user_is_not_basic)
|
||||
rules.add_perm('teams.change_team',is_team_manager)
|
||||
rules.add_perm('teams.delete_team',is_team_manager)
|
||||
|
||||
@@ -81,7 +81,7 @@ def create_team(name,manager,private='open',notes='',viewing='allmembers'):
|
||||
if manager.rower.rowerplan == 'basic':
|
||||
if manager.rower.protrialexpires < timezone.now().date() and manager.rower.plantrialexpires < timezone.now().date():
|
||||
return (0,'You need to upgrade to a paid plan to establish a team')
|
||||
if manager.rower.rowerplan not in ('coach','freecoach'):
|
||||
if not is_coach(manager):
|
||||
ts = Team.objects.filter(manager=manager)
|
||||
if len(ts)>=1:
|
||||
return (0,'You need to upgrade to the Coach plan to have more than one team')
|
||||
@@ -102,19 +102,6 @@ def remove_team(id):
|
||||
send_team_delete_mail(t,r)
|
||||
return t.delete()
|
||||
|
||||
#def set_teamplanexpires(rower):
|
||||
# ts = Team.objects.filter(rower=rower)
|
||||
|
||||
# texp = datetime.date(timezone.now())
|
||||
|
||||
# for t in ts:
|
||||
# print t.name
|
||||
# mr = Rower.objects.get(user=t.manager)
|
||||
# if mr.teamplanexpires > texp:
|
||||
# rower.teamplanexpires = mr.teamplanexpires
|
||||
|
||||
# t.save()
|
||||
|
||||
return (1,'Updated rower team expiry')
|
||||
|
||||
def add_coach(coach,rower):
|
||||
@@ -194,7 +181,7 @@ def rower_get_coaches(rower):
|
||||
|
||||
|
||||
def coach_getcoachees(coach):
|
||||
if coach.mycoachgroup and coach.rowerplan in ('coach','freecoach'):
|
||||
if coach.mycoachgroup and is_coach(coach.user):
|
||||
return Rower.objects.filter(
|
||||
coachinggroups__in=[coach.mycoachgroup]
|
||||
).distinct().order_by("user__last_name","user__first_name")
|
||||
|
||||
@@ -647,17 +647,13 @@ def team_edit_view(request, team_id=0):
|
||||
})
|
||||
|
||||
#@user_passes_test(cancreateteam,login_url="/rowers/paidplans",redirect_field_name=None)
|
||||
@login_required()
|
||||
def team_create_view(request):
|
||||
r = getrequestrower(request)
|
||||
|
||||
if r.rowerplan == 'basic':
|
||||
if r.protrialexpires < timezone.now().date() and r.plantrialexpires < timezone.now().date():
|
||||
messages.error(request,"You must upgrade to Pro or higher to create teams/training groups")
|
||||
url = reverse('paidplans')
|
||||
return HttpResponseRedirect(url)
|
||||
|
||||
|
||||
if not user_is_not_basic(request.user):
|
||||
messages.error(request,"You must upgrade to Pro or higher to create teams/training groups")
|
||||
url = reverse('paidplans')
|
||||
return HttpResponseRedirect(url)
|
||||
|
||||
if request.method == 'POST':
|
||||
teamcreateform = TeamForm(request.POST)
|
||||
|
||||
Reference in New Issue
Block a user