Private
Public Access
1
0

some tweaks to make middleware working

This commit is contained in:
Sander Roosendaal
2018-01-17 18:39:02 +01:00
parent 30a325d0f5
commit 5917e3c5b8

View File

@@ -1,6 +1,10 @@
from django.utils import timezone from django.utils import timezone
from rowers.models import Workout, PowerTimeFitnessMetric, Rower from rowers.models import Workout, PowerTimeFitnessMetric, Rower
import datetime import datetime
from utils import myqueue
import django_rq
queue = django_rq.get_queue('default')
from rowers.tasks import handle_updatefitnessmetric
def getrower(user): def getrower(user):
try: try:
@@ -23,10 +27,11 @@ def do_update(user,mode='rower',days=42):
workoutmode=mode) workoutmode=mode)
if len(ms) == 0: if len(ms) == 0:
return 0 max_workout_id = 0
last_update_date = '1972-01-01'
max_workout_id = max([m.last_workout for m in ms]) else:
last_update_date = max([m.date.strftime('%Y-%m-%d') for m in ms]) 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': if mode == 'rower':
workouts = Workout.objects.filter( workouts = Workout.objects.filter(
@@ -40,14 +45,18 @@ def do_update(user,mode='rower',days=42):
startdatetime__gte=startdate) startdatetime__gte=startdate)
theids = [int(w.id) for w in workouts] 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: if last_update_date < now_date and max_workout_id < max_id:
job = myqueue(queue, job = myqueue(queue,
handle_updatefitnessmetric, handle_updatefitnessmetric,
request.user.id,mode,theids, user.id,mode,theids,
) )
return 1 return 1
class PowerTimeFitnessMetricMiddleWare(object): class PowerTimeFitnessMetricMiddleWare(object):