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

@@ -20,6 +20,7 @@ from datetimewidget.widgets import DateTimeWidget
from django.contrib.admin.widgets import AdminDateWidget,AdminTimeWidget,AdminSplitDateTime
from django.core.validators import validate_email
import os
import json
import twitter
import re
import pytz
@@ -31,6 +32,8 @@ import numpy as np
import shutil
from rowingdata import trainingparser
from django.conf import settings
from sqlalchemy import create_engine
import sqlalchemy as sa
@@ -478,7 +481,8 @@ class TeamRequest(models.Model):
from rowers.utils import (
workflowleftpanel,workflowmiddlepanel,
defaultleft,defaultmiddle,landingpages
defaultleft,defaultmiddle,landingpages,
steps_read_fit
)
from rowers.utils import geo_distance
@@ -2279,7 +2283,7 @@ class PlannedSession(models.Model):
is_template = models.BooleanField(default=False)
fitfile = models.FileField(blank=True,null=True)
json_string = models.TextField(max_length=10000,default=None,blank=True,null=True)
steps_json = 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)')
@@ -2309,6 +2313,15 @@ class PlannedSession(models.Model):
"You must be a Self-Coach user or higher to create a planned session"
)
# interval string
if self.interval_string:
dct = trainingparser.parsetodict(interval_string)
dct = [item for item in dct if item['value'] != 0]
dct = trainingparser.tofitdict(dct)
ps.steps_json = json.dumps(dct)
# sort units
if self.sessionmode == 'distance':
@@ -2346,8 +2359,21 @@ class PlannedSession(models.Model):
if self.preferreddate < self.startdate:
self.preferreddate = self.startdate
super(PlannedSession,self).save(*args, **kwargs)
# read file
if self.fitfile:
if self.fitfile.name == 'False':
self.fitfile = None
else:
steps = steps_read_fit(settings.MEDIA_ROOT+'/'+self.fitfile.name)
self.steps_json = json.dumps(steps)
super(PlannedSession,self).save(*args, **kwargs)
from django.core.validators import RegexValidator,validate_email
class StandardCollection(models.Model):
@@ -2515,7 +2541,8 @@ class PlannedSessionForm(ModelForm):
'startdate': AdminDateWidget(),
'enddate': AdminDateWidget(),
'preferreddate': AdminDateWidget(),
'interval_string': forms.Textarea(attrs={'rows':2,'cols':50})
'interval_string': forms.Textarea(attrs={'rows':2,'cols':50}),
#'sessiontype': forms.Select(attrs={'style':'width:50px'})
}
def __init__(self,*args,**kwargs):