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\d+)/strokedata$',views.strokedatajson), url(r'^testbokeh$',views.testbokeh), 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\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\w+.*)/$',views.workouts_view), url(r'^list-workouts/s/(?P\w+.*)/$',views.workouts_view), url(r'^list-workouts/c/(?P\w+.*)/s/(?P\w+.*)$',views.workouts_view), url(r'^list-workouts/(?P\w+.*)/(?P\w+.*)$',views.workouts_view), url(r'^list-workouts/$',views.workouts_view), url(r'^list-graphs/$',views.graphs_view), url(r'^dashboard/c/(?P\w+.*)/$',views.dashboard_view), url(r'^dashboard/s/(?P\w+.*)/$',views.dashboard_view), url(r'^dashboard/c/(?P\w+.*)/s/(?P\w+.*)$',views.dashboard_view), url(r'^dashboard/$',views.dashboard_view), url(r'^(?P\d+)/ote-bests/(?P\w+.*)/(?P\w+.*)$',views.rankings_view), url(r'^(?P\d+)/ote-bests/(?P\d+)$',views.rankings_view), url(r'^ote-bests/(?P\w+.*)/(?P\w+.*)$',views.rankings_view), url(r'^ote-bests/(?P\d+)$',views.rankings_view), url(r'^ote-bests/$',views.rankings_view), url(r'^(?P\d+)/ote-bests/$',views.rankings_view), url(r'^flexall/(?P\w+.*)/(?P\w+.*)/(?P\w+.*)/(?P\w+.*)/(?P\w+.*)$',views.cum_flex), url(r'^flexall/(?P\w+.*)/(?P\w+.*)/(?P\w+.*)$',views.cum_flex), url(r'^flexall/$',views.cum_flex), url(r'^(?P\d+)/histo/(?P\w+.*)/(?P\w+.*)$',views.histo), url(r'^(?P\d+)/histo/(?P\d+)$',views.histo), url(r'^histo/(?P\w+.*)/(?P\w+.*)$',views.histo), url(r'^histo/(?P\d+)$',views.histo), url(r'^histo/$',views.histo), url(r'^histo-all/$',views.histo_all), url(r'^(?P\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\d+)/histo$',views.workout_histo_view), url(r'^workout/(?P\d+)/forcecurve$',views.workout_forcecurve_view), url(r'^workout/(?P\d+)/export/c/(?P\w+.*)/s/(?P\w+.*)$',views.workout_export_view), url(r'^workout/(?P\d+)/export/c/(?P\w+.*)$',views.workout_export_view), url(r'^workout/(?P\d+)/export/s/(?P\w+.*)$',views.workout_export_view), url(r'^workout/(?P\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\d+)/(?P\d+)/(?P\w+.*)/(?P\w+.*)/$',views.workout_comparison_view), url(r'^workout/compare/(?P\d+)/(?P\d+-\d+-\d+)/(?P\w+.*)$',views.workout_comparison_list), url(r'^workout/(?P\d+)/export/c/(?P\w+.*)/s/(?P\w+.*)$',views.workout_edit_view), url(r'^workout/(?P\d+)/edit/c/(?P.+.*)$',views.workout_edit_view), url(r'^workout/(?P\d+)/edit/s/(?P.+.*)$',views.workout_edit_view), url(r'^workout/(\d+)/edit$',views.workout_edit_view), url(r'^workout/(?P\d+)/advanced/c/(?P.+.*)$',views.workout_advanced_view), url(r'^workout/(?P\d+)/advanced/s/(?P.+.*)$',views.workout_advanced_view), url(r'^workout/(?P\d+)/geeky$',views.workout_geeky_view), url(r'^workout/(\d+)/advanced$',views.workout_advanced_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\d+)/wind/c/(?P\w+.*)$',views.workout_wind_view), url(r'^workout/(?P\d+)/wind/s/(?P\w+.*)$',views.workout_wind_view), url(r'^workout/(?P\d+)/darkskywind$',views.workout_downloadwind_view), url(r'^workout/(\d+)/stream$',views.workout_stream_view), url(r'^workout/(?P\d+)/stream/c/(?P\w+.*)$',views.workout_stream_view), url(r'^workout/(\d+)/crewnerdsummary$',views.workout_crewnerd_summary_view), url(r'^workout/(?P\d+)/editintervals/(?P\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\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+)/c2upload/$',views.list_c2_upload_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/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\d+)/flexchart/(?P\w+.*)/(?P\w+.*)/(?P\w+.*)/(?P\w+)/$',views.workout_flexchart3_view), url(r'^workout/(?P\d+)/flexchart/(?P\w+.*)/(?P\w+.*)/(?P\w+.*)/(?P\w+.*)$',views.workout_flexchart3_view), url(r'^workout/(?P\d+)/flexchart/(?P\w+.*)/(?P\w+.*)/(?P\w+.*)$',views.workout_flexchart3_view), url(r'^workout/(?P\d+)/flexchart$',views.workout_flexchart3_view), url(r'^workout/compare/(?P\d+)/(?P\d+)/(?P\w+.*)/(?P\w+.*)/(?P\w+.*)$',views.workout_comparison_view2), url(r'^workout/compare/(?P\d+)/(?P\d+)/(?P\w+.*)/(?P\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'^workout/uploadd/$',views.workout_upload_view_debug), url(r'^testreverse/$',views.test_reverse_view), url(r'^c2listug/$',views.c2listdebug_view), ] #urlpatterns = format_suffix_patterns(urlpatterns)