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):