diff --git a/rowers/models.py b/rowers/models.py index 8e5c2e28..dc5e3e21 100644 --- a/rowers/models.py +++ b/rowers/models.py @@ -2275,8 +2275,8 @@ class PlannedSession(models.Model): is_template = models.BooleanField(default=False) - fitfile = models.CharField(default=None,max_length=150,blank=True,null=True) - json_string = models.TextField(max_length=1000,default=None,blank=True,null=True) + fitfile = models.FileField(blank=True,null=True) + json_string = models.TextField(max_length=10000,default=None,blank=True,null=True) interval_string = models.TextField(max_length=1000,default=None,blank=True,null=True, verbose_name='Interval String (optional)') @@ -2498,7 +2498,8 @@ class PlannedSessionForm(ModelForm): 'sessionunit', 'course', 'comment', - 'interval_string' + 'interval_string', + 'fitfile', ] dateTimeOptions = { diff --git a/rowers/views/planviews.py b/rowers/views/planviews.py index 71faa56a..c9345637 100644 --- a/rowers/views/planviews.py +++ b/rowers/views/planviews.py @@ -426,7 +426,7 @@ def plannedsession_create_view(request, if request.method == 'POST': - sessioncreateform = PlannedSessionForm(request.POST) + sessioncreateform = PlannedSessionForm(request.POST, request.FILES) if sessioncreateform.is_valid(): cd = sessioncreateform.cleaned_data startdate = cd['startdate'] @@ -444,6 +444,7 @@ def plannedsession_create_view(request, + if sessionunit == 'min': sessionmode = 'time' elif sessionunit in ['km','m']: @@ -476,6 +477,16 @@ def plannedsession_create_view(request, ps.comment += '\n'+txt ps.save() + if sessioncreateform.cleaned_data['fitfile']: + f = sessioncreateform.cleaned_data['fitfile'] + filename, path_and_filename = handle_uploaded_file(f) + ps.fitfile.name = filename + structured_workout = FitWorkoutSteps(path_and_filename) + dct = structured_workout.get_dict() + ps.comment += '\n'+structured_workout.get_description() + ps.json_string = json.dumps(dct) + ps.save() + add_rower_session(r,ps)