Private
Public Access
1
0

Merge branch 'release/v11.91'

This commit is contained in:
Sander Roosendaal
2020-03-15 20:37:54 +01:00
5 changed files with 42 additions and 5 deletions

View File

@@ -7,6 +7,12 @@ from __future__ import unicode_literals, absolute_import
from rowers.imports import *
import re
import django_rq
queue = django_rq.get_queue('default')
queuelow = django_rq.get_queue('low')
queuehigh = django_rq.get_queue('low')
from rowers.utils import myqueue
from rowers.rower_rules import is_workout_user
from rowsandall_app.settings import (
@@ -276,7 +282,7 @@ def default(o):
if isinstance(o, numpy.int64): return int(o)
raise TypeError
def workout_runkeeper_upload(user,w):
def workout_runkeeper_upload(user,w,asynchron=False):
message = "Uploading to Runkeeper"
rkid = 0
@@ -301,6 +307,10 @@ def workout_runkeeper_upload(user,w):
'Content-Length':'nnn'}
url = "https://api.runkeeper.com/fitnessActivities"
if asynchron:
job = myqueue(queue,handle_runkeeper_sync,
w.id,url,headers,json.dumps(data,default=default))
return "Asynchronous sync",0
response = requests.post(url,headers=headers,data=json.dumps(data,default=default))
# check for duplicate error first

View File

@@ -8,6 +8,12 @@ from __future__ import unicode_literals, absolute_import
import numpy
import django_rq
queue = django_rq.get_queue('default')
queuelow = django_rq.get_queue('low')
queuehigh = django_rq.get_queue('low')
from rowers.utils import myqueue
from rowers.imports import *
import re
from rowsandall_app.settings import (
@@ -280,7 +286,8 @@ def workout_sporttracks_upload(user,w,asynchron=False):
url = "https://api.sporttracks.mobi/api/v2/fitnessActivities.json"
if asynchron:
job = myqueue(w.id,url,headers,json.dumps(data,default=default))
job = myqueue(queue,handle_sporttracks_sync,
w.id,url,headers,json.dumps(data,default=default))
return "Asynchronous sync",0
response = requests.post(url,headers=headers,data=json.dumps(data,default=default))

View File

@@ -151,6 +151,21 @@ def handle_sporttracks_sync(workoutid,url,headers,data,debug=False,**kwargs):
res = update_workout_field_sql(workoutid,'uploadedtosporttracks',id,debug=debug)
app.task
def handle_runkeeper_sync(workoutid,url,headers,data,debug=False,**kwargs):
response = requests.post(url,headers=headers,data=data)
if response.status_code not in [200,201]:
return 0
t = response.json()
uri = t['uris'][0]
regex = '.*?sporttracks\.mobi\/api\/v2\/fitnessActivities/(\d+)\.json$'
m = re.compile(regex).match(uri).group(1)
id = int(m)
res = update_workout_field_sql(workoutid,'uploadedtorunkeeper',id,debug=debug)
@app.task
@@ -2177,7 +2192,7 @@ def handle_sendemail_message(email,fromemail,rowername,message,teamname,managern
fullemail = email
subject = 'New message from team ' + teamname
from_email = fromemail
from_email = 'Rowsandall <info@rowsandall.com>'
d = {
'rowername':rowername,

View File

@@ -42,7 +42,7 @@ from rowers.tasks import (
handle_sendemail_message,
)
from rowers.models import ValidationError
from rowers.models import ValidationError, PlannedSession
# Low level functions - to be called by higher level methods
@@ -133,6 +133,11 @@ def add_member(id,rower):
res = handle_add_workouts_team(ws,t)
# code to add plannedsessions
plannedsessions = PlannedSession.objects.filter(team=t,enddate__gte=timezone.now().date())
for ps in plannedsessions:
res = ps.rower.add(rower)
# set_teamplanexpires(rower)
return (id,'Member added')

View File

@@ -555,7 +555,7 @@ def do_sync(w,options, quick=False):
if ('upload_to_RunKeeper' in options and options['upload_to_RunKeeper']) or (w.user.runkeeper_auto_export and ispromember(w.user.user)):
try:
message,id = runkeeperstuff.workout_runkeeper_upload(
w.user.user,w
w.user.user,w,asynchron=True,
)
except NoTokenError:
message = "Please connect to Runkeeper first"