Private
Public Access
1
0

workouttype mapping for C2

This commit is contained in:
Sander Roosendaal
2018-11-14 15:24:14 +01:00
parent fc5ee4517d
commit f52de7e697
3 changed files with 53 additions and 4 deletions

View File

@@ -6,7 +6,7 @@
from rowers.imports import * from rowers.imports import *
import datetime import datetime
from requests import Request, Session from requests import Request, Session
import mytypes
from rowers.mytypes import otwtypes from rowers.mytypes import otwtypes
from iso8601 import ParseError from iso8601 import ParseError
@@ -428,7 +428,7 @@ def createc2workoutdata(w):
startdate = datetime.datetime.combine(w.date,datetime.time()) startdate = datetime.datetime.combine(w.date,datetime.time())
data = { data = {
"type": workouttype, "type": mytypes.c2mapping[workouttype],
"date": w.startdatetime.isoformat(), "date": w.startdatetime.isoformat(),
"timezone": w.timezone, "timezone": w.timezone,
"distance": int(w.distance), "distance": int(w.distance),
@@ -684,6 +684,9 @@ def process_callback(request):
# Uploading workout # Uploading workout
def workout_c2_upload(user,w): def workout_c2_upload(user,w):
message = 'trying C2 upload' message = 'trying C2 upload'
if mytypes.c2mapping[w.workouttype] is None:
return "This workout type cannot be uploaded to Concept2",0
thetoken = c2_open(user) thetoken = c2_open(user)
r = Rower.objects.get(user=user) r = Rower.objects.get(user=user)
@@ -755,7 +758,7 @@ def add_workout_from_data(user,importid,data,strokedata,
source='c2',splitdata=None, source='c2',splitdata=None,
workoutsource='concept2'): workoutsource='concept2'):
try: try:
workouttype = data['type'] workouttype = mytypes.c2mappinginv[data['type']]
except KeyError: except KeyError:
workouttype = 'rower' workouttype = 'rower'

View File

@@ -41,6 +41,52 @@ workouttypes = (
('other','Other'), ('other','Other'),
) )
c2mapping = {
'water':'water',
'rower':'rower',
'skierg':'skierg',
'bike':'bike',
'dynamic':'dynamic',
'slides':'slides',
'paddle':'paddle',
'snow':'snow',
'coastal':'water',
'c-boat':'water',
'churchboat':'water',
'Ride':'bike',
'Kitesurf':None,
'Run':None,
'NordicSki':'snow',
'Swim':None,
'RockClimbing':None,
'Hike':None,
'RollerSki':'snow',
'Walk':None,
'AlpineSki':None,
'Snowboard':None,
'BackcountrySki':'snow',
'Snowshoe':'snow',
'Canoeing':'paddle',
'StairStepper':None,
'Crossfit':None,
'StandUpPaddling':None,
'EBikeRide':None,
'Surfing':None,
'Elliptical':None,
'VirtualRide':None,
'IceSkate':None,
'WeightTraining':None,
'InlineSkate':None,
'Windsurf':None,
'Kayaking':None,
'Workout':None,
'Yoga':None,
'other':None,
}
c2mappinginv = {value:key for key,value in c2mapping.iteritems() if value is not None}
otwtypes = ( otwtypes = (
'water', 'water',
'coastal', 'coastal',

View File

@@ -10822,7 +10822,7 @@ def workout_getimportview(request,externalid,source = 'c2'):
if strokedata.empty: if strokedata.empty:
distance = data['distance'] distance = data['distance']
c2id = data['id'] c2id = data['id']
workouttype = data['type'] workouttype = mytypes.c2mappinginv[data['type']]
verified = data['verified'] verified = data['verified']
startdatetime = iso8601.parse_date(data['date']) startdatetime = iso8601.parse_date(data['date'])
weightclass = data['weight_class'] weightclass = data['weight_class']