Private
Public Access
1
0
This commit is contained in:
Sander Roosendaal
2022-02-18 12:59:18 +01:00
parent f80dbdb4de
commit 508ebfd9a1
5 changed files with 87 additions and 115 deletions

View File

@@ -1,4 +1,3 @@
from rowers.models import VirtualRace, GeoCourse
from rowers.utils import rankingdistances, rankingdurations from rowers.utils import rankingdistances, rankingdurations
from rowers.utils import ( from rowers.utils import (
workflowleftpanel, workflowmiddlepanel, workflowleftpanel, workflowmiddlepanel,
@@ -18,7 +17,7 @@ from django.contrib.auth.forms import UserCreationForm
from django.contrib.auth.models import User from django.contrib.auth.models import User
from django.contrib.admin.widgets import AdminDateWidget from django.contrib.admin.widgets import AdminDateWidget
from django.forms.widgets import SelectDateWidget, HiddenInput from django.forms.widgets import SelectDateWidget, HiddenInput
#from django.forms.extras.widgets import SelectDateWidget
from django.utils import timezone, translation from django.utils import timezone, translation
from django.forms import ModelForm, Select from django.forms import ModelForm, Select
import rowers.dataprep as dataprep import rowers.dataprep as dataprep
@@ -573,11 +572,17 @@ class UploadOptionsForm(forms.Form):
choices3 = [(0, '---')] choices3 = [(0, '---')]
noregistrations = [] noregistrations = []
for ra in VirtualRace.objects.filter(registration_closure__gt=timezone.now(), sessiontype='race'): # pragma: no cover for ra in VirtualRace.objects.filter(
registration_closure__gt=timezone.now(),
sessiontype='race'
): # pragma: no cover
rs = VirtualRaceResult.objects.filter(race=ra, userid=r.id) rs = VirtualRaceResult.objects.filter(race=ra, userid=r.id)
if rs.count() == 0: if rs.count() == 0:
noregistrations.append((-ra.id, ra.name)) noregistrations.append((-ra.id, ra.name))
for ra in VirtualRace.objects.filter(registration_closure__gt=timezone.now(), sessiontype='indoorrace'): # pragma: no cover for ra in VirtualRace.objects.filter(
registration_closure__gt=timezone.now(),
sessiontype='indoorrace'
): # pragma: no cover
rs = IndoorVirtualRaceResult.objects.filter(race=ra, userid=r.id) rs = IndoorVirtualRaceResult.objects.filter(race=ra, userid=r.id)
if rs.count() == 0: if rs.count() == 0:
noregistrations.append((-ra.id, ra.name)) noregistrations.append((-ra.id, ra.name))
@@ -1055,20 +1060,6 @@ class RegistrationFormSex(RegistrationFormUniqueEmail):
adaptiveclass = forms.ChoiceField(label='Adaptive Classification', adaptiveclass = forms.ChoiceField(label='Adaptive Classification',
choices=adaptivecategories, initial='None', required=False) choices=adaptivecategories, initial='None', required=False)
# def __init__(self, *args, **kwargs):
# self.fields['sex'].initial = 'not specified'
# Time field supporting microseconds. Not used, I believe.
class MyTimeField(forms.TimeField):
def __init__(self, *args, **kwargs): # pragma: no cover
super(MyTimeField, self).__init__(*args, **kwargs)
supports_microseconds = True
# Form used to automatically define intervals by pace or power
class PowerIntervalUpdateForm(forms.Form): class PowerIntervalUpdateForm(forms.Form):
selectorchoices = ( selectorchoices = (
@@ -1847,14 +1838,13 @@ class StravaChartForm(forms.Form):
choices=yaxchoices2, label='Fourth Chart', required=True) choices=yaxchoices2, label='Fourth Chart', required=True)
def __init__(self, request, *args, **kwargs): def __init__(self, request, *args, **kwargs):
extrametrics = kwargs.pop('extrametrics', [])
super(StravaChartForm, self).__init__(*args, **kwargs) super(StravaChartForm, self).__init__(*args, **kwargs)
rower = Rower.objects.get(user=request.user) rower = Rower.objects.get(user=request.user)
axchoicespro = ( # axchoicespro = (
('', ax[1]) if ax[4] == 'pro' and ax[0] else (ax[0], ax[1]) for ax in axes # ('', ax[1]) if ax[4] == 'pro' and ax[0] else (ax[0], ax[1]) for ax in axes
) # )
axchoicesbasicx = [] axchoicesbasicx = []
axchoicesbasicy = [] axchoicesbasicy = []
@@ -1889,14 +1879,13 @@ class FlexAxesForm(forms.Form):
choices=yaxchoices2, label='Right Axis', required=True) choices=yaxchoices2, label='Right Axis', required=True)
def __init__(self, request, *args, **kwargs): def __init__(self, request, *args, **kwargs):
extrametrics = kwargs.pop('extrametrics', [])
super(FlexAxesForm, self).__init__(*args, **kwargs) super(FlexAxesForm, self).__init__(*args, **kwargs)
rower = Rower.objects.get(user=request.user) rower = Rower.objects.get(user=request.user)
axchoicespro = ( # axchoicespro = (
('', ax[1]) if ax[4] == 'pro' and ax[0] else (ax[0], ax[1]) for ax in axes # ('', ax[1]) if ax[4] == 'pro' and ax[0] else (ax[0], ax[1]) for ax in axes
) # )
axchoicesbasicx = [] axchoicesbasicx = []
axchoicesbasicy = [] axchoicesbasicy = []

View File

@@ -14,7 +14,6 @@ redis_connection = StrictRedis()
def getvalue(data): # pragma: no cover def getvalue(data): # pragma: no cover
perc = 0
total = 1 total = 1
done = 0 done = 0
id = 0 id = 0
@@ -43,8 +42,7 @@ def longtask(aantal, jobid=None, debug=False,
if counter > 10: if counter > 10:
counter = 0 counter = 0
if debug: if debug:
progress = 100.*i/aantal if jobid is not None:
if jobid != None:
redis_connection.publish(channel, json.dumps( redis_connection.publish(channel, json.dumps(
{ {
'done': i, 'done': i,
@@ -60,7 +58,6 @@ def longtask(aantal, jobid=None, debug=False,
def longtask2(aantal, jobid=None, debug=False, secret=''): # pragma: no cover def longtask2(aantal, jobid=None, debug=False, secret=''): # pragma: no cover
counter = 0 counter = 0
channel = 'tasks'
for i in range(aantal): for i in range(aantal):
time.sleep(1) time.sleep(1)
counter += 1 counter += 1
@@ -69,7 +66,7 @@ def longtask2(aantal, jobid=None, debug=False, secret=''): # pragma: no cover
progress = int(100.*i/aantal) progress = int(100.*i/aantal)
if debug: if debug:
print(progress) print(progress)
if jobid != None: if jobid is not None:
if debug: if debug:
url = SITE_URL_DEV url = SITE_URL_DEV
else: else:

View File

@@ -358,7 +358,6 @@ rowtypes = (
checktypes = [i[0] for i in workouttypes_ordered.items()] checktypes = [i[0] for i in workouttypes_ordered.items()]
#colors = Category10[9]
colors = list(set(Category10[9]))+list(set(Category20[19]+Category20c[19])) colors = list(set(Category10[9]))+list(set(Category20[19]+Category20c[19]))
color_map = {checktypes[i]: colors[i] for i in range(len(checktypes))} color_map = {checktypes[i]: colors[i] for i in range(len(checktypes))}
@@ -557,7 +556,7 @@ polaraccesslink_sports = {
'DUATHLON_CYCLING': 'bike', 'DUATHLON_CYCLING': 'bike',
'DUATHLON_RUNNING': 'Run', 'DUATHLON_RUNNING': 'Run',
'FIELD_HOCKEY': 'other', 'FIELD_HOCKEY': 'other',
'FINNISH_BASEBALL': 'other', 'FINNISH_BASEBALL': 'other',
'FITNESS_DANCING': 'other', 'FITNESS_DANCING': 'other',
'FITNESS_MARTIAL_ARTS': 'other', 'FITNESS_MARTIAL_ARTS': 'other',
'FITNESS_STEP': 'Workout', 'FITNESS_STEP': 'Workout',
@@ -625,7 +624,7 @@ polaraccesslink_sports = {
'ROLLER_BLADING': 'InlineSkate', 'ROLLER_BLADING': 'InlineSkate',
'ROLLER_SKIING_CLASSIC': 'NordicSki', 'ROLLER_SKIING_CLASSIC': 'NordicSki',
'ROLLER_SKIING_FREESTYLE': 'NordicSki', 'ROLLER_SKIING_FREESTYLE': 'NordicSki',
'ROWING': 'water', 'ROWING': 'water',
'RUGBY': 'other', 'RUGBY': 'other',
'RUNNING': 'Run', 'RUNNING': 'Run',
'SHOW_DANCING': 'other', 'SHOW_DANCING': 'other',
@@ -664,5 +663,5 @@ polaraccesslink_sports = {
'WATERSPORTS_WINDSURFING': 'other', 'WATERSPORTS_WINDSURFING': 'other',
'XC_SKIING_CLASSIC': 'NordicSki', 'XC_SKIING_CLASSIC': 'NordicSki',
'XC_SKIING_FREESTYLE': 'NordicSki', 'XC_SKIING_FREESTYLE': 'NordicSki',
'YOGA': 'Yoga' 'YOGA': 'Yoga'
} }

View File

@@ -82,7 +82,7 @@ def strava_open(user):
f.write('\n') f.write('\n')
token = imports_open(user, oauth_data) token = imports_open(user, oauth_data)
if user.rower.strava_owner_id == 0: # pragma: no cover if user.rower.strava_owner_id == 0: # pragma: no cover
strava_owner_id = set_strava_athlete_id(user) _ = set_strava_athlete_id(user)
return token return token
@@ -120,9 +120,6 @@ def strava_establish_push(): # pragma: no cover
'callback_url': webhooklink, 'callback_url': webhooklink,
'verify_token': webhookverification, 'verify_token': webhookverification,
} }
headers = {'user-agent': 'sanderroosendaal',
'Accept': 'application/json',
'Content-Type': oauth_data['content_type']}
response = requests.post(url, data=post_data) response = requests.post(url, data=post_data)
@@ -160,7 +157,7 @@ def set_strava_athlete_id(user):
s = "Token doesn't exist. Need to authorize" s = "Token doesn't exist. Need to authorize"
return custom_exception_handler(401, s) return custom_exception_handler(401, s)
elif (r.stravatokenexpirydate is None or timezone.now()+timedelta(seconds=3599) > r.stravatokenexpirydate): elif (r.stravatokenexpirydate is None or timezone.now()+timedelta(seconds=3599) > r.stravatokenexpirydate):
token = imports_open(user, oauth_data) _ = imports_open(user, oauth_data)
authorizationstring = str('Bearer ' + r.stravatoken) authorizationstring = str('Bearer ' + r.stravatoken)
headers = {'Authorization': authorizationstring, headers = {'Authorization': authorizationstring,
@@ -185,7 +182,9 @@ def get_strava_workout_list(user, limit_n=0):
if (r.stravatoken == '') or (r.stravatoken is None): # pragma: no cover if (r.stravatoken == '') or (r.stravatoken is None): # pragma: no cover
s = "Token doesn't exist. Need to authorize" s = "Token doesn't exist. Need to authorize"
return custom_exception_handler(401, s) return custom_exception_handler(401, s)
elif (r.stravatokenexpirydate is None or timezone.now()+timedelta(seconds=3599) > r.stravatokenexpirydate): # pragma: no cover elif (
r.stravatokenexpirydate is None or timezone.now()+timedelta(seconds=3599) > r.stravatokenexpirydate
): # pragma: no cover
s = "Token expired. Needs to refresh." s = "Token expired. Needs to refresh."
return custom_exception_handler(401, s) return custom_exception_handler(401, s)
else: else:
@@ -209,7 +208,7 @@ def get_strava_workout_list(user, limit_n=0):
def async_get_workout(user, stravaid): def async_get_workout(user, stravaid):
try: try:
token = strava_open(user) _ = strava_open(user)
except NoTokenError: # pragma: no cover except NoTokenError: # pragma: no cover
return 0 return 0
@@ -246,9 +245,9 @@ def createstravaworkoutdata(w, dozip=True):
if datalength != 0: if datalength != 0:
data.rename(columns=columndict, inplace=True) data.rename(columns=columndict, inplace=True)
res = data.to_csv(w.csvfilename+'.gz', _ = data.to_csv(w.csvfilename+'.gz',
index_label='index', index_label='index',
compression='gzip') compression='gzip')
try: try:
row = rowingdata(csvfile=filename) row = rowingdata(csvfile=filename)
except IOError: except IOError:
@@ -317,7 +316,7 @@ def handle_stravaexport(f2, workoutname, stravatoken, description='',
def workout_strava_upload(user, w, quick=False, asynchron=True): def workout_strava_upload(user, w, quick=False, asynchron=True):
try: try:
thetoken = strava_open(user) _ = strava_open(user)
except NoTokenError: # pragma: no cover except NoTokenError: # pragma: no cover
return "Please connect to Strava first", 0 return "Please connect to Strava first", 0
@@ -326,7 +325,6 @@ def workout_strava_upload(user, w, quick=False, asynchron=True):
r = Rower.objects.get(user=user) r = Rower.objects.get(user=user)
res = -1 res = -1
if (r.stravatoken == '') or (r.stravatoken is None): # pragma: no cover if (r.stravatoken == '') or (r.stravatoken is None): # pragma: no cover
s = "Token doesn't exist. Need to authorize"
raise NoTokenError("Your hovercraft is full of eels") raise NoTokenError("Your hovercraft is full of eels")
if (is_workout_user(user, w)): if (is_workout_user(user, w)):
@@ -340,13 +338,12 @@ def workout_strava_upload(user, w, quick=False, asynchron=True):
activity_type = mytypes.stravamapping[w.workouttype] activity_type = mytypes.stravamapping[w.workouttype]
except KeyError: # pragma: no cover except KeyError: # pragma: no cover
activity_type = 'Rowing' activity_type = 'Rowing'
job = myqueue(queue, _ = myqueue(queue,
handle_strava_sync, handle_strava_sync,
r.stravatoken, r.stravatoken,
w.id, w.id,
tcxfile, w.name, activity_type, tcxfile, w.name, activity_type,
w.notes w.notes)
)
dologging('strava_export_log.log', 'Exporting as {t} from {w}'.format( dologging('strava_export_log.log', 'Exporting as {t} from {w}'.format(
t=activity_type, w=w.workouttype)) t=activity_type, w=w.workouttype))
return "Asynchronous sync", -1 return "Asynchronous sync", -1

View File

@@ -88,7 +88,7 @@ def create_team(name, manager, private='open', notes='', viewing='allmembers'):
private=private, viewing=viewing) private=private, viewing=viewing)
t.save() t.save()
r = Rower.objects.get(user=manager) r = Rower.objects.get(user=manager)
res = add_member(t.id, r) _ = add_member(t.id, r)
except IntegrityError: except IntegrityError:
return (0, 'Team name duplication') return (0, 'Team name duplication')
return (t.id, 'Team created') return (t.id, 'Team created')
@@ -131,13 +131,13 @@ def add_member(id, rower):
# code to add all workouts # code to add all workouts
ws = Workout.objects.filter(user=rower) ws = Workout.objects.filter(user=rower)
res = handle_add_workouts_team(ws, t) _ = handle_add_workouts_team(ws, t)
# code to add plannedsessions # code to add plannedsessions
plannedsessions = PlannedSession.objects.filter( plannedsessions = PlannedSession.objects.filter(
team=t, enddate__gte=timezone.now().date()) team=t, enddate__gte=timezone.now().date())
for ps in plannedsessions: # pragma: no cover for ps in plannedsessions: # pragma: no cover
res = ps.rower.add(rower) _ = ps.rower.add(rower)
# set_teamplanexpires(rower) # set_teamplanexpires(rower)
# code for Stuck At Home Team (temporary) # code for Stuck At Home Team (temporary)
@@ -154,7 +154,7 @@ def remove_member(id, rower):
# remove the team from rower's workouts: # remove the team from rower's workouts:
ws = Workout.objects.filter(user=rower, team=t) ws = Workout.objects.filter(user=rower, team=t)
res = handle_remove_workouts_team(ws, t) _ = handle_remove_workouts_team(ws, t)
# set_teamplanexpires(rower) # set_teamplanexpires(rower)
return (id, 'Member removed') return (id, 'Member removed')
@@ -270,9 +270,9 @@ def send_coachrequest_email(rekwest):
coachname = rekwest.coach.user.first_name + " " + rekwest.coach.user.last_name coachname = rekwest.coach.user.first_name + " " + rekwest.coach.user.last_name
res = myqueue(queuehigh, _ = myqueue(queuehigh,
handle_sendemail_coachrequest, handle_sendemail_coachrequest,
email, name, code, coachname) email, name, code, coachname)
def send_coacheerequest_email(rekwest): def send_coacheerequest_email(rekwest):
@@ -283,14 +283,13 @@ def send_coacheerequest_email(rekwest):
coachname = rekwest.coach.user.first_name + " " + rekwest.coach.user.last_name coachname = rekwest.coach.user.first_name + " " + rekwest.coach.user.last_name
res = myqueue(queuehigh, _ = myqueue(queuehigh,
handle_sendemail_coacheerequest, handle_sendemail_coacheerequest,
email, name, code, coachname) email, name, code, coachname)
def create_request(team, user): def create_request(team, user):
r2 = Rower.objects.get(user=user) r2 = Rower.objects.get(user=user)
r = Rower.objects.get(user=team.manager)
if r2 in Rower.objects.filter(team=team): # pragma: no cover if r2 in Rower.objects.filter(team=team): # pragma: no cover
return (0, 'Already a member of that team') return (0, 'Already a member of that team')
@@ -323,8 +322,6 @@ def get_coach_club_size(coach):
# request by coach to coach user # request by coach to coach user
def create_coaching_offer(coach, user): def create_coaching_offer(coach, user):
r = user.rower
if coach in rower_get_coaches(user.rower): # pragma: no cover if coach in rower_get_coaches(user.rower): # pragma: no cover
return (0, 'You are already coaching this person.') return (0, 'You are already coaching this person.')
@@ -348,7 +345,6 @@ def create_coaching_offer(coach, user):
def create_invite(team, manager, user=None, email=''): def create_invite(team, manager, user=None, email=''):
r = Rower.objects.get(user=manager)
if not is_team_manager(manager, team): if not is_team_manager(manager, team):
return (0, 'Not the team manager') return (0, 'Not the team manager')
if user: if user:
@@ -359,7 +355,7 @@ def create_invite(team, manager, user=None, email=''):
return (0, 'Rower does not exist') return (0, 'Rower does not exist')
if r2 in Rower.objects.filter(team=team): if r2 in Rower.objects.filter(team=team):
return (0, 'Already member of that team') return (0, 'Already member of that team')
elif email == None or email == '': # pragma: no cover elif email is None or email == '': # pragma: no cover
return (0, 'Invalid request - missing email or user') return (0, 'Invalid request - missing email or user')
else: else:
try: try:
@@ -390,13 +386,11 @@ def revoke_request(user, id):
except TeamRequest.DoesNotExist: # pragma: no cover except TeamRequest.DoesNotExist: # pragma: no cover
return (0, 'The request is invalid') return (0, 'The request is invalid')
t = rekwest.team
if rekwest.user == user: if rekwest.user == user:
rekwest.delete() rekwest.delete()
return (1, 'Request revoked') return (1, 'Request revoked')
else: # pragma: no cover
return (0, 'You are not the requestor') return (0, 'You are not the requestor') # pragma: no cover
def reject_revoke_coach_offer(user, id): def reject_revoke_coach_offer(user, id):
@@ -493,9 +487,9 @@ def send_invite_email(id):
manager = invitation.team.manager.first_name + \ manager = invitation.team.manager.first_name + \
' '+invitation.team.manager.last_name ' '+invitation.team.manager.last_name
res = myqueue(queuehigh, _ = myqueue(queuehigh,
handle_sendemail_invite, handle_sendemail_invite,
email, name, code, teamname, manager) email, name, code, teamname, manager)
return (1, 'Invitation email sent') return (1, 'Invitation email sent')
@@ -506,9 +500,9 @@ def send_team_delete_mail(t, rower):
email = u.email email = u.email
name = u.first_name+' '+u.last_name name = u.first_name+' '+u.last_name
manager = t.manager.first_name+' '+t.manager.last_name manager = t.manager.first_name+' '+t.manager.last_name
res = myqueue(queuehigh, _ = myqueue(queuehigh,
handle_sendemail_team_removed, handle_sendemail_team_removed,
email, name, teamname, manager) email, name, teamname, manager)
return (1, 'Team delete email sent') return (1, 'Team delete email sent')
@@ -521,41 +515,38 @@ def send_email_member_dropped(teamid, rower):
name = u.first_name+' '+u.last_name name = u.first_name+' '+u.last_name
manager = t.manager.first_name+' '+t.manager.last_name manager = t.manager.first_name+' '+t.manager.last_name
res = myqueue(queuehigh, handle_sendemail_member_dropped, _ = myqueue(queuehigh, handle_sendemail_member_dropped,
email, name, teamname, manager) email, name, teamname, manager)
return (1, 'Member dropped email sent') return (1, 'Member dropped email sent')
def send_request_accept_email(rekwest): # pragma: no cover def send_request_accept_email(rekwest): # pragma: no cover
id = rekwest.id
email = rekwest.user.email email = rekwest.user.email
teamname = rekwest.team.name teamname = rekwest.team.name
name = rekwest.user.first_name+' '+rekwest.user.last_name name = rekwest.user.first_name+' '+rekwest.user.last_name
manager = rekwest.team.manager.first_name+' '+rekwest.team.manager.last_name manager = rekwest.team.manager.first_name+' '+rekwest.team.manager.last_name
res = myqueue(queuehigh, _ = myqueue(queuehigh,
handle_sendemail_request_accept, handle_sendemail_request_accept,
email, name, teamname, manager) email, name, teamname, manager)
return (1, 'Invitation email sent') return (1, 'Invitation email sent')
def send_request_reject_email(rekwest): def send_request_reject_email(rekwest):
id = rekwest.id
teamname = rekwest.team.name teamname = rekwest.team.name
email = rekwest.user.email email = rekwest.user.email
name = rekwest.user.first_name+' '+rekwest.user.last_name name = rekwest.user.first_name+' '+rekwest.user.last_name
manager = rekwest.team.manager.first_name+' '+rekwest.team.manager.last_name manager = rekwest.team.manager.first_name+' '+rekwest.team.manager.last_name
res = myqueue(queuehigh, _ = myqueue(queuehigh,
handle_sendemail_request_reject, handle_sendemail_request_reject,
email, name, teamname, manager) email, name, teamname, manager)
return (1, 'Invitation email sent') return (1, 'Invitation email sent')
def send_invite_reject_email(invitation): def send_invite_reject_email(invitation):
id = invitation.id
email = invitation.team.manager.email email = invitation.team.manager.email
if invitation.user: if invitation.user:
name = invitation.user.first_name+' '+invitation.user.last_name name = invitation.user.first_name+' '+invitation.user.last_name
@@ -566,15 +557,14 @@ def send_invite_reject_email(invitation):
manager = invitation.team.manager.first_name + \ manager = invitation.team.manager.first_name + \
' '+invitation.team.manager.last_name ' '+invitation.team.manager.last_name
res = myqueue(queuehigh, _ = myqueue(queuehigh,
handle_sendemail_invite_reject, handle_sendemail_invite_reject,
email, name, teamname, manager) email, name, teamname, manager)
return (1, 'Invitation email sent') return (1, 'Invitation email sent')
def send_invite_accept_email(invitation): # pragma: no cover def send_invite_accept_email(invitation): # pragma: no cover
id = invitation.id
email = invitation.team.manager.email email = invitation.team.manager.email
if invitation.user: if invitation.user:
name = invitation.user.first_name+' '+invitation.user.last_name name = invitation.user.first_name+' '+invitation.user.last_name
@@ -585,9 +575,9 @@ def send_invite_accept_email(invitation): # pragma: no cover
manager = invitation.team.manager.first_name + \ manager = invitation.team.manager.first_name + \
' '+invitation.team.manager.last_name ' '+invitation.team.manager.last_name
res = myqueue(queuehigh, _ = myqueue(queuehigh,
handle_sendemail_invite_accept, handle_sendemail_invite_accept,
email, name, teamname, manager) email, name, teamname, manager)
return (1, 'Invitation email sent') return (1, 'Invitation email sent')
@@ -598,9 +588,9 @@ def send_team_message(team, message): # pragma: no cover
for rower in rowers: for rower in rowers:
rowername = rower.user.first_name + " " + rower.user.last_name rowername = rower.user.first_name + " " + rower.user.last_name
res = myqueue(queuehigh, _ = myqueue(queuehigh,
handle_sendemail_message, handle_sendemail_message,
rower.user.email, team.manager.email, rowername, message, team.name, managername) rower.user.email, team.manager.email, rowername, message, team.name, managername)
return (1, 'message sent') return (1, 'message sent')
@@ -613,9 +603,9 @@ def send_request_email(rekwest):
teamname = rekwest.team.name teamname = rekwest.team.name
requestor = rekwest.user.first_name+' '+rekwest.user.last_name requestor = rekwest.user.first_name+' '+rekwest.user.last_name
res = myqueue(queuehigh, _ = myqueue(queuehigh,
handle_sendemail_request, handle_sendemail_request,
email, name, code, teamname, requestor, id) email, name, code, teamname, requestor, id)
return (1, 'Invitation email sent') return (1, 'Invitation email sent')
@@ -729,9 +719,9 @@ def send_coachoffer_rejected_email(rekwest):
name = rekwest.user.first_name + " " + rekwest.user.last_name name = rekwest.user.first_name + " " + rekwest.user.last_name
res = myqueue(queuehigh, _ = myqueue(queuehigh,
handle_sendemail_coachoffer_rejected, handle_sendemail_coachoffer_rejected,
coachemail, coachname, name) coachemail, coachname, name)
def send_coachrequest_rejected_email(rekwest): def send_coachrequest_rejected_email(rekwest):
@@ -740,9 +730,9 @@ def send_coachrequest_rejected_email(rekwest):
name = rekwest.user.first_name + " " + rekwest.user.last_name name = rekwest.user.first_name + " " + rekwest.user.last_name
res = myqueue(queuehigh, _ = myqueue(queuehigh,
handle_sendemail_coachrequest_rejected, handle_sendemail_coachrequest_rejected,
email, coachname, name) email, coachname, name)
def send_coachrequest_accepted_email(rekwest): def send_coachrequest_accepted_email(rekwest):
@@ -751,9 +741,9 @@ def send_coachrequest_accepted_email(rekwest):
name = rekwest.user.first_name + " " + rekwest.user.last_name name = rekwest.user.first_name + " " + rekwest.user.last_name
res = myqueue(queuehigh, _ = myqueue(queuehigh,
handle_sendemail_coachrequest_accepted, handle_sendemail_coachrequest_accepted,
email, coachname, name) email, coachname, name)
def send_coachoffer_accepted_email(rekwest): def send_coachoffer_accepted_email(rekwest):
@@ -762,6 +752,6 @@ def send_coachoffer_accepted_email(rekwest):
name = rekwest.user.first_name + " " + rekwest.user.last_name name = rekwest.user.first_name + " " + rekwest.user.last_name
res = myqueue(queuehigh, _ = myqueue(queuehigh,
handle_sendemail_coachoffer_accepted, handle_sendemail_coachoffer_accepted,
coachemail, coachname, name) coachemail, coachname, name)