Private
Public Access
1
0

added requests, revoke and reject buttons

This commit is contained in:
Sander Roosendaal
2017-02-10 12:48:22 +01:00
parent fffdb89a53
commit fa86c0c9d5
8 changed files with 303 additions and 41 deletions

View File

@@ -31,7 +31,7 @@ from rowers.models import Workout, User, Rower, WorkoutForm,FavoriteChart
from rowers.models import (
RowerPowerForm,RowerForm,GraphImage,AdvancedWorkoutForm,
RowerPowerZonesForm,AccountRowerForm,UserForm,StrokeData,
Team,TeamForm,TeamInviteForm,TeamInvite
Team,TeamForm,TeamInviteForm,TeamInvite,TeamRequest
)
from rowers.models import FavoriteForm,BaseFavoriteFormSet,SiteAnnouncement
from django.forms.formsets import formset_factory
@@ -5291,8 +5291,9 @@ import teams
@login_required()
def team_view(request,id=0,message='',successmessage=''):
ismember = 0
ismember = 0
hasrequested = 0
r = Rower.objects.get(user=request.user)
myteams = Team.objects.filter(manager=request.user)
@@ -5304,6 +5305,7 @@ def team_view(request,id=0,message='',successmessage=''):
if request.method == 'POST' and request.user == t.manager:
inviteform = TeamInviteForm(request.POST)
inviteform.fields['user'].queryset = User.objects.filter(rower__isnull=False,rower__team__in=myteams).exclude(rower__team__name=t.name)
if inviteform.is_valid():
cd = inviteform.cleaned_data
@@ -5319,14 +5321,19 @@ def team_view(request,id=0,message='',successmessage=''):
message = text
elif request.user == t.manager:
inviteform = TeamInviteForm()
inviteform = TeamInviteForm()
inviteform.fields['user'].queryset = User.objects.filter(rower__isnull=False,rower__team__in=myteams).exclude(rower__team__name=t.name)
else:
inviteform = ''
members = Rower.objects.filter(team=t).order_by('user__last_name','user__first_name')
thisteammyrequests = TeamRequest.objects.filter(team=t,user=request.user)
if len(thisteammyrequests):
hasrequested = 1
if r in members:
ismember = 1
return render(request, 'team.html',
@@ -5336,6 +5343,7 @@ def team_view(request,id=0,message='',successmessage=''):
'inviteform':inviteform,
'message':message,
'successmessage':successmessage,
'ismember':ismember,
'hasrequested':hasrequested,
})
@@ -5360,7 +5368,7 @@ def team_leave_view(request,id=0):
response = HttpResponseRedirect(url)
return response
@login_required()
@login_required()
def rower_teams_view(request,message='',successmessage=''):
r = Rower.objects.get(user=request.user)
ts = Team.objects.filter(rower=r)
@@ -5368,6 +5376,8 @@ def rower_teams_view(request):
otherteams = Team.objects.filter(private='open').exclude(rower=r).exclude(manager=request.user).order_by('name')
teams.remove_expired_invites()
invites = TeamInvite.objects.filter(user=request.user)
requests = TeamRequest.objects.filter(user=request.user)
myrequests = TeamRequest.objects.filter(team__in=myteams)
return render(request, 'teams.html',
@@ -5375,8 +5385,100 @@ def rower_teams_view(request):
'teams':ts,
'myteams':myteams,
'invites':invites,
'otherteams':otherteams,
'requests':requests,
'myrequests':myrequests,
'message':message,
'successmessage':successmessage,
})
@user_passes_test(iscoachmember,login_url="/",redirect_field_name=None)
def manager_requests_view(request,code=None,message='',successmessage=''):
if code:
res,text = teams.process_request_code(request.user,code)
if res:
successmessage = text
message = ''
else:
message = text
successmessage = ''
url = reverse(rower_teams_view,kwargs={
})
return HttpResponseRedirect(url)
@login_required()
def team_requestmembership_view(request,teamid,userid):
t = Team.objects.get(id=teamid)
res,text = teams.create_request(t,userid)
if res:
successmessage = text
url = reverse(team_view,kwargs={
'id':teamid,
'successmessage': successmessage,
})
else:
message = text
url = reverse(team_view,kwargs={
'id':teamid,
'message': message,
})
return HttpResponseRedirect(url)
@login_required()
def request_revoke_view(request,id=0):
res,text = teams.revoke_request(request.user,id)
if res:
successmessage = text
url = reverse(rower_teams_view,kwargs={
'successmessage':successmessage,
})
else:
message = text
url = reverse(rower_teams_view,kwargs={
'message':message,
})
return HttpResponseRedirect(url)
@user_passes_test(iscoachmember,login_url="/",redirect_field_name=None)
def request_reject_view(request,id=0):
res,text = teams.reject_request(request.user,id)
if res:
successmessage = text
url = reverse(rower_teams_view,kwargs={
'successmessage':successmessage,
})
else:
message = text
url = reverse(rower_teams_view,kwargs={
'message':message,
})
return HttpResponseRedirect(url)
@user_passes_test(iscoachmember,login_url="/",redirect_field_name=None)
def invitation_reject_view(request,id=0):
res,text = teams.reject_invitation(request.user,id)
if res:
successmessage = text
url = reverse(rower_teams_view,kwargs={
'successmessage':successmessage,
})
else:
message = text
url = reverse(rower_teams_view,kwargs={
'message':message,
})
return HttpResponseRedirect(url)
@login_required()
def rower_invitations_view(request,code=None,message='',successmessage=''):
@@ -5393,32 +5495,16 @@ def rower_invitations_view(request,code=None,message='',successmessage=''):
})
else:
message = text
url = reverse(rower_invitations_view,kwargs={
url = reverse(rower_invitations_view,kwargs={
'message':message,
})
return HttpResponseRedirect(url)
url = reverse(rower_teams_view,kwargs={
})
return HttpResponseRedirect(url)
r = Rower.objects.get(user=request.user)
ts = Team.objects.filter(rower=r)
myteams = Team.objects.filter(manager=request.user)
invites = TeamInvite.objects.filter(user=request.user)
otherteams = Team.objects.filter(private='open').exclude(rower=r).exclude(manager=request.user).order_by('name')
return render(request, 'teams.html',
{
'teams':ts,
'myteams':myteams,
'invites':invites,
'message':message,
'successmessage':successmessage,
'otherteams':otherteams,
})
@login_required()
def team_requestmembership_view(request,teamid,userid):
return HttpResponse("Not yet implemented")
@user_passes_test(iscoachmember,login_url="/",redirect_field_name=None)
def team_create_view(request):