diff --git a/boatmovers/urls.py b/boatmovers/urls.py index b465970c..b993c755 100644 --- a/boatmovers/urls.py +++ b/boatmovers/urls.py @@ -1,5 +1,5 @@ from django.conf import settings -from django.conf.urls import url, include +from django.conf.urls import include from django.urls import path, re_path from django.views.generic.base import TemplateView @@ -7,21 +7,21 @@ from django.views.generic.base import TemplateView import boatmovers.views as views urlpatterns = [ - url(r'athlete/add/$',views.AthleteCreateView.as_view(),name='athlete_add'), - url(r'athlete/(?P\d+)/$',views.athlete_view,name='athlete_view'), - url(r'crew/add/$',views.CrewCreateView.as_view(),name='crew_add'), - url(r'race/add/$',views.RaceCreateView.as_view(),name='race_add'), - url(r'result/add/$',views.ResultCreateView.as_view(),name='result_add'), - url(r'race/(?P\d+)/$',views.race_view,name='race_view'), - url(r'race/(?P\d+)/csv/$',views.race_add_csv,name='race_add_csv'), - url(r'race/(?P\d+)/timeteam/$',views.race_handle_timeteam,name='race_handle_timeteam'), - url(r'race/(?P\d+)/verify/$',views.race_verify,name='race_verify'), - url(r'race/(?P\d+)/process/$',views.race_process,name='race_process'), - url(r'race/(?P\d+)/deleteresults/$',views.race_delete_results, + re_path(r'athlete/add/$',views.AthleteCreateView.as_view(),name='athlete_add'), + re_path(r'athlete/(?P\d+)/$',views.athlete_view,name='athlete_view'), + re_path(r'crew/add/$',views.CrewCreateView.as_view(),name='crew_add'), + re_path(r'race/add/$',views.RaceCreateView.as_view(),name='race_add'), + re_path(r'result/add/$',views.ResultCreateView.as_view(),name='result_add'), + re_path(r'race/(?P\d+)/$',views.race_view,name='race_view'), + re_path(r'race/(?P\d+)/csv/$',views.race_add_csv,name='race_add_csv'), + re_path(r'race/(?P\d+)/timeteam/$',views.race_handle_timeteam,name='race_handle_timeteam'), + re_path(r'race/(?P\d+)/verify/$',views.race_verify,name='race_verify'), + re_path(r'race/(?P\d+)/process/$',views.race_process,name='race_process'), + re_path(r'race/(?P\d+)/deleteresults/$',views.race_delete_results, name='race_delete_results'), - url(r'crew/(?P\d+)/$',views.crew_view,name='crew_view'), - url(r'^$',views.boatmovers_view,name='boatmovers'), - url(r'^compare/$',views.boatmovers_compareview,name='boatmovers_compare'), + re_path(r'crew/(?P\d+)/$',views.crew_view,name='crew_view'), + re_path(r'^$',views.boatmovers_view,name='boatmovers'), + re_path(r'^compare/$',views.boatmovers_compareview,name='boatmovers_compare'), path(r'faq/', TemplateView.as_view(template_name='faq.html'), name='faq'), - #url(r'(?P\b[0-9A-Fa-f]+\b)/$',views.boatmovers_view,name='boatmovers') + #re_path(r'(?P\b[0-9A-Fa-f]+\b)/$',views.boatmovers_view,name='boatmovers') ] diff --git a/rowers/ownapistuff.py b/rowers/ownapistuff.py index cf81c148..75c58d45 100644 --- a/rowers/ownapistuff.py +++ b/rowers/ownapistuff.py @@ -1,7 +1,7 @@ # Interactions with Rowsandall.com API. Not fully complete. # Python -import oauth2 as oauth +#import oauth2 as oauth import cgi import requests import requests.auth diff --git a/rowers/tests/statements.py b/rowers/tests/statements.py index c809c60e..47f64ae6 100644 --- a/rowers/tests/statements.py +++ b/rowers/tests/statements.py @@ -62,7 +62,7 @@ from rowers.utils import NoTokenError from rowers.plannedsessions import get_dates_timeperiod from shutil import copyfile, copy from nose.tools import assert_true -from mock import Mock, patch +from mock import Mock, patch, MagicMock #from minimocktest import MockTestCase import pandas as pd import polars as pl diff --git a/rowers/tests/test_analysis.py b/rowers/tests/test_analysis.py index 4bd98e36..c2bd1f89 100644 --- a/rowers/tests/test_analysis.py +++ b/rowers/tests/test_analysis.py @@ -1103,7 +1103,8 @@ class WorkoutStatsTestNew(TestCase): } request.COOKIES = SimpleCookie({'name': 'bla'}) # adding session - middleware = SessionMiddleware() + get_response = MagicMock() + middleware = SessionMiddleware(get_response) middleware.process_request(request) diff --git a/rowers/tests/testdata/testdata.tcx.gz b/rowers/tests/testdata/testdata.tcx.gz index 8f7a4540..33e50802 100644 Binary files a/rowers/tests/testdata/testdata.tcx.gz and b/rowers/tests/testdata/testdata.tcx.gz differ diff --git a/rowers/urls.py b/rowers/urls.py index cb040753..8b5d8a56 100644 --- a/rowers/urls.py +++ b/rowers/urls.py @@ -240,6 +240,7 @@ urlpatterns = [ re_path(r'^oauth2/', include('provider.oauth2.urls', namespace = 'oauth2')), # re_path(r'^o/authorize/$', base.AuthorizationView.as_view(), name="authorize"), # re_path(r'^o/token/$', base.TokenView.as_view(), name="token"), + path('o/', include('oauth2_provider.urls', namespace='oauth2_provider')), re_path(r'^', include(router.urls)), re_path(r'^api-docs/$', views.schema_view, name='schema_view'), re_path(r'^api-auth/', include('rest_framework.urls', diff --git a/rowers/views/statements.py b/rowers/views/statements.py index 4e9f852b..fd7c2d99 100644 --- a/rowers/views/statements.py +++ b/rowers/views/statements.py @@ -298,7 +298,7 @@ import stravalib from stravalib.exc import ActivityUploadFailed, TimeoutExceeded from rowers.weather import get_wind_data, get_airport_code, get_metar_data -# from oauth2_provider.models import Application, Grant, AccessToken +from oauth2_provider.models import Application, Grant, AccessToken import django_rq queue = django_rq.get_queue('default') diff --git a/rowers/views/workoutviews.py b/rowers/views/workoutviews.py index 8e74ee2f..a408421a 100644 --- a/rowers/views/workoutviews.py +++ b/rowers/views/workoutviews.py @@ -3686,7 +3686,6 @@ def workflow_default_view(request): @login_required() def workout_workflow_config2_view(request, userid=0): request.session['referer'] = absolute(request)['PATH'] - request.session[translation.LANGUAGE_SESSION_KEY] = USER_LANGUAGE try: workoutid = request.session['lastworkout'] except KeyError: @@ -3735,7 +3734,6 @@ def workout_workflow_config2_view(request, userid=0): def workout_workflow_view(request, id): request.session['referer'] = absolute(request)['PATH'] request.session['lastworkout'] = id - request.session[translation.LANGUAGE_SESSION_KEY] = USER_LANGUAGE row = get_workout_by_opaqueid(request, id) r = getrower(request.user) @@ -4324,7 +4322,6 @@ def workout_comment_view(request, id=0): @login_required() @permission_required('workout.change_workout', fn=get_workout_by_opaqueid, raise_exception=True) def workout_edit_view(request, id=0, message="", successmessage=""): - request.session[translation.LANGUAGE_SESSION_KEY] = USER_LANGUAGE request.session['referer'] = absolute(request)['PATH'] row = get_workoutuser(id, request) @@ -4581,7 +4578,6 @@ def workout_edit_view(request, id=0, message="", successmessage=""): @login_required() def workout_map_view(request, id=0): - request.session[translation.LANGUAGE_SESSION_KEY] = USER_LANGUAGE request.session['referer'] = absolute(request)['PATH'] w = get_workout(id) @@ -4811,11 +4807,12 @@ def workout_upload_api(request): json_data = json.loads(request.body) secret = json_data['secret'] post_data = json_data - except (KeyError, JSONDecodeError): + except: q = request.POST post_data = {k: q.getlist(k) if len( q.getlist(k)) > 1 else v for k, v in q.items()} + # only allow local host hostt = request.get_host().split(':') if hostt[0] not in ['localhost', '127.0.0.1', 'dev.rowsandall.com', 'rowsandall.com']: @@ -4834,7 +4831,6 @@ def workout_upload_api(request): message = {'status': 'false', 'message': 'invalid credentials'} return JSONResponse(status=403, data=message) - form = DocumentsForm(post_data) optionsform = TeamUploadOptionsForm(post_data) rowerform = TeamInviteForm(post_data) diff --git a/rowsandall_app/settings.py b/rowsandall_app/settings.py index 40572359..5f792d9b 100644 --- a/rowsandall_app/settings.py +++ b/rowsandall_app/settings.py @@ -71,9 +71,9 @@ INSTALLED_APPS = [ 'rest_framework', 'datetimewidget', 'rest_framework_swagger', - # 'oauth2_provider', - 'provider', - 'provider.oauth2', + 'oauth2_provider', + #'provider', + #'provider.oauth2', 'corsheaders', 'analytical', 'cookielaw',