Private
Public Access
1
0

initial rojabo integration

This commit is contained in:
Sander Roosendaal
2022-04-28 11:54:40 +02:00
parent 9f4f9cf8d0
commit ce30e66d27
5 changed files with 69 additions and 2 deletions

View File

@@ -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(' ')

View File

@@ -66,6 +66,11 @@
<i class="far fa-calendar-plus fa-fw"></i>&nbsp;Add Session
</a>
</li>
<li id="import-rojabo">
<a href="/rowers/session/rojaboimport/">
<i class="fas fa-cloud-download fa-fw"></i>&nbsp;Import from Rojabo
</a>
</li>
<li id="plan-microcycle">
<a href="/rowers/sessions/multicreate/?when={{ timeperiod }}">
<i class="fas fa-expand fa-fw"></i>Plan Microcycle

View File

@@ -19,7 +19,9 @@
<th> Import </th>
<th> Session</th>
<th> SPM</th>
<th> Points</th>
<th> Planned Date </th>
<th> New </th>
</tr>
</thead>
<tbody>
@@ -34,7 +36,9 @@
</td>
<td>{{ session|lookuplong:'name' }}</td>
<td>{{ session|lookuplong:'spm' }}</td>
<td>{{ session|lookuplong:'points' }}</td>
<td>{{ session|lookuplong:'date' }} </td>
<td>{{ session|lookuplong:'new' }} </td>
</tr>
{% endfor %}

View File

@@ -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 = [

View File

@@ -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,