form create changes
This commit is contained in:
@@ -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", "
");
|
||||
value.replace("\n", "
");
|
||||
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()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user