From 5917e3c5b8c94dbdbb4511b72e26b704bc939d3c Mon Sep 17 00:00:00 2001 From: Sander Roosendaal Date: Wed, 17 Jan 2018 18:39:02 +0100 Subject: [PATCH] some tweaks to make middleware working --- rowers/middleware.py | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/rowers/middleware.py b/rowers/middleware.py index e3284aed..db511b02 100644 --- a/rowers/middleware.py +++ b/rowers/middleware.py @@ -1,6 +1,10 @@ from django.utils import timezone from rowers.models import Workout, PowerTimeFitnessMetric, Rower import datetime +from utils import myqueue +import django_rq +queue = django_rq.get_queue('default') +from rowers.tasks import handle_updatefitnessmetric def getrower(user): try: @@ -23,10 +27,11 @@ def do_update(user,mode='rower',days=42): workoutmode=mode) if len(ms) == 0: - return 0 - - max_workout_id = max([m.last_workout for m in ms]) - last_update_date = max([m.date.strftime('%Y-%m-%d') for m in ms]) + max_workout_id = 0 + last_update_date = '1972-01-01' + else: + max_workout_id = max([m.last_workout for m in ms]) + last_update_date = max([m.date.strftime('%Y-%m-%d') for m in ms]) if mode == 'rower': workouts = Workout.objects.filter( @@ -40,14 +45,18 @@ def do_update(user,mode='rower',days=42): startdatetime__gte=startdate) theids = [int(w.id) for w in workouts] - max_id = max(theids) + try: + max_id = max(theids) + except ValueError: + max_id = 0 if last_update_date < now_date and max_workout_id < max_id: job = myqueue(queue, handle_updatefitnessmetric, - request.user.id,mode,theids, + user.id,mode,theids, ) + return 1 class PowerTimeFitnessMetricMiddleWare(object):