Private
Public Access
1
0

adding async sessions creation, adding link to plan

This commit is contained in:
2024-12-12 18:35:01 +01:00
parent e8c4f836c8
commit 9a7ecfeebc
4 changed files with 87 additions and 30 deletions

View File

@@ -9,7 +9,7 @@ from rowers.models import (
from rowers.tasks import (
handle_sendemail_raceregistration, handle_sendemail_racesubmission
)
from rowers.tasks import handle_check_race_course
from rowers.tasks import handle_check_race_course, create_sessions_from_json_async
from iso8601 import ParseError
import iso8601
import rowers.courses as courses
@@ -1068,40 +1068,48 @@ def get_workouts_session(r, ps):
return ws
def create_sessions_from_json(plansteps, rower, startdate, manager, planbyrscore=False):
def create_sessions_from_json(plansteps, rower, startdate, manager, planbyrscore=False, plan=None,
asynchronous=False, queue=queue):
trainingdays = plansteps['trainingDays']
planstartdate = startdate
for day in trainingdays:
for workout in day['workouts']:
sessionsport = 'water'
try:
sessionsport = mytypes.fitmappinginv[workout['sport'].lower()]
except KeyError:
pass
if not asynchronous:
for day in trainingdays:
for workout in day['workouts']:
sessionsport = 'water'
try:
sessionsport = mytypes.fitmappinginv[workout['sport'].lower()]
except KeyError:
pass
preferreddate = planstartdate+timedelta(days=day['order'])
preferreddate = planstartdate+timedelta(days=day['order'])
sessionmode = 'time'
if planbyrscore:
sessionmode = 'rScore'
sessionmode = 'time'
if planbyrscore:
sessionmode = 'rScore'
ps = PlannedSession(
startdate=preferreddate -
timedelta(days=preferreddate.weekday()),
enddate=preferreddate +
timedelta(days=-preferreddate.weekday()-1, weeks=1),
preferreddate=preferreddate,
sessionsport=sessionsport, # change this
name=workout['workoutName'],
steps=workout,
manager=manager,
sessionmode=sessionmode,
comment=workout['description']
)
ps = PlannedSession(
startdate=preferreddate -
timedelta(days=preferreddate.weekday()),
enddate=preferreddate +
timedelta(days=-preferreddate.weekday()-1, weeks=1),
preferreddate=preferreddate,
sessionsport=sessionsport, # change this
name=workout['workoutName'],
steps=workout,
manager=manager,
sessionmode=sessionmode,
comment=workout['description'],
from_plan=plan,
)
ps.save()
ps.save()
add_rower_session(rower, ps)
add_rower_session(rower, ps)
return
# async version
_ = myqueue(queue, create_sessions_from_json_async, plansteps, rower, startdate, manager, planbyrscore, plan)
def update_plannedsession(ps, cd):