266 lines
15 KiB
Python
266 lines
15 KiB
Python
from django.conf import settings
|
|
from django.conf.urls import url, include
|
|
from django.contrib.auth.models import User
|
|
|
|
from models import Workout,Rower,StrokeData,FavoriteChart
|
|
|
|
from rest_framework import routers, serializers, viewsets,permissions
|
|
from rest_framework.urlpatterns import format_suffix_patterns
|
|
from rest_framework.permissions import *
|
|
from . import views
|
|
from django.contrib.auth import views as auth_views
|
|
from django.views.generic.base import TemplateView
|
|
from django.conf.urls import (
|
|
handler400, handler403, handler404, handler500,
|
|
)
|
|
|
|
from rowers.permissions import IsOwnerOrNot,IsOwnerOrReadOnly
|
|
from rowers.serializers import (
|
|
WorkoutSerializer,
|
|
RowerSerializer,
|
|
StrokeDataSerializer,
|
|
FavoriteChartSerializer,
|
|
)
|
|
|
|
from oauth2_provider.views import (
|
|
AuthorizedTokensListView,
|
|
AuthorizedTokenDeleteView,
|
|
)
|
|
|
|
from oauth2_provider.views.base import (
|
|
RevokeTokenView
|
|
)
|
|
|
|
class WorkoutViewSet(viewsets.ModelViewSet):
|
|
model = Workout
|
|
#queryset = Workout.objects.all().order_by("-date", "-starttime")
|
|
serializer_class = WorkoutSerializer
|
|
|
|
def get_queryset(self):
|
|
r = Rower.objects.get(user=self.request.user)
|
|
return Workout.objects.filter(user=r).order_by("-date","-starttime")
|
|
|
|
|
|
permission_classes = (
|
|
#DjangoModelPermissions,
|
|
IsOwnerOrNot,
|
|
)
|
|
|
|
class RowerViewSet(viewsets.ModelViewSet):
|
|
model = Rower
|
|
serializer_class = RowerSerializer
|
|
#queryset = Rower.objects.all()
|
|
|
|
def get_queryset(self):
|
|
r = Rower.objects.filter(user=self.request.user)
|
|
return r
|
|
|
|
permission_classes = (
|
|
IsOwnerOrNot,
|
|
)
|
|
|
|
http_method_names = ['get','patch']
|
|
|
|
|
|
class FavoriteChartViewSet(viewsets.ModelViewSet):
|
|
model = FavoriteChart
|
|
serializer_class = FavoriteChartSerializer
|
|
#queryset = FavoriteChart.objects.all()
|
|
|
|
def get_queryset(self):
|
|
r = Rower.objects.filter(user=self.request.user)
|
|
return FavoriteChart.objects.filter(user=r)
|
|
|
|
permission_classes = (
|
|
IsOwnerOrNot,
|
|
)
|
|
|
|
http_method_names = ['get','put','patch','delete']
|
|
|
|
class StrokeDataViewSet(viewsets.ModelViewSet):
|
|
serializer_class = StrokeDataSerializer
|
|
|
|
# Routers provide an easy way of automatically determining the URL conf.
|
|
router = routers.DefaultRouter()
|
|
router.register(r'api/workouts',WorkoutViewSet, 'workout')
|
|
router.register(r'api/me',RowerViewSet, 'rower')
|
|
router.register(r'api/charts',FavoriteChartViewSet, 'charts')
|
|
|
|
|
|
handler500 = 'views.error500_view'
|
|
handler404 = 'views.error404_view'
|
|
handler400 = 'views.error400_view'
|
|
handler403 = 'views.error403_view'
|
|
|
|
urlpatterns = [
|
|
# url(r'^password_change/$',auth_views.password_change),
|
|
# url(r'^password_change_done/$',auth_views.password_change_done),
|
|
url(r'^o/', include('oauth2_provider.urls', namespace='oauth2_provider')),
|
|
url(r'^', include(router.urls)),
|
|
url(r'^api-docs$', views.schema_view),
|
|
url(r'^api-auth/', include('rest_framework.urls', namespace='rest_framework')),
|
|
url(r'^api/workouts/(?P<id>\d+)/strokedata$',views.strokedatajson),
|
|
url(r'^500/$', TemplateView.as_view(template_name='500.html'),name='500'),
|
|
url(r'^404/$', TemplateView.as_view(template_name='404.html'),name='404'),
|
|
url(r'^400/$', TemplateView.as_view(template_name='400.html'),name='400'),
|
|
url(r'^403/$', TemplateView.as_view(template_name='403.html'),name='403'),
|
|
url(r'^imports/s/(?P<successmessage>\w+.*)/$', TemplateView.as_view(template_name='imports.html'), name='imports'),
|
|
url(r'^imports/$', TemplateView.as_view(template_name='imports.html'), name='imports'),
|
|
url(r'^list-workouts/c/(?P<message>\w+.*)/$',views.workouts_view),
|
|
url(r'^list-workouts/s/(?P<successmessage>\w+.*)/$',views.workouts_view),
|
|
url(r'^list-workouts/c/(?P<message>\w+.*)/s/(?P<successmessage>\w+.*)$',views.workouts_view),
|
|
url(r'^list-workouts/(?P<startdatestring>\w+.*)/(?P<enddatestring>\w+.*)$',views.workouts_view),
|
|
url(r'^list-workouts/$',views.workouts_view),
|
|
url(r'^list-graphs/$',views.graphs_view),
|
|
url(r'^(?P<theuser>\d+)/ote-bests/(?P<startdatestring>\w+.*)/(?P<enddatestring>\w+.*)$',views.rankings_view),
|
|
url(r'^(?P<theuser>\d+)/ote-bests/(?P<deltadays>\d+)$',views.rankings_view),
|
|
url(r'^ote-bests/(?P<startdatestring>\w+.*)/(?P<enddatestring>\w+.*)$',views.rankings_view),
|
|
url(r'^ote-bests/(?P<deltadays>\d+)$',views.rankings_view),
|
|
url(r'^ote-bests/$',views.rankings_view),
|
|
url(r'^(?P<theuser>\d+)/ote-bests/$',views.rankings_view),
|
|
|
|
url(r'^flexall/(?P<xparam>\w+.*)/(?P<yparam1>\w+.*)/(?P<yparam2>\w+.*)/(?P<startdatestring>\w+.*)/(?P<enddatestring>\w+.*)$',views.cum_flex),
|
|
url(r'^flexall/(?P<xparam>\w+.*)/(?P<yparam1>\w+.*)/(?P<yparam2>\w+.*)$',views.cum_flex),
|
|
url(r'^flexall/$',views.cum_flex),
|
|
|
|
url(r'^(?P<theuser>\d+)/histo/(?P<startdatestring>\w+.*)/(?P<enddatestring>\w+.*)$',views.histo),
|
|
url(r'^(?P<theuser>\d+)/histo/(?P<deltadays>\d+)$',views.histo),
|
|
url(r'^histo/(?P<startdatestring>\w+.*)/(?P<enddatestring>\w+.*)$',views.histo),
|
|
url(r'^histo/(?P<deltadays>\d+)$',views.histo),
|
|
url(r'^histo/$',views.histo),
|
|
url(r'^(?P<theuser>\d+)/cumstats/(?P<startdatestring>\w+.*)/(?P<enddatestring>\w+.*)$',views.cumstats),
|
|
url(r'^(?P<theuser>\d+)/cumstats/(?P<deltadays>\d+)$',views.cumstats),
|
|
url(r'^cumstats/(?P<startdatestring>\w+.*)/(?P<enddatestring>\w+.*)$',views.cumstats),
|
|
url(r'^cumstats/(?P<deltadays>\d+)$',views.cumstats),
|
|
url(r'^cumstats/$',views.cumstats),
|
|
url(r'^histo-all/$',views.histo_all),
|
|
url(r'^(?P<theuser>\d+)/histo-all/$',views.histo_all),
|
|
url(r'^graph/(\d+)/$',views.graph_show_view),
|
|
url(r'^graph/(\d+)/deleteconfirm$',views.graph_delete_confirm_view),
|
|
url(r'^graph/(\d+)/delete$',views.graph_delete_view),
|
|
url(r'^workout/upload/$',views.workout_upload_view),
|
|
url(r'^workout/upload/(.+.*)$',views.workout_upload_view),
|
|
url(r'^workout/(?P<id>\d+)/histo$',views.workout_histo_view),
|
|
url(r'^workout/(?P<id>\d+)/forcecurve$',views.workout_forcecurve_view),
|
|
url(r'^workout/(?P<id>\d+)/export/c/(?P<message>\w+.*)/s/(?P<successmessage>\w+.*)$',views.workout_export_view),
|
|
url(r'^workout/(?P<id>\d+)/export/c/(?P<message>\w+.*)$',views.workout_export_view),
|
|
url(r'^workout/(?P<id>\d+)/export/s/(?P<successmessage>\w+.*)$',views.workout_export_view),
|
|
url(r'^workout/(?P<id>\d+)/export$',views.workout_export_view),
|
|
url(r'^workout/(\d+)/emailtcx$',views.workout_tcxemail_view),
|
|
url(r'^workout/(\d+)/emailcsv$',views.workout_csvemail_view),
|
|
url(r'^workout/compare/(\d+)/$',views.workout_comparison_list),
|
|
url(r'^workout/compare2/(?P<id1>\d+)/(?P<id2>\d+)/(?P<xparam>\w+.*)/(?P<yparam>\w+.*)/$',views.workout_comparison_view),
|
|
url(r'^workout/compare/(?P<id>\d+)/(?P<startdatestring>\d+-\d+-\d+)/(?P<enddatestring>\w+.*)$',views.workout_comparison_list),
|
|
url(r'^workout/(?P<id>\d+)/export/c/(?P<message>\w+.*)/s/(?P<successmessage>\w+.*)$',views.workout_edit_view),
|
|
url(r'^workout/(?P<id>\d+)/edit/c/(?P<message>.+.*)$',views.workout_edit_view),
|
|
url(r'^workout/(?P<id>\d+)/edit/s/(?P<successmessage>.+.*)$',views.workout_edit_view),
|
|
url(r'^workout/(\d+)/edit$',views.workout_edit_view),
|
|
url(r'^workout/(?P<id>\d+)/advanced/c/(?P<message>.+.*)$',views.workout_advanced_view),
|
|
url(r'^workout/(?P<id>\d+)/advanced/s/(?P<successmessage>.+.*)$',views.workout_advanced_view),
|
|
url(r'^workout/(?P<id>\d+)/geeky$',views.workout_geeky_view),
|
|
url(r'^workout/(\d+)/advanced$',views.workout_advanced_view),
|
|
url(r'^workout/(\d+)/stats$',views.workout_stats_view),
|
|
url(r'^workout/(\d+)/otwsetpower$',views.workout_otwsetpower_view),
|
|
url(r'^workout/(\d+)/interactiveotwplot$',views.workout_otwpowerplot_view),
|
|
url(r'^workout/(\d+)/wind$',views.workout_wind_view),
|
|
url(r'^workout/(?P<id>\d+)/wind/c/(?P<message>\w+.*)$',views.workout_wind_view),
|
|
url(r'^workout/(?P<id>\d+)/wind/s/(?P<successmessage>\w+.*)$',views.workout_wind_view),
|
|
url(r'^workout/(?P<id>\d+)/darkskywind$',views.workout_downloadwind_view),
|
|
url(r'^workout/(\d+)/stream$',views.workout_stream_view),
|
|
url(r'^workout/(?P<id>\d+)/stream/c/(?P<message>\w+.*)$',views.workout_stream_view),
|
|
url(r'^workout/(\d+)/crewnerdsummary$',views.workout_crewnerd_summary_view),
|
|
url(r'^workout/(?P<id>\d+)/editintervals/(?P<successmessage>\w+.*)$',views.workout_summary_edit_view),
|
|
url(r'^workout/(\d+)/editintervals$',views.workout_summary_edit_view),
|
|
url(r'^workout/(\d+)/restore$',views.workout_summary_restore_view),
|
|
url(r'^workout/(\d+)/interactiveplot$',views.workout_biginteractive_view),
|
|
url(r'^workout/(\d+)/view$',views.workout_view),
|
|
url(r'^workout/(\d+)$',views.workout_view),
|
|
url(r'^physics$',TemplateView.as_view(template_name='physics.html'),name='physics'),
|
|
url(r'^workout/(\d+)/$',views.workout_view),
|
|
url(r'^workout/(\d+)/addtimeplot$',views.workout_add_timeplot_view),
|
|
url(r'^workout/(\d+)/addpiechart$',views.workout_add_piechart_view),
|
|
url(r'^workout/(\d+)/addpowerpiechart$',views.workout_add_power_piechart_view),
|
|
url(r'^workout/(\d+)/adddistanceplot$',views.workout_add_distanceplot_view),
|
|
url(r'^workout/(\d+)/adddistanceplot2$',views.workout_add_distanceplot2_view),
|
|
url(r'^workout/(\d+)/addotwpowerplot$',views.workout_add_otw_powerplot_view),
|
|
url(r'^workout/(\d+)/addtimeplot2$',views.workout_add_timeplot2_view),
|
|
url(r'^workout/(\d+)/delete$',views.workout_delete_view),
|
|
url(r'^workout/(\d+)/smoothenpace$',views.workout_smoothenpace_view),
|
|
url(r'^workout/(\d+)/undosmoothenpace$',views.workout_undo_smoothenpace_view),
|
|
url(r'^workout/c2import/c/(?P<message>\w+.*)$',views.workout_c2import_view),
|
|
url(r'^workout/c2import/$',views.workout_c2import_view),
|
|
url(r'^workout/stravaimport/$',views.workout_stravaimport_view),
|
|
url(r'^workout/c2import/(\d+)/$',views.workout_getc2workout_view),
|
|
url(r'^workout/stravaimport/(\d+)/$',views.workout_getstravaworkout_view),
|
|
url(r'^workout/sporttracksimport/$',views.workout_sporttracksimport_view),
|
|
url(r'^workout/sporttracksimport/(\d+)/$',views.workout_getsporttracksworkout_view),
|
|
url(r'^workout/(\d+)/deleteconfirm$',views.workout_delete_confirm_view),
|
|
url(r'^workout/(\d+)/c2uploadw/$',views.workout_c2_upload_view),
|
|
url(r'^workout/(\d+)/stravauploadw/$',views.workout_strava_upload_view),
|
|
url(r'^workout/(\d+)/recalcsummary/$',views.workout_recalcsummary_view),
|
|
url(r'^workout/(\d+)/sporttracksuploadw/$',views.workout_sporttracks_upload_view),
|
|
url(r'^me/teams/c/(?P<message>\w+.*)/s/(?P<successmessage>\w+.*)$',views.rower_teams_view),
|
|
url(r'^me/teams/s/(?P<successmessage>\w+.*)$',views.rower_teams_view),
|
|
url(r'^me/teams/c/(?P<message>\w+.*)$',views.rower_teams_view),
|
|
url(r'^team/(?P<id>\d+)/s/(?P<successmessage>\w+.*)/c/(?P<message>\w+.*)$',views.team_view),
|
|
url(r'^me/teams/$',views.rower_teams_view),
|
|
url(r'^team/(?P<id>\d+)/c/(?P<message>\w+.*)$',views.team_view),
|
|
url(r'^team/(?P<id>\d+)/s/(?P<successmessage>\w+.*)$',views.team_view),
|
|
url(r'^team/(\d+)/$',views.team_view),
|
|
url(r'^team/(\d+)/leaveconfirm/$',views.team_leaveconfirm_view),
|
|
url(r'^team/(\d+)/leave/$',views.team_leave_view),
|
|
url(r'^team/(\d+)/deleteconfirm/$',views.team_deleteconfirm_view),
|
|
url(r'^team/(\d+)/requestmembership/(\d+)$',views.team_requestmembership_view),
|
|
url(r'^team/(\d+)/delete/$',views.team_delete_view),
|
|
url(r'^team/create/$',views.team_create_view),
|
|
url(r'^me/team/(\d+)/drop/(\d+)$',views.manager_member_drop_view),
|
|
url(r'^me/invitation/(\d+)/reject$',views.invitation_reject_view),
|
|
url(r'^me/invitation/c/(?P<message>\w+.*)/$',views.rower_invitations_view),
|
|
url(r'^me/invitation/$',views.rower_invitations_view),
|
|
url(r'^me/invitation/(\w+.*)/$',views.rower_invitations_view),
|
|
url(r'^me/request/c/(?P<message>\w+.*)/$',views.manager_requests_view),
|
|
url(r'^me/request/(\d+)/revoke',views.request_revoke_view),
|
|
url(r'^me/request/(\d+)/reject',views.request_reject_view),
|
|
url(r'^me/request/(\w+.*)/$',views.manager_requests_view),
|
|
url(r'^me/request/$',views.manager_requests_view),
|
|
url(r'^me/edit/c/(?P<message>\w+.*)$',views.rower_edit_view),
|
|
url(r'^me/edit/s/(?P<successmessage>\w+.*)$',views.rower_edit_view),
|
|
url(r'^me/edit/$',views.rower_edit_view),
|
|
url(r'^me/edit/(.+.*)/$',views.rower_edit_view),
|
|
url(r'^me/c2authorize/$',views.rower_c2_authorize),
|
|
url(r'^me/revokeapp/(\d+)$',views.rower_revokeapp_view),
|
|
url(r'^me/stravaauthorize/$',views.rower_strava_authorize),
|
|
url(r'^me/sporttracksauthorize/$',views.rower_sporttracks_authorize),
|
|
url(r'^me/sporttracksrefresh/$',views.rower_sporttracks_token_refresh),
|
|
url(r'^me/c2refresh/$',views.rower_c2_token_refresh),
|
|
url(r'^me/favoritecharts/$',views.rower_favoritecharts_view),
|
|
url(r'^email/send/$', views.sendmail),
|
|
url(r'^email/thankyou/$', TemplateView.as_view(template_name='thankyou.html'), name='thankyou'),
|
|
url(r'^email/$', TemplateView.as_view(template_name='email.html'), name='email'),
|
|
url(r'^about', TemplateView.as_view(template_name='about_us.html'),name='about'),
|
|
url(r'^developers', TemplateView.as_view(template_name='developers.html'),name='about'),
|
|
url(r'^compatibility', TemplateView.as_view(template_name='compatibility.html'),name='about'),
|
|
url(r'^videos', TemplateView.as_view(template_name='videos.html'),name='videos'),
|
|
url(r'^analysis', TemplateView.as_view(template_name='analysis.html'),name='analysis'),
|
|
url(r'^promembership', TemplateView.as_view(template_name='promembership.html'),name='promembership'),
|
|
url(r'^legal', TemplateView.as_view(template_name='legal.html'),name='legal'),
|
|
url(r'^register$',views.rower_register_view),
|
|
url(r'^register/thankyou/$', TemplateView.as_view(template_name='registerthankyou.html'), name='registerthankyou'),
|
|
url(r'^workout/(?P<id>\d+)/flexchart/(?P<xparam>\w+.*)/(?P<yparam1>\w+.*)/(?P<yparam2>\w+.*)/(?P<plottype>\w+)/$',views.workout_flexchart3_view),
|
|
url(r'^workout/(?P<id>\d+)/flexchart/(?P<xparam>\w+.*)/(?P<yparam1>\w+.*)/(?P<yparam2>\w+.*)/(?P<plottype>\w+.*)$',views.workout_flexchart3_view),
|
|
url(r'^workout/(?P<id>\d+)/flexchart/(?P<xparam>\w+.*)/(?P<yparam1>\w+.*)/(?P<yparam2>\w+.*)$',views.workout_flexchart3_view),
|
|
url(r'^workout/(?P<id>\d+)/flexchart$',views.workout_flexchart3_view),
|
|
url(r'^workout/compare/(?P<id1>\d+)/(?P<id2>\d+)/(?P<xparam>\w+.*)/(?P<yparam>\w+.*)/(?P<plottype>\w+.*)$',views.workout_comparison_view2),
|
|
url(r'^workout/compare/(?P<id1>\d+)/(?P<id2>\d+)/(?P<xparam>\w+.*)/(?P<yparam>\w+.*)/$',views.workout_comparison_view2),
|
|
url(r'^test\_callback',views.rower_process_testcallback),
|
|
url(r'^workout/(\d+)/test\_strokedata$',views.strokedataform),
|
|
]
|
|
|
|
if settings.DEBUG:
|
|
urlpatterns += [
|
|
url(r'^testreverse/$',views.test_reverse_view),
|
|
url(r'^c2listug/$',views.c2listdebug_view),
|
|
]
|
|
|
|
#urlpatterns = format_suffix_patterns(urlpatterns)
|