From 6c68a35b2e16c5414034122d873fb5cfa2aa4553 Mon Sep 17 00:00:00 2001 From: Sander Roosendaal Date: Tue, 30 May 2017 18:23:51 +0200 Subject: [PATCH] consistency check for distance/velocity --- rowers/dataprep.py | 14 +++++++++++++- rowers/dataprepnodjango.py | 11 +++++++++++ rowers/teams.py | 1 + 3 files changed, 25 insertions(+), 1 deletion(-) diff --git a/rowers/dataprep.py b/rowers/dataprep.py index 762c4ea3..9744c77a 100644 --- a/rowers/dataprep.py +++ b/rowers/dataprep.py @@ -29,7 +29,7 @@ from rowingdata import ( from rowers.models import Team from rowers.metrics import axes - +from async_messages import messages as a_messages import os import zipfile import pandas as pd @@ -411,6 +411,18 @@ def save_workout_database(f2,r,dosmooth=True,workouttype='rower', hrtr=r.tr,hran=r.an,ftp=r.ftp, powerperc=powerperc,powerzones=r.powerzones) row = rdata(f2,rower=rr) + + checks = row.check_consistency() + allchecks = 1 + for key,value in checks.iteritems(): + if not value: + allchecks = 0 + a_messages.error(r.user,'Failed consistency check: '+key+', autocorrected') + + if not allchecks: + row.repair() + + if row == 0: return (0,'Error: CSV data file not found') diff --git a/rowers/dataprepnodjango.py b/rowers/dataprepnodjango.py index af17d87a..95616d9e 100644 --- a/rowers/dataprepnodjango.py +++ b/rowers/dataprepnodjango.py @@ -131,6 +131,17 @@ def save_workout_database(f2,r,dosmooth=True,workouttype='rower', hrtr=r.tr,hran=r.an,ftp=r.ftp, powerperc=powerperc,powerzones=r.powerzones) row = rdata(f2,rower=rr) + + checks = row.check_consistency() + allchecks = 1 + for key,value in checks.iteritems(): + if not value: + allchecks = 0 + + if not allchecks: + row.repair() + + if row == 0: return (0,'Error: CSV data file not found') diff --git a/rowers/teams.py b/rowers/teams.py index 6ab792d3..e2b45f5e 100644 --- a/rowers/teams.py +++ b/rowers/teams.py @@ -9,6 +9,7 @@ from django.db import IntegrityError import uuid from django.conf import settings + import django_rq queue = django_rq.get_queue('default') queuelow = django_rq.get_queue('low')