From ce30e66d276990241d2e41aba9b68b4e40a335c1 Mon Sep 17 00:00:00 2001 From: Sander Roosendaal Date: Thu, 28 Apr 2022 11:54:40 +0200 Subject: [PATCH] initial rojabo integration --- rowers/tasks.py | 12 +++++- rowers/templates/menu_plan.html | 5 +++ rowers/templates/rojabo_list_import.html | 4 ++ rowers/views/importviews.py | 49 +++++++++++++++++++++++- rowers/views/statements.py | 1 + 5 files changed, 69 insertions(+), 2 deletions(-) diff --git a/rowers/tasks.py b/rowers/tasks.py index 7886c1e3..a7bc701c 100644 --- a/rowers/tasks.py +++ b/rowers/tasks.py @@ -3377,6 +3377,16 @@ def handle_c2_async_workout(alldata, userid, c2token, c2id, delaysec, defaulttim return workoutid +@app.task +def fetch_rojabo_session(id,alldata,userid,rowerid,debug=False, **kwargs): + try: + item = alldata[id] + except KeyError: + return 0 + + + return 1 + @app.task def fetch_strava_workout(stravatoken, oauth_data, stravaid, csvfilename, userid, debug=False, **kwargs): @@ -3390,7 +3400,7 @@ def fetch_strava_workout(stravatoken, oauth_data, stravaid, csvfilename, userid, if response.status_code != 200: # pragma: no cover tstamp = time.localtime() timestamp = time.strftime('%b-%d-%Y_%H%M', tstamp) - with open('strava_webhooks.log', 'a') as f: + with open('stravalog.log', 'a') as f: f.write('\n') f.write(timestamp) f.write(' ') diff --git a/rowers/templates/menu_plan.html b/rowers/templates/menu_plan.html index da163066..4ff3f5bf 100644 --- a/rowers/templates/menu_plan.html +++ b/rowers/templates/menu_plan.html @@ -66,6 +66,11 @@  Add Session +
  • + +  Import from Rojabo + +
  • Plan Microcycle diff --git a/rowers/templates/rojabo_list_import.html b/rowers/templates/rojabo_list_import.html index b0a68882..50cd88e7 100644 --- a/rowers/templates/rojabo_list_import.html +++ b/rowers/templates/rojabo_list_import.html @@ -19,7 +19,9 @@ Import Session SPM + Points Planned Date + New @@ -34,7 +36,9 @@ {{ session|lookuplong:'name' }} {{ session|lookuplong:'spm' }} + {{ session|lookuplong:'points' }} {{ session|lookuplong:'date' }} + {{ session|lookuplong:'new' }} {% endfor %} diff --git a/rowers/views/importviews.py b/rowers/views/importviews.py index 0ca52ee3..35191735 100644 --- a/rowers/views/importviews.py +++ b/rowers/views/importviews.py @@ -1064,14 +1064,59 @@ def workout_rojaboimport_view(request, message="", userid=0): sessions = [] r = getrower(request.user) + + if request.method == "POST": + try: + tdict = dict(request.POST.lists()) + ids = tdict['sessionid'] + rojaboids = [int(id) for id in ids] + alldata = {} + for item in res.json(): + alldata[item['training_session']['id']] = item['training_session'] + for rojaboid in rojaboids: + try: + item = alldata[rojaboid] + name = item['workout'] + spm = item['stroke'] + points = item['points'] + manager = userid + comment = 'ROJABO {name}, SPM: {spm}. Points: {points}'.format( + name = name, + points = points, + spm = spm, + ) + + preferreddate = datetime.datetime.strptime(item['training_date'],"%Y-%m-%d") + startdate = preferreddate + enddate = preferreddate + ps = PlannedSession( + name = item['workout'], + comment = comment, + startdate = startdate, + enddate = enddate, + preferreddate = preferreddate, + sessionsport = 'rower', + manager = request.user, + rojabo_id = rojaboid, + ) + ps.save() + ps.rower.add(r) + ps.tags.add('ROJABO') + ps.save() + messages.info(request,'Saved planned session {id}'.format(id=ps.id)) + except KeyError: + pass + except KeyError: + pass + rojabo_ids = [int(item['training_session']['id']) for item in res.json()] knownrojaboids = uniqify([ ps.rojabo_id for ps in PlannedSession.objects.filter(manager=request.user) ]) + for item in res.json(): - print(item['training_session']) i = item['training_session']['id'] if i in knownrojaboids: nnn = '' @@ -1080,12 +1125,14 @@ def workout_rojaboimport_view(request, message="", userid=0): n = item['training_session']['workout'] spm = item['training_session']['stroke'] d = item['training_session']['training_date'] + p = item['training_session']['points'] sessions.append({ 'id':i, 'name':n, 'spm':spm, 'new':nnn, 'date': d, + 'points': p, }) breadcrumbs = [ diff --git a/rowers/views/statements.py b/rowers/views/statements.py index c6a8f707..b03447e6 100644 --- a/rowers/views/statements.py +++ b/rowers/views/statements.py @@ -239,6 +239,7 @@ from rowers.rows import handle_uploaded_file, handle_uploaded_image from rowers.plannedsessions import * from rowers.tasks import handle_makeplot, handle_otwsetpower, handle_sendemailtcx, handle_sendemailcsv from rowers.tasks import ( + fetch_rojabo_session, handle_sendemail_unrecognized, handle_sendemailnewcomment, handle_request_post, handle_sendemailsummary,