From 1539c6e6d54b1852a806a9a0106f8c24159ba827 Mon Sep 17 00:00:00 2001 From: Sander Roosendaal Date: Sun, 7 Jun 2020 09:51:25 +0200 Subject: [PATCH] filtering speed/pace --- rowers/dataprep.py | 1 - rowers/interactiveplots.py | 8 ++++++++ rowers/rower_rules.py | 1 + rowers/views/planviews.py | 2 +- 4 files changed, 10 insertions(+), 2 deletions(-) diff --git a/rowers/dataprep.py b/rowers/dataprep.py index b5712d7a..4c439621 100644 --- a/rowers/dataprep.py +++ b/rowers/dataprep.py @@ -1985,7 +1985,6 @@ def getsmallrowdata_db(columns, ids=[], doclean=True,workstrokesonly=True,comput df = pd.DataFrame() - if compute and len(df): data = df.copy() if doclean: diff --git a/rowers/interactiveplots.py b/rowers/interactiveplots.py index aa884ea1..c993dd42 100644 --- a/rowers/interactiveplots.py +++ b/rowers/interactiveplots.py @@ -5458,6 +5458,14 @@ def interactive_multiple_compare_chart(ids,xparam,yparam,plottype='line', ymean = group['y'].mean() + f = group['time'].diff().mean() + if f != 0 and not np.isnan(f): + windowsize = 2* (int(20000./(f))) + 1 + else: + windowsize = 1 + + if windowsize >= 3 and windowsize < len(group['y']): + group['y'] = savgol_filter(group['y'],windowsize,3) ylabel = Label(x=100,y=60+nrworkouts*20-20*cntr, x_units='screen',y_units='screen', diff --git a/rowers/rower_rules.py b/rowers/rower_rules.py index f584c5a5..e6401016 100644 --- a/rowers/rower_rules.py +++ b/rowers/rower_rules.py @@ -570,6 +570,7 @@ def can_change_session(user,session): return False + @rules.predicate def can_delete_session(user,session): if user.is_anonymous: diff --git a/rowers/views/planviews.py b/rowers/views/planviews.py index 3a5e5764..f596d83a 100644 --- a/rowers/views/planviews.py +++ b/rowers/views/planviews.py @@ -173,7 +173,7 @@ def plannedsession_comment_view(request,id=0,userid=0): }) @login_required -@permission_required('plannedsession.edit_session',fn=get_session_by_pk,raise_exception=True) +@permission_required('virtualevent.change_race',fn=get_session_by_pk,raise_exception=True) def plannedsession_message_view(request,id=0,userid=0): r = getrequestplanrower(request,userid=userid) ps = get_object_or_404(PlannedSession,pk=id)