diff --git a/rowers/dataprep.py b/rowers/dataprep.py index 70537eeb..2422a9b9 100644 --- a/rowers/dataprep.py +++ b/rowers/dataprep.py @@ -846,7 +846,8 @@ def save_workout_database(f2, r, dosmooth=True, workouttype='rower', pass return new_workout_from_df(r, newdf, title=title,boattype=boattype, - workouttype=workouttype) + workouttype=workouttype, + workoutsource=workoutsource) try: checks = row.check_consistency() allchecks = 1 @@ -1178,6 +1179,7 @@ def handle_nonpainsled(f2, fileformat, summary=''): def new_workout_from_file(r, f2, workouttype='rower', + workoutsource=None, title='Workout', boattype='1x', makeprivate=False, @@ -1272,13 +1274,16 @@ def new_workout_from_file(r, f2, dosummary = (fileformat != 'fit' and 'speedcoach2' not in fileformat) dosummary = dosummary or summary == '' + if workoutsource is None: + workoutsource = fileformat + id, message = save_workout_database( f2, r, workouttype=workouttype, boattype=boattype, makeprivate=makeprivate, dosummary=dosummary, - workoutsource=fileformat, + workoutsource=workoutsource, summary=summary, inboard=inboard, oarlength=oarlength, title=title @@ -1389,6 +1394,7 @@ def split_workout(r, parent, splitsecond, splitmode): def new_workout_from_df(r, df, title='New Workout', + workoutsource='unknown', boattype='1x', workouttype='rower', parent=None, @@ -1403,7 +1409,7 @@ def new_workout_from_df(r, df, oarlength = parent.oarlength inboard = parent.inboard - + workoutsource = parent.workoutsource workouttype = parent.workouttype boattype = parent.boattype notes = parent.notes @@ -1451,6 +1457,7 @@ def new_workout_from_df(r, df, workouttype=workouttype, boattype=boattype, title=title, + workoutsource=workoutsource, notes=notes, oarlength=oarlength, inboard=inboard, diff --git a/rowers/dataprepnodjango.py b/rowers/dataprepnodjango.py index 8ac8692f..b164fbb1 100644 --- a/rowers/dataprepnodjango.py +++ b/rowers/dataprepnodjango.py @@ -298,6 +298,7 @@ def add_c2_stroke_data_db(strokedata,workoutid,starttimeunix,csvfilename, def save_workout_database(f2,r,dosmooth=True,workouttype='rower', dosummary=True,title='Workout', notes='',totaldist=0,totaltime=0, + workoutsource='unknown', summary='', makeprivate=False, oarlength=2.89,inboard=0.88): @@ -430,15 +431,16 @@ def save_workout_database(f2,r,dosmooth=True,workouttype='rower', w = Workout(user=r,name=title,date=workoutdate, - workouttype=workouttype, - duration=duration,distance=totaldist, - weightcategory=r.weightcategory, - starttime=workoutstarttime, - csvfilename=f2,notes=notes,summary=summary, - maxhr=maxhr,averagehr=averagehr, - startdatetime=workoutstartdatetime, - inboard=inboard,oarlength=oarlength, - privacy=privacy) + workouttype=workouttype, + workoutsource=workoutsource, + duration=duration,distance=totaldist, + weightcategory=r.weightcategory, + starttime=workoutstarttime, + csvfilename=f2,notes=notes,summary=summary, + maxhr=maxhr,averagehr=averagehr, + startdatetime=workoutstartdatetime, + inboard=inboard,oarlength=oarlength, + privacy=privacy) w.save() diff --git a/rowers/models.py b/rowers/models.py index 4d968e96..f45fea10 100644 --- a/rowers/models.py +++ b/rowers/models.py @@ -751,11 +751,14 @@ parchoicesx = list(sorted(favchartlabelsx.items(), key = lambda x:x[1])) # Saving a chart as a favorite chart class FavoriteChart(models.Model): - workouttypechoices = ( + workouttypechoices = [ ('ote','Erg/SkiErg'), ('otw','On The Water'), - ('both','both') - ) + ('all','All') + ] + + for workoutsource in mytypes.workoutsources: + workouttypechoices.append(workoutsource) plottypes = ( ('line','Line Chart'), @@ -771,6 +774,7 @@ class FavoriteChart(models.Model): workouttype = models.CharField(max_length=50,choices=workouttypechoices, default='both', verbose_name='Workout Type') + reststrokes = models.BooleanField(default=True,verbose_name="Incl. Rest") notes = models.CharField(max_length=300,verbose_name='Chart Notes', default='Flex Chart Notes',blank=True) @@ -930,7 +934,8 @@ def a_week_from_now(): # models related to training planning - draft # Do we need a separate class TestTarget? class TrainingTarget(models.Model): - rower = models.ForeignKey(Rower) + rower = models.ForeignKey(Rower,related_name='targetathlete') + manager = models.ForeignKey(Rower,related_name='targetmanager',null=True) name = models.CharField(max_length=150,blank=True) date = models.DateField( default=half_year_from_now) @@ -978,7 +983,8 @@ class TrainingTargetForm(ModelForm): class TrainingPlan(models.Model): - rower = models.ForeignKey(Rower) + rower = models.ForeignKey(Rower,related_name='planathlete') + manager = models.ForeignKey(Rower,related_name='planmanager',null=True) name = models.CharField(max_length=150,blank=True) target = models.ForeignKey(TrainingTarget,blank=True,null=True) startdate = models.DateField(default=timezone.now) diff --git a/rowers/mytypes.py b/rowers/mytypes.py index c6a2165c..df0709ba 100644 --- a/rowers/mytypes.py +++ b/rowers/mytypes.py @@ -30,14 +30,14 @@ workoutsources = ( ('mapmyfitness','mapmyfitness'), ('csv','painsled'), ('tcx','tcx'), - ('rp','rp'), + ('rp','rowperfect'), ('mystery','mystery'), - ('tcxnohr','tcx (no HR)'), +# ('tcxnohr','tcx (no HR)'), ('rowperfect3','rowperfect3'), ('ergdata','ergdata'), ('boatcoach','boatcoach'), ('boatcoachotw','boatcoachotw'), - ('bcmike','boatcoach (develop)'), +# ('bcmike','boatcoach (develop)'), ('painsleddesktop','painsleddesktop'), ('speedcoach','speedcoach'), ('speedcoach2','speedcoach2'), @@ -52,6 +52,7 @@ boattypes = ( ('2-', '2- (pair)'), ('2+', '2+ (coxed pair)'), ('3x+','3x+ (coxed triple)'), + ('3x-','3x- (triple)'), ('4x', '4x (quad)'), ('4x+', '4x+ (coxed quad)'), ('4-', '4- (four)'), diff --git a/rowers/templates/menu_workout.html b/rowers/templates/menu_workout.html index d79def7f..937218e7 100644 --- a/rowers/templates/menu_workout.html +++ b/rowers/templates/menu_workout.html @@ -41,13 +41,11 @@ Statistics - + {% if user.is_authenticated and workout|may_edit:request %}