From ce22a4173bb8de13abbbf268cd02b37912798d52 Mon Sep 17 00:00:00 2001 From: Sander Roosendaal Date: Fri, 3 Nov 2017 14:15:51 +0100 Subject: [PATCH 1/3] reversed task list order --- rowers/utils.py | 4 ---- rowers/views.py | 2 +- 2 files changed, 1 insertion(+), 5 deletions(-) diff --git a/rowers/utils.py b/rowers/utils.py index 84c70aba..fb44c219 100644 --- a/rowers/utils.py +++ b/rowers/utils.py @@ -224,10 +224,6 @@ def myqueue(queue,function,*args,**kwargs): if settings.DEBUG: kwargs['debug'] = True - print 'myqueue' - print args - print kwargs - job = function.delay(*args,**kwargs) else: job_id = str(uuid.uuid4()) diff --git a/rowers/views.py b/rowers/views.py index 5c18377f..632206de 100644 --- a/rowers/views.py +++ b/rowers/views.py @@ -440,7 +440,7 @@ def get_stored_tasks_status(request): taskids = [] taskstatus = [] - for id,func_name in taskids: + for id,func_name in reversed(taskids): progress = 0 cached_progress = cache.get(id) finished = get_job_status(id)['finished'] From aa22ce1b4746a4e122ae838ac9e7ac3a6c38ff48 Mon Sep 17 00:00:00 2001 From: Sander Roosendaal Date: Sat, 4 Nov 2017 15:19:39 +0100 Subject: [PATCH 2/3] upload form now allowing direct uploads between 1MB & 10 MB --- rowers/forms.py | 2 +- rowers/templates/document_form.html | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/rowers/forms.py b/rowers/forms.py index f4cfb3aa..744c47a3 100644 --- a/rowers/forms.py +++ b/rowers/forms.py @@ -65,7 +65,7 @@ class DocumentsForm(forms.Form): def __init__(self, *args, **kwargs): from django.forms.widgets import HiddenInput super(DocumentsForm, self).__init__(*args, **kwargs) - self.fields['offline'].widget = HiddenInput() +# self.fields['offline'].widget = HiddenInput() from utils import ( workflowleftpanel,workflowmiddlepanel, diff --git a/rowers/templates/document_form.html b/rowers/templates/document_form.html index 53c88b5d..997bfc37 100644 --- a/rowers/templates/document_form.html +++ b/rowers/templates/document_form.html @@ -22,8 +22,9 @@ } if (f.size > 1048576) { $('#id_offline').val('True'); + $('#id_offline').prop('checked','True'); console.log("Set offline to True"); - $('#extra_message').text('Because of the large size, the file will be processed offline. You will receive email when it is done. The extra actions will not be performed.'); + $('#extra_message').text('Because of the large size, we recommend to use background processing. You will receive email when it is done. The extra actions will not be performed.'); $('#extra_message').addClass('message'); } }); From bc941b3670e704da6baa7bf9a2e90dfe72c75d44 Mon Sep 17 00:00:00 2001 From: Sander Roosendaal Date: Sat, 4 Nov 2017 15:39:34 +0100 Subject: [PATCH 3/3] added thumbnail Ajax endpoint --- rowers/urls.py | 1 + rowers/views.py | 54 +++++++++++++++++++++++++++++++++++++++++++------ 2 files changed, 49 insertions(+), 6 deletions(-) diff --git a/rowers/urls.py b/rowers/urls.py index 30c35b43..7a8a64cb 100644 --- a/rowers/urls.py +++ b/rowers/urls.py @@ -189,6 +189,7 @@ urlpatterns = [ url(r'^graph/(?P\d+)/$',views.graph_show_view), url(r'^graph/(?P\d+)/deleteconfirm$',views.graph_delete_confirm_view), url(r'^graph/(?P\d+)/delete$',views.graph_delete_view), + url(r'^workout/(?P\d+)/get-thumbnails$',views.get_thumbnails), url(r'^workout/upload/team/$',views.team_workout_upload_view), url(r'^workout/upload/$',views.workout_upload_view,name='workout_upload_view'), url(r'^workout/(?P\d+)/histo$',views.workout_histo_view), diff --git a/rowers/views.py b/rowers/views.py index 632206de..cb7fdb91 100644 --- a/rowers/views.py +++ b/rowers/views.py @@ -144,6 +144,13 @@ from rq import Queue,cancel_job from django.core.cache import cache +# Utility to get stroke data in a JSON response +class JSONResponse(HttpResponse): + def __init__(self, data, **kwargs): + content = JSONRenderer().render(data) + kwargs['content_type'] = 'application/json' + super(JSONResponse, self).__init__(content, **kwargs) + def getvalue(data): perc = 0 total = 1 @@ -467,6 +474,47 @@ def get_stored_tasks_status(request): return taskstatus +@login_required() +def get_thumbnails(request,id): + try: + row = Workout.objects.get(id=id) + except Workout.DoesNotExist: + raise Http404("Workout doesn't exist") + if (checkworkoutuser(request.user,row)==False): + raise Http404("You are not allowed to edit this workout") + + r = getrower(request.user) + result = request.user.is_authenticated() and ispromember(request.user) + if result: + promember=1 + if request.user == row.user.user: + mayedit=1 + + comments = WorkoutComment.objects.filter(workout=row) + + aantalcomments = len(comments) + + workouttype = 'ote' + if row.workouttype in ('water','coastal'): + workouttype = 'otw' + + try: + favorites = FavoriteChart.objects.filter(user=r, + workouttype__in=[workouttype,'both']).order_by("id") + maxfav = len(favorites)-1 + except: + favorites = None + maxfav = 0 + + charts = [] + + charts = thumbnails_set(r,id,favorites) + if charts[0]['script'] == '': + charts = [] + + + return JSONResponse(charts) + @login_required() def session_jobs_view(request): taskstatus = get_stored_tasks_status(request) @@ -9540,12 +9588,6 @@ def rower_revokeapp_view(request,id=0): raise Http404("Access token doesn't exist") -# Utility to get stroke data in a JSON response -class JSONResponse(HttpResponse): - def __init__(self, data, **kwargs): - content = JSONRenderer().render(data) - kwargs['content_type'] = 'application/json' - super(JSONResponse, self).__init__(content, **kwargs) # Creates unix time stamp from a datetime object def totimestamp(dt, epoch=datetime.datetime(1970,1,1,tzinfo=tz('UTC'))):