Private
Public Access
1
0

not sure if this works

This commit is contained in:
Sander Roosendaal
2019-02-16 17:15:25 +01:00
parent 74cc925e59
commit ccdf24f671
16 changed files with 599 additions and 17 deletions

View File

@@ -88,7 +88,7 @@ from rowers.models import (
microcyclecheckdates,mesocyclecheckdates,macrocyclecheckdates,
TrainingMesoCycleForm, TrainingMicroCycleForm,
RaceLogo,RowerBillingAddressForm,PaidPlan,
PlannedSessionComment,
PlannedSessionComment,CoachRequest,CoachOffer,
)
from rowers.models import (
RowerPowerForm,RowerForm,GraphImage,AdvancedWorkoutForm,

View File

@@ -166,12 +166,35 @@ def rower_teams_view(request,message='',successmessage=''):
myteams, memberteams, otherteams = get_teams(request)
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)
myinvites = TeamInvite.objects.filter(team__in=myteams)
# user invites (as coach)
mycoachoffers = CoachOffer.objects.filter(coach=r)
# user is invited (by coach)
coachoffers = CoachOffer.objects.filter(user=r.user)
# user requests a coach
mycoachrequests = CoachRequest.objects.filter(user=r.user)
# user is requested to coach
coachrequests = CoachRequest.objects.filter(coach=r)
invitedathletes = [rekwest.user for rekwest in mycoachoffers]
invitedcoaches = [rekwest.coach for rekwest in mycoachrequests]
coaches = rower_get_coaches(r)
potentialcoaches = [t.manager for t in memberteams if t.manager not in coaches ]
potentialcoaches = [c for c in potentialcoaches if c.rower not in invitedcoaches]
coachees = teams.coach_getcoachees(r)
potentialathletes = Rower.objects.filter(
team__in=myteams).exclude(
user__in=invitedathletes).exclude(user=request.user)
# clubsize = teams.count_invites(request.user)+teams.count_club_members(request.user)
# max_clubsize = r.clubsize
@@ -184,6 +207,7 @@ def rower_teams_view(request,message='',successmessage=''):
'name': 'Teams'
}
]
return render(request, 'teams.html',
{
@@ -198,6 +222,14 @@ def rower_teams_view(request,message='',successmessage=''):
'myrequests':myrequests,
'form':form,
'myinvites':myinvites,
'mycoachrequests':mycoachrequests,
'mycoachoffers':mycoachoffers,
'coachrequests':coachrequests,
'coachoffers':coachoffers,
'coaches':coaches,
'potentialcoaches':potentialcoaches,
'coachees':coachees,
'potentialathletes':potentialathletes,
})
@login_required()
@@ -276,6 +308,71 @@ def team_requestmembership_view(request,teamid,userid):
return HttpResponseRedirect(url)
@login_required()
def request_coaching_view(request,coachid):
r = getrequestrower(request)
coach = User.objects.get(id=coachid).rower
if coach.rowerplan == 'coach':
res,text = teams.create_coaching_request(coach,request.user)
if res:
messages.info(request,text)
else:
messages.error(request,text)
else:
messages.error(request,'That person is not a coach')
url = reverse('rower_teams_view')
return HttpResponseRedirect(url)
@user_passes_test(iscoachmember,login_url="/rowers/paidplans",redirect_field_name=None)
def offer_coaching_view(request,userid):
try:
u = User.objects.get(id=userid)
except User.DoesNotExist:
raise Http404("This user doesn't exist")
coach = getrequestrower(request)
res,text = teams.create_coaching_invite(coach,u)
if res:
message.info(request,text)
else:
messages.error(request,text)
url = reverse('rower_teams_view')
return HttpResponseRedirecet(url)
@login_required()
def reject_revoke_coach_request(request,id=0):
res, text = teams.reject_revoke_coach_request(request.user,id)
if res:
messages.info(request,text)
else:
messages.error(request,text)
url = reverse('rower_teams_view')
return HttpResponseRedirect(url)
@login_required()
def reject_revoke_coach_offer(request,id=0):
res, text = teams.reject_revoke_coach_offer(request.user,id)
if res:
messages.info(request,text)
else:
messages.error(request,text)
url = reverse('rower_teams_view')
return HttpResponseRedirect(url)
@login_required()
def request_revoke_view(request,id=0):
res,text = teams.revoke_request(request.user,id)
@@ -559,3 +656,27 @@ def team_members_stats_view(request,id):
})
return response
@login_required()
def rower_accept_coachoffer_view(request,code=None):
if code:
res, text = teams.process_coachoffer_code(request.user,code)
if res:
message.info(request,text)
else:
messages.error(request,text)
url = reverse('rower_teams_view')
return HttpResponseRedirect(url)
@login_required()
def coach_accept_coachrequest_view(request,code=None):
if code:
res, text = teams.process_coachrequest_code(request.user.rower,code)
if res:
messages.info(request,text)
else:
messages.error(request,text)
url = reverse('rower_teams_view')
return HttpResponseRedirect(url)