passing tests - teams can be created
This commit is contained in:
@@ -928,6 +928,23 @@ def iscoachmember(user):
|
||||
|
||||
return result
|
||||
|
||||
def cancreateteam(user):
|
||||
if user.is_anonymous():
|
||||
return False
|
||||
|
||||
try:
|
||||
r = Rower.objects.get(user=user)
|
||||
except Rower.DoesNotExist:
|
||||
r = Rower(user=user)
|
||||
r.save()
|
||||
|
||||
if user.is_authenticated() and (r.rowerplan=='coach'):
|
||||
return True
|
||||
elif user.is_athenticated() and r.rowerplan in ['plan','pro']:
|
||||
ts = Team.objects.filter(manager=user)
|
||||
if len(otherteams) >= 1:
|
||||
return False
|
||||
|
||||
# Check if a user can create planned sessions
|
||||
def hasplannedsessions(user):
|
||||
if not user.is_anonymous():
|
||||
|
||||
@@ -254,6 +254,15 @@ def team_requestmembership_view(request,teamid,userid):
|
||||
t = Team.objects.get(id=teamid)
|
||||
except Team.DoesNotExist:
|
||||
raise Http404("Team doesn't exist")
|
||||
|
||||
r = getrequestrower(request,userid=userid)
|
||||
|
||||
if t.manager.rower.rowerplan in ['plan','pro'] and r.rowerplan == 'basic':
|
||||
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.")
|
||||
|
||||
url = reverse('paidplans')
|
||||
return HttpResponseRedirect(url)
|
||||
|
||||
res,text = teams.create_request(t,userid)
|
||||
if res:
|
||||
@@ -395,8 +404,19 @@ def team_edit_view(request,id=0):
|
||||
'team':t,
|
||||
})
|
||||
|
||||
@user_passes_test(iscoachmember,login_url="/rowers/paidplans",redirect_field_name=None)
|
||||
#@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 request.method == 'POST':
|
||||
teamcreateform = TeamForm(request.POST)
|
||||
if teamcreateform.is_valid():
|
||||
@@ -408,6 +428,12 @@ def team_create_view(request):
|
||||
viewing = cd['viewing']
|
||||
res,message=teams.create_team(name,manager,private,notes,
|
||||
viewing)
|
||||
|
||||
if not res:
|
||||
messages.error(request,message)
|
||||
url = reverse('paidplans')
|
||||
return HttpResponseRedirect(url)
|
||||
|
||||
url = reverse('rower_teams_view')
|
||||
response = HttpResponseRedirect(url)
|
||||
return response
|
||||
@@ -438,7 +464,7 @@ def team_create_view(request):
|
||||
'breadcrumbs':breadcrumbs,
|
||||
})
|
||||
|
||||
@user_passes_test(iscoachmember,login_url="/rowers/paidplans",redirect_field_name=None)
|
||||
@login_required()
|
||||
def team_deleteconfirm_view(request,id):
|
||||
r = getrower(request.user)
|
||||
try:
|
||||
@@ -474,7 +500,7 @@ def team_deleteconfirm_view(request,id):
|
||||
'active':'nav-teams',
|
||||
})
|
||||
|
||||
@user_passes_test(iscoachmember,login_url="/rowers/paidplans",redirect_field_name=None)
|
||||
@login_required()
|
||||
def team_delete_view(request,id):
|
||||
r = getrower(request.user)
|
||||
try:
|
||||
|
||||
Reference in New Issue
Block a user