Private
Public Access
1
0

Process team invites

This commit is contained in:
Sander Roosendaal
2017-02-09 20:45:10 +01:00
parent 32cadef2e5
commit e60320143a
6 changed files with 134 additions and 18 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
Team,TeamForm,TeamInviteForm,TeamInvite
)
from rowers.models import FavoriteForm,BaseFavoriteFormSet,SiteAnnouncement
from django.forms.formsets import formset_factory
@@ -5289,25 +5289,34 @@ def strokedatajson(request,id):
# Teams related views
import teams
@login_required()
@login_required()
def team_view(request,id=0,message='',successmessage=''):
ismember = 0
r = Rower.objects.get(user=request.user)
try:
t = Team.objects.get(id=id)
except Team.DoesNotExist:
return HttpResponse("Team doesn't exist")
if request.method == 'POST' and request.user == t.manager:
inviteform = TeamInviteForm(request.POST)
if inviteform.is_valid():
cd = inviteform.cleaned_data
newmember = cd['user']
email = cd['email']
email = cd['email']
inviteid,text = teams.create_invite(t,t.manager,
user=newmember,
email=email)
if inviteid:
teams.send_invite_email(inviteid)
teams.send_invite_email(inviteid)
successmessage = text
else:
message = text
elif request.user == t.manager:
inviteform = TeamInviteForm()
@@ -5316,13 +5325,17 @@ def team_view(request,id=0):
inviteform = ''
members = Rower.objects.filter(team=t).order_by('user__last_name','user__first_name')
if r in members:
ismember = 1
return render(request, 'team.html',
{
'team':t,
'members':members,
'inviteform':inviteform,
'message':message,
'successmessage':successmessage,
'ismember':ismember,
})
@@ -5349,21 +5362,60 @@ def team_leave_view(request,id=0):
@login_required()
def rower_teams_view(request):
r = Rower.objects.get(user=request.user)
r = Rower.objects.get(user=request.user)
ts = Team.objects.filter(rower=r)
myteams = Team.objects.filter(manager=request.user)
otherteams = Team.objects.filter(private='open').exclude(rower=r).order_by('name')
teams.remove_expired_invites()
invites = TeamInvite.objects.filter(user=request.user)
return render(request, 'teams.html',
{
{
'teams':ts,
'myteams':myteams,
'invites':invites,
'otherteams':otherteams,
})
@login_required()
def rower_invitations_view(request,code=None):
return render(request, 'invitations.html',
{
@login_required()
def rower_invitations_view(request,code=None,message='',successmessage=''):
if code:
teams.remove_expired_invites()
res,text = teams.process_invite_code(request.user,code)
if res:
successmessage = text
teamid=res
url = reverse(team_view,kwargs={
'id':teamid,
'successmessage': successmessage,
})
else:
message = text
url = reverse(rower_invitations_view,kwargs={
'message':message
})
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').drop(rower=r)
return render(request, 'teams.html',
{
'teams':ts,
'myteams':myteams,
'invites':invites,
'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)