Private
Public Access
1
0

bug fixes

This commit is contained in:
Sander Roosendaal
2020-02-18 21:37:13 +01:00
parent fc6dd7e347
commit 38094d7b13
6 changed files with 35 additions and 33 deletions

View File

@@ -15,6 +15,7 @@ from rowingdata import rowingdata as rrdata
from rowingdata import rower as rrower from rowingdata import rower as rrower
import yaml
import shutil import shutil
from shutil import copyfile from shutil import copyfile
@@ -1469,7 +1470,8 @@ def new_workout_from_file(r, f2,
title='Workout', title='Workout',
boattype='1x', boattype='1x',
makeprivate=False, makeprivate=False,
notes=''): notes='',
uploadoptions={'boattype':'1x','workouttype':'rower'}):
message = "" message = ""
impeller = False impeller = False
try: try:
@@ -1483,12 +1485,14 @@ def new_workout_from_file(r, f2,
oarlength = 2.89 oarlength = 2.89
inboard = 0.88 inboard = 0.88
if len(fileformat) == 3 and fileformat[0] == 'zip': if len(fileformat) == 3 and fileformat[0] == 'zip':
uploadoptions['fromuploadform'] = True
bodyyaml = yaml.safe_dump(uploadoptions,default_flow_style=False)
f_to_be_deleted = f2 f_to_be_deleted = f2
impeller = False impeller = False
workoutsbox = Mailbox.objects.filter(name='workouts')[0] workoutsbox = Mailbox.objects.filter(name='workouts')[0]
msg = Message(mailbox=workoutsbox, msg = Message(mailbox=workoutsbox,
from_header=r.user.email, from_header=r.user.email,
subject = title) subject = title,body=bodyyaml)
msg.save() msg.save()
f3 = 'media/mailbox_attachments/'+f2[6:] f3 = 'media/mailbox_attachments/'+f2[6:]
copyfile(f2,f3) copyfile(f2,f3)

View File

@@ -83,6 +83,8 @@ def processattachment(rower, fileobj, title, uploadoptions,testing=False):
users = User.objects.filter(username=uploadoptions['username']) users = User.objects.filter(username=uploadoptions['username'])
if len(users)==1: if len(users)==1:
therower = users[0].rower therower = users[0].rower
elif uploadoptions['username'] == '':
therower = rower
else: else:
return 0 return 0
else: else:
@@ -94,7 +96,6 @@ def processattachment(rower, fileobj, title, uploadoptions,testing=False):
uploadoptions['file'] = 'media/'+filename uploadoptions['file'] = 'media/'+filename
uploadoptions['title'] = title uploadoptions['title'] = title
url = settings.UPLOAD_SERVICE_URL url = settings.UPLOAD_SERVICE_URL
if not testing: if not testing:
response = requests.post(url,data=uploadoptions) response = requests.post(url,data=uploadoptions)
@@ -239,7 +240,6 @@ class Command(BaseCommand):
attachment.delete() attachment.delete()
for rower in rowers: for rower in rowers:
if 'zip' in extension: if 'zip' in extension:
try:
zip_file = zipfile.ZipFile(attachment.document) zip_file = zipfile.ZipFile(attachment.document)
for id,filename in enumerate(zip_file.namelist()): for id,filename in enumerate(zip_file.namelist()):
datafile = zip_file.extract( datafile = zip_file.extract(
@@ -248,15 +248,11 @@ class Command(BaseCommand):
title = name+' ('+str(id+1)+')' title = name+' ('+str(id+1)+')'
else: else:
title = name title = name
workoutid = processattachment( workoutid = processattachment(
rower, datafile, title, uploadoptions, rower, datafile, title, uploadoptions,
testing=testing testing=testing
) )
print(workoutid)
except:
print("Bad ZIP file")
print(attachment.document.name)
else: else:
# move attachment and make workout # move attachment and make workout
if testing: if testing:

View File

@@ -509,7 +509,7 @@ def make_private(w,options):
def do_sync(w,options): def do_sync(w,options):
try: try:
if options['stravaid'] != 0: if options['stravaid'] != 0 and options['stravaid'] != '':
w.uploadedtostrava = options['stravaid'] w.uploadedtostrava = options['stravaid']
options['upload_to_Strava'] = False options['upload_to_Strava'] = False
w.save() w.save()

View File

@@ -52,7 +52,9 @@ def strokedatajson(request,id):
POST: Add Stroke data to workout POST: Add Stroke data to workout
GET: Get stroke data of workout GET: Get stroke data of workout
""" """
row = get_workout_permitted(request.user,id) row = get_object_or_404(Workout,pk=id)
if row.user != request.user.rower:
raise PermissionDenied("You have no access to this workout")
try: try:
id = int(id) id = int(id)

View File

@@ -82,7 +82,7 @@ def workout_strava_upload_view(request,id=0):
return HttpResponseRedirect("/rowers/me/stravaauthorize/") return HttpResponseRedirect("/rowers/me/stravaauthorize/")
else: else:
# ready to upload. Hurray # ready to upload. Hurray
w = get_workout_permitted(request.user,id) w = get_workout_by_opaqueid(request,id)
r = w.user r = w.user
try: try:

View File

@@ -4406,7 +4406,6 @@ def workout_upload_api(request):
except (KeyError,JSONDecodeError): except (KeyError,JSONDecodeError):
post_data = request.POST post_data = request.POST
# only allow local host # only allow local host
hostt = request.get_host().split(':') hostt = request.get_host().split(':')
if hostt[0] not in ['localhost','127.0.0.1','dev.rowsandall.com','rowsandall.com']: if hostt[0] not in ['localhost','127.0.0.1','dev.rowsandall.com','rowsandall.com']:
@@ -4491,6 +4490,7 @@ def workout_upload_api(request):
makeprivate=makeprivate, makeprivate=makeprivate,
title = t, title = t,
notes=notes, notes=notes,
uploadoptions=post_data,
) )
if id == 0: if id == 0: