Private
Public Access
1
0

form create changes

This commit is contained in:
Sander Roosendaal
2021-02-13 14:35:55 +01:00
parent 050c31a5c1
commit 3efcc8d042
8 changed files with 112 additions and 77 deletions

View File

@@ -16,8 +16,7 @@ from django.conf import settings
import pytz
from dateutil import parser
from rowers.utils import myqueue,calculate_age,totaltime_sec_to_string
from fitparse import FitFile
from rowers.rows import handle_uploaded_file
import re
import django_rq
@@ -190,42 +189,17 @@ def ps_dict_get_description(d):
return s
class FitWorkoutSteps(object):
def __init__(self,readfile):
self.readfile = readfile
self.fitfile = FitFile(readfile, check_crc=False)
self.records = self.fitfile.messages
self.name = ''
self.sport = 'Custom'
def __init__(self,json_string,name='',sport='Custom'):
self.json = json_string
self.steps = json.loads(json_string)
self.name = name
self.sport = sport
# message 0 is file id
# message 1 must be workout description
m0 = self.records[0]
typ = m0.fields[0].value
if typ != 'workout':
raise TypeError("Wrong FIT file type")
steps = []
stepmessages = self.fitfile.get_messages('workout_step')
for msg in stepmessages:
if msg.name == 'workout_step':
step = {}
for field in msg.fields:
ff = field.as_dict()
step[ff['name']] = ff['value']
steps.append(step)
for msg in self.fitfile.get_messages('workout'):
if msg.name == 'workout':
for field in msg.fields:
ff = field.as_dict()
if ff['name'] == 'wkt_name':
self.name = ff['value']
if ff['name'] == 'sport':
self.sport = ff['value']
self.steps = steps
def to_json(self):
d = self.get_dict()
@@ -233,13 +207,7 @@ class FitWorkoutSteps(object):
return json.dumps(d)
def get_dict(self):
d = {}
d['filename'] = self.readfile
d['name'] = self.name
d['steps'] = self.steps
d['sport'] = self.sport
return d
return self.steps
def get_description(self):
@@ -1155,7 +1123,14 @@ def update_plannedsession(ps,cd):
if attr == 'comment':
value.replace("\r\n", "&#10");
value.replace("\n", "&#10");
setattr(ps, attr, value)
if attr != 'fitfile':
setattr(ps, attr, value)
if cd['fitfile']:
f = cd['fitfile']
filename, path_and_filename = handle_uploaded_file(f)
ps.fitfile.name = filename
ps.save()