from django.conf import settings from django.conf.urls import url, include from django.contrib.auth.models import User from django.contrib.auth.decorators import login_required, permission_required 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): try: r = Rower.objects.get(user=self.request.user) return Workout.objects.filter(user=r).order_by("-date","-starttime") except TypeError: return [] permission_classes = ( #DjangoModelPermissions, IsOwnerOrNot, ) class RowerViewSet(viewsets.ModelViewSet): model = Rower serializer_class = RowerSerializer #queryset = Rower.objects.all() def get_queryset(self): try: r = Rower.objects.filter(user=self.request.user) return r except TypeError: return [] 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): try: r = Rower.objects.filter(user=self.request.user) return FavoriteChart.objects.filter(user=r) except TypeError: return [] 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' from oauth2_provider.views import base urlpatterns = [ url(r'^o/authorize/$', base.AuthorizationView.as_view(), name="authorize"), url(r'^o/token/$', base.TokenView.as_view(), name="token"), 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'^500v/$',views.error500_view), url(r'^502/$', TemplateView.as_view(template_name='502.html'),name='502'), 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/$', views.imports_view), url(r'^exportallworkouts/?$',views.workouts_summaries_email_view), url(r'^update_empower$',views.rower_update_empower_view), url(r'^agegroupcp/(?P\d+)$',views.agegroupcpview), url(r'^agegroupcp/(?P\d+)/(?P\d+)$',views.agegroupcpview), url(r'^ajax_agegroup/(?P\d+)/(?P\w+.*)/(?P\w+.*)/(?P\d+)$', views.ajax_agegrouprecords), url(r'^updatefitness/(?P\w+.*)/(?P\d+)$',views.fitness_metric_view), url(r'^updatefitness/(?P\w+.*)$',views.fitness_metric_view), url(r'^updatefitness$',views.fitness_metric_view), url(r'^agegrouprecords/(?P\w+.*)/(?P\w+.*)/(?P\d+)m$', views.agegrouprecordview), url(r'^agegrouprecords/(?P\w+.*)/(?P\w+.*)/(?P\d+)min$', views.agegrouprecordview), url(r'^agegrouprecords/(?P\w+.*)/(?P\w+.*)$', views.agegrouprecordview), url(r'^list-workouts/ranking$',views.workouts_view,{'rankingonly':True}), url(r'^list-workouts/team/(?P\d+)/(?P\d+-\d+-\d+)/(?P\d+-\d+-\d+)$',views.workouts_view), url(r'^list-workouts/team/(?P\d+)/$',views.workouts_view), url(r'^(?P\d+)/list-workouts/$',views.workouts_view), url(r'^(?P\d+)/list-workouts/(?P\d+-\d+-\d+)/(?P\d+-\d+-\d+)$',views.workouts_view), url(r'^list-workouts/user/(?P\d+)/$',views.workouts_view), url(r'^list-workouts/(?P\d+-\d+-\d+)/(?P\d+-\d+-\d+)/user/(?P\d+)/$',views.workouts_view), url(r'^list-workouts/(?P\d+-\d+-\d+)/(?P\d+-\d+-\d+)$',views.workouts_view), url(r'^virtualevents$',views.virtualevents_view), url(r'^virtualevent/create$',views.virtualevent_create_view), url(r'^virtualevent/createindoor$',views.indoorvirtualevent_create_view), url(r'^virtualevent/(?P\d+)$',views.virtualevent_view), url(r'^virtualevent/(?P\d+)/edit$',views.virtualevent_edit_view), url(r'^virtualevent/(?P\d+)/editindoor$',views.indoorvirtualevent_edit_view), url(r'^virtualevent/(?P\d+)/register$',views.virtualevent_register_view), url(r'^virtualevent/(?P\d+)/registerindoor$',views.indoorvirtualevent_register_view), url(r'^virtualevent/(?P\d+)/adddiscipline$',views.virtualevent_addboat_view), url(r'^virtualevent/(?P\d+)/withdraw/(?P\d+)$',views.virtualevent_withdraw_view), url(r'^virtualevent/(?P\d+)/withdraw$',views.virtualevent_withdraw_view), url(r'^virtualevent/(?P\d+)/submit$', views.virtualevent_submit_result_view), url(r'^list-workouts/$',views.workouts_view), url(r'^list-courses/$',views.courses_view), url(r'^courses/upload$',views.course_upload_view), url(r'^workout/addmanual/$',views.addmanual_view), url(r'^team-compare-select/workout/(?P\d+)/team/(?P\d+)/user/(?P\d+)/$',views.team_comparison_select), url(r'^team-compare-select/team/(?P\d+)/(?P\d+-\d+-\d+)/(?P\d+-\d+-\d+)/user/(?P\d+)/$',views.team_comparison_select), url(r'^team-compare-select/team/(?P\d+)/(?P\d+-\d+-\d+)/(?P\d+-\d+-\d+)$',views.team_comparison_select), url(r'^team-compare-select/workout/(?P\d+)/team/(?P\d+)/$',views.team_comparison_select), url(r'^team-compare-select/team/(?P\d+)/(?P\d+-\d+-\d+)/(?P\d+-\d+-\d+)$',views.team_comparison_select), url(r'^team-compare-select/team/(?P\d+)/(?P\d+-\d+-\d+)/(?P\d+-\d+-\d+)/user/(?P\d+)/$',views.team_comparison_select), url(r'^team-compare-select/workout/(?P\d+)/team/(?P\d+)/$',views.team_comparison_select), url(r'^team-compare-select/workout/(?P\d+)/team/(?P\d+)/user/(?P\d+)/$',views.team_comparison_select), url(r'^team-compare-select/workout/(?P\d+)/(?P\d+-\d+-\d+)/(?P\d+-\d+-\d+)$',views.team_comparison_select), url(r'^team-compare-select/workout/(?P\d+)/(?P\d+-\d+-\d+)/(?P\d+-\d+-\d+)/user/(?P\d+)/$',views.team_comparison_select), url(r'^team-compare-select/(?P\d+-\d+-\d+)/(?P\d+-\d+-\d+)/user/(?P\d+)/$',views.team_comparison_select), url(r'^team-compare-select/(?P\d+-\d+-\d+)/(?P\d+-\d+-\d+)$',views.team_comparison_select), url(r'^team-compare-select/workout/(?P\d+)/user/(?P\d+)/$',views.team_comparison_select), url(r'^team-compare-select/team/(?P\d+)/user/(?P\d+)/$',views.team_comparison_select), url(r'^team-compare-select/workout/(?P\d+)/$',views.team_comparison_select), url(r'^team-compare-select/team/(?P\d+)/$',views.team_comparison_select), url(r'^team-compare-select/user/(?P\d+)/$',views.team_comparison_select), url(r'^team-compare-select/$',views.team_comparison_select), url(r'^workouts-join-select/team/(?P\d+)/(?P\d+-\d+-\d+)/(?P\d+-\d+-\d+)$',views.workouts_join_select), url(r'^workouts-join$',views.workouts_join_view), url(r'^workouts-join-select/team/(?P\d+)/$',views.workouts_join_select), url(r'^workouts-join-select/(?P\d+-\d+-\d+)/(?P\d+-\d+-\d+)$',views.workouts_join_select), url(r'^workouts-join-select/$',views.workouts_join_select), url(r'^user-boxplot-select/user/(?P\d+)/$',views.user_boxplot_select), url(r'^user-boxplot-select/$',views.user_boxplot_select), url(r'^user-multiflex-select/user/(?P\d+)/(?P\d+-\d+-\d+)/(?P\d+-\d+-\d+)$',views.user_multiflex_select), url(r'^user-multiflex-select/user/(?P\d+)/$',views.user_multiflex_select), url(r'^user-multiflex-select/(?P\d+-\d+-\d+)/(?P\d+-\d+-\d+)$',views.user_multiflex_select), url(r'^user-multiflex-select/$',views.user_multiflex_select), url(r'^list-jobs/$',views.session_jobs_view), url(r'^jobs-status/$',views.session_jobs_status), url(r'^job-kill/(?P.*)$',views.kill_async_job), url(r'^test-job/(?P\d+)$',views.test_job_view), url(r'^test-job2/(?P\d+)$',views.test_job_view2), url(r'^record-progress/(?P\d+)/(?P.*)$',views.post_progress), url(r'^record-progress/(?P.*)$',views.post_progress), url(r'^record-progress$',views.post_progress), url(r'^list-graphs/$',views.graphs_view), url(r'^fitness-progress/$',views.fitnessmetric_view), url(r'^fitness-progress/user/(?P\d+)$',views.fitnessmetric_view), url(r'^fitness-progress/user/(?P\d+)/(?P\w+.*)$',views.fitnessmetric_view), url(r'^ote-bests/user/(?P\d+)/(?P\d+-\d+-\d+)/(?P\d+-\d+-\d+)$',views.rankings_view), url(r'^ote-bests/user/(?P\d+)$',views.rankings_view), url(r'^ote-bests/(?P\d+-\d+-\d+)/(?P\d+-\d+-\d+)$',views.rankings_view), url(r'^ote-bests/$',views.rankings_view), url(r'^(?P\d+)/ote-bests/$',views.rankings_view), url(r'^(?P\d+)/ote-bests2/(?P\d+-\d+-\d+)/(?P\d+-\d+-\d+)$',views.rankings_view2), url(r'^ote-bests2/user/(?P\d+)$',views.rankings_view2), url(r'^ote-bests2/(?P\d+-\d+-\d+)/(?P\d+-\d+-\d+)$',views.rankings_view2), url(r'^ote-bests2/$',views.rankings_view2), url(r'^otw-bests/user/(?P\d+)/(?P\d+-\d+-\d+)/(?P\d+-\d+-\d+)$',views.otwrankings_view), url(r'^otw-bests/(?P\d+-\d+-\d+)/(?P\d+-\d+-\d+)$',views.otwrankings_view), url(r'^otw-bests/user/(?P\d+)/$',views.otwrankings_view), url(r'^otw-bests/$',views.otwrankings_view), url(r'^ote-ranking/user/(?P\d+)/(?P\d+-\d+-\d+)/(?P\d+-\d+-\d+)$',views.oterankings_view), url(r'^ote-ranking/(?P\d+-\d+-\d+)/(?P\d+-\d+-\d+)$',views.oterankings_view), url(r'^ote-ranking/$',views.oterankings_view), url(r'^ote-ranking/user/(?P\d+)/$',views.oterankings_view), url(r'^flexall/(?P\w+.*)/(?P\w+.*)/(?P\w+.*)/(?P\d+-\d+-\d+)/(?P\d+-\d+-\d+)/user/(?P\d+)$',views.cum_flex), url(r'^flexall/(?P\w+.*)/(?P\w+.*)/(?P\w+.*)/(?P\d+-\d+-\d+)/(?P\d+-\d+-\d+)/$',views.cum_flex), url(r'^flexall/(?P\w+.*)/(?P\w+.*)/(?P\w+.*)/$',views.cum_flex), url(r'^flexall/user/(?P\d+)/$',views.cum_flex), url(r'^flexall/$',views.cum_flex), url(r'^flexalldata/$',views.cum_flex_data), url(r'^histo/user/(?P\d+)$',views.histo), url(r'^histodata$',views.histo_data), url(r'^histo/user/(?P\d+)/(?P\d+-\d+-\d+)/(?P\d+-\d+-\d+)$',views.histo), url(r'^histo/$',views.histo), url(r'^cumstats/user/(?P\d+)$',views.cumstats), url(r'^cumstats/(?P\d+-\d+-\d+)/(?P\d+-\d+-\d+)$',views.cumstats), url(r'^cumstats/user/(?P\d+)/(?P\d+-\d+-\d+)/(?P\d+-\d+-\d+)$',views.cumstats), url(r'^cumstats/(?P\d+-\d+-\d+)/(?P\d+-\d+-\d+)$',views.cumstats), url(r'^cumstats/$',views.cumstats), url(r'^graph/(?P\d+)/$',views.graph_show_view), url(r'^graph/(?P\d+)/delete$',views.GraphDelete.as_view(),name='graph_delete'), url(r'^workout/(?P\d+)/get-thumbnails$',views.get_thumbnails), url(r'^workout/(?P\d+)/toggle-ranking$',views.workout_toggle_ranking), url(r'^workout/(?P\d+)/get-testscript$',views.get_testscript), 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), url(r'^workout/(?P\d+)/task$',views.workout_test_task_view), url(r'^workout/(?P\d+)/forcecurve$',views.workout_forcecurve_view), url(r'^workout/(?P\d+)/unsubscribe$',views.workout_unsubscribe_view), # url(r'^workout/(?P\d+)/export$',views.workout_export_view), url(r'^workout/(?P\d+)/comment$',views.workout_comment_view), url(r'^workout/(?P\d+)/emailtcx$',views.workout_tcxemail_view), url(r'^workout/(?P\d+)/emailgpx$',views.workout_gpxemail_view), url(r'^workout/(?P\d+)/emailcsv$',views.workout_csvemail_view), url(r'^workout/(?P\d+)/csvtoadmin$',views.workout_csvtoadmin_view), url(r'^ergcpdatatoadmin/(?P\d+)/(?P\d+-\d+-\d+)/(?P\d+-\d+-\d+)$',views.otecp_toadmin_view), url(r'^otwcpdatatoadmin/(?P\d+)/(?P\d+-\d+-\d+)/(?P\d+-\d+-\d+)$',views.otwcp_toadmin_view), # url(r'^workout/compare/(?P\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\d+-\d+-\d+)$',views.workout_comparison_list), url(r'^workout/(?P\d+)/edit$',views.workout_edit_view, name='workout_edit_view'), url(r'^workout/(?P\d+)/map$',views.workout_map_view), # url(r'^workout/(?P\d+)/setprivate$',views.workout_setprivate_view), url(r'^workout/(?P\d+)/updatecp$',views.workout_update_cp_view), # url(r'^workout/(?P\d+)/makepublic$',views.workout_makepublic_view), # url(r'^workout/(?P\d+)/geeky$',views.workout_geeky_view), # url(r'^workout/(?P\d+)/advanced$',views.workout_advanced_view), url(r'^workout/(?P\d+)/instroke/(?P\w+.*)$',views.instroke_chart), url(r'^workout/(?P\d+)/instroke$',views.instroke_view), url(r'^workout/(?P\d+)/stats$',views.workout_stats_view,name='workout_stats_view'), url(r'^workout/(?P\d+)/data$',views.workout_data_view, name='workout_data_view'), url(r'^workout/(?P\d+)/otwsetpower$',views.workout_otwsetpower_view), url(r'^workout/(?P\d+)/interactiveotwplot$',views.workout_otwpowerplot_view), url(r'^workout/(?P\d+)/wind$',views.workout_wind_view), url(r'^workout/(?P\d+)/image$',views.workout_uploadimage_view), url(r'^workout/(?P\d+)/darkskywind$',views.workout_downloadwind_view), url(r'^workout/(?P\d+)/metar/(?P\w+)$',views.workout_downloadmetar_view), url(r'^workout/(?P\d+)/stream$',views.workout_stream_view), # url(r'^workout/(?P\d+)/crewnerdsummary$',views.workout_crewnerd_summary_view), url(r'^workout/(?P\d+)/editintervals$',views.workout_summary_edit_view, name='workout_summary_edit_view'), url(r'^workout/(?P\d+)/restore$',views.workout_summary_restore_view), url(r'^workout/(?P\d+)/split$',views.workout_split_view), # url(r'^workout/(?P\d+)/interactiveplot$',views.workout_biginteractive_view), url(r'^workout/(?P\d+)/view$',views.workout_view), url(r'^workout/(?P\d+)/$',views.workout_view), url(r'^workout/fusion/(?P\d+)/(?P\d+)$',views.workout_fusion_view), url(r'^workout/fusion/(?P\d+)/$',views.workout_fusion_list), url(r'^workout/fusion/(?P\d+)/(?P\d+-\d+-\d+)/(?P\d+-\d+-\d+)$',views.workout_fusion_list), url(r'^help$',TemplateView.as_view( template_name='help.html'),name='help' ), url(r'^physics$',TemplateView.as_view(template_name='physics.html'),name='physics'), url(r'^partners$',TemplateView.as_view(template_name='partners.html'),name='partners'), # keeping the old URLs for retrofit url(r'^workout/(?P\d+)/addtimeplot$', views.workout_add_chart_view, {'plotnr':'1'}), url(r'^workout/(?P\d+)/adddistanceplot$', views.workout_add_chart_view, {'plotnr':'2'}), url(r'^workout/(?P\d+)/addpiechart$', views.workout_add_chart_view, {'plotnr':'3'}), url(r'^workout/(?P\d+)/adddistanceplot2$', views.workout_add_chart_view, {'plotnr':'7'}), url(r'^workout/(?P\d+)/addtimeplot2$', views.workout_add_chart_view, {'plotnr':'8'}), url(r'^workout/(?P\d+)/addotwpowerplot$', views.workout_add_chart_view, {'plotnr':'9'}), url(r'^workout/(?P\d+)/addpowerpiechart$', views.workout_add_chart_view, {'plotnr':'13'}), # addstatic is the new URL -> need to update in templates url(r'^workout/(?P\d+)/addstatic/(?P\d+)$', views.workout_add_chart_view), url(r'^workout/(?P\d+)/addstatic$',views.workout_add_chart_view), url(r'^workout/(?P\d+)/delete$',login_required( views.WorkoutDelete.as_view()), name='workout_delete'), url(r'^workout/(?P\d+)/smoothenpace$',views.workout_smoothenpace_view), url(r'^workout/(?P\d+)/undosmoothenpace$',views.workout_undo_smoothenpace_view), url(r'^workout/c2import/$',views.workout_c2import_view), url(r'^workout/c2list/$',views.workout_c2import_view), url(r'^workout/c2list/(?P\d+)$',views.workout_c2import_view), url(r'^workout/c2list/user/(?P\d+)$',views.workout_c2import_view), url(r'^workout/c2list/(?P\d+)/user/(?P\d+)$',views.workout_c2import_view), url(r'^workout/stravaimport/$',views.workout_stravaimport_view), url(r'^workout/stravaimport/user/(?P\d+)$',views.workout_stravaimport_view), url(r'^workout/c2import/all/$',views.workout_getc2workout_all), url(r'^workout/c2import/all/(?P\d+)$',views.workout_getc2workout_all), url(r'^workout/(?P\w+.*)import/(?P\d+)/$',views.workout_getimportview), url(r'^workout/stravaimport/all/$',views.workout_getstravaworkout_all), url(r'^workout/stravaimport/next/$',views.workout_getstravaworkout_next), url(r'^workout/sporttracksimport/$',views.workout_sporttracksimport_view), url(r'^workout/sporttracksimport/user/(?P\d+)$',views.workout_sporttracksimport_view), url(r'^workout/sporttracksimport/all/$',views.workout_getsporttracksworkout_all), url(r'^workout/polarimport/$',views.workout_polarimport_view), url(r'^workout/polarimport/user/(?P\d+)/',views.workout_polarimport_view), url(r'^workout/runkeeperimport/$',views.workout_runkeeperimport_view), url(r'^workout/runkeeperimport/user/(?P\d+)$',views.workout_runkeeperimport_view), url(r'^workout/underarmourimport/$',views.workout_underarmourimport_view), # url(r'^workout/(?P\d+)/deleteconfirm$',views.workout_delete_confirm_view), url(r'^workout/(?P\d+)/c2uploadw/$',views.workout_c2_upload_view), url(r'^workout/(?P\d+)/stravauploadw/$',views.workout_strava_upload_view), url(r'^workout/(?P\d+)/recalcsummary/$',views.workout_recalcsummary_view), url(r'^workout/(?P\d+)/sporttracksuploadw/$',views.workout_sporttracks_upload_view), url(r'^workout/(?P\d+)/runkeeperuploadw/$',views.workout_runkeeper_upload_view), url(r'^workout/(?P\d+)/underarmouruploadw/$',views.workout_underarmour_upload_view), url(r'^workout/(?P\d+)/tpuploadw/$',views.workout_tp_upload_view), url(r'^multi-compare/workout/(?P\d+)/user/(?P\d+)/$',views.multi_compare_view), url(r'^multi-compare/workout/(?P\d+)/$',views.multi_compare_view), url(r'^multi-compare/$',views.multi_compare_view), url(r'^user-boxplot/user/(?P\d+)$',views.boxplot_view), url(r'^user-boxplot$',views.boxplot_view), url(r'^user-boxplot-data$',views.boxplot_view_data), url(r'^user-multiflex/user/(?P\d+)$',views.multiflex_view), url(r'^user-multiflex/$',views.multiflex_view), url(r'^user-multiflex-data$',views.multiflex_data), url(r'^me/deactivate$',views.deactivate_user), url(r'^me/delete$',views.remove_user), url(r'^me/gdpr-optin-confirm/?$',views.user_gdpr_confirm), url(r'^me/gdpr-optin-confirm/$',views.user_gdpr_confirm), url(r'^me/gdpr-optin/?$',views.user_gdpr_optin), url(r'^me/gdpr-optin/$',views.user_gdpr_optin), url(r'^me/teams/$',views.rower_teams_view), url(r'^me/calcdps/$',views.rower_calcdps_view), url(r'^me/exportsettings/$',views.rower_exportsettings_view), url(r'^me/exportsettings/user/(?P\d+)$',views.rower_exportsettings_view), url(r'^team/(?P\d+)/$',views.team_view), url(r'^team/(?P\d+)/memberstats/$',views.team_members_stats_view), url(r'^team/(?P\d+)/edit/$',views.team_edit_view), url(r'^team/(?P\d+)/leaveconfirm/$',views.team_leaveconfirm_view), url(r'^team/(?P\d+)/leave/$',views.team_leave_view), url(r'^team/(?P\d+)/deleteconfirm/$',views.team_deleteconfirm_view), url(r'^team/(?P\d+)/requestmembership/(?P\d+)$',views.team_requestmembership_view), url(r'^team/(?P\d+)/delete/$',views.team_delete_view), url(r'^team/create/$',views.team_create_view), url(r'^me/team/(?P\d+)/drop/(?P\d+)$',views.manager_member_drop_view), url(r'^me/invitation/(?P\d+)/reject$',views.invitation_reject_view), url(r'^me/invitation/(?P\d+)/revoke$',views.invitation_revoke_view), url(r'^me/invitation/$',views.rower_invitations_view), url(r'^me/raise500/$',views.raise_500), url(r'^me/invitation/(\w+.*)/$',views.rower_invitations_view), url(r'^me/request/(?P\d+)/revoke',views.request_revoke_view), url(r'^me/request/(?P\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/$',views.rower_edit_view), url(r'^me/edit/user/(?P\d+)$',views.rower_edit_view), url(r'^me/preferences/$',views.rower_prefs_view), url(r'^me/preferences/user/(?P\d+)$',views.rower_prefs_view), url(r'^me/edit/(.+.*)/$',views.rower_edit_view), url(r'^me/c2authorize/$',views.rower_c2_authorize), url(r'^me/polarauthorize/$',views.rower_polar_authorize), url(r'^me/revokeapp/(?P\d+)$',views.rower_revokeapp_view), url(r'^me/stravaauthorize/$',views.rower_strava_authorize), url(r'^me/sporttracksauthorize/$',views.rower_sporttracks_authorize), url(r'^me/underarmourauthorize/$',views.rower_underarmour_authorize), url(r'^me/tpauthorize/$',views.rower_tp_authorize), url(r'^me/runkeeperauthorize/$',views.rower_runkeeper_authorize), url(r'^me/sporttracksrefresh/$',views.rower_sporttracks_token_refresh), url(r'^me/underarmourrefresh/$',views.rower_underarmour_token_refresh), url(r'^me/tprefresh/$',views.rower_tp_token_refresh), url(r'^me/c2refresh/$',views.rower_c2_token_refresh), url(r'^me/favoritecharts/$',views.rower_favoritecharts_view), url(r'^me/favoritecharts/user/(?P\d+)$',views.rower_favoritecharts_view), # url(r'^me/workflowconfig$',views.workout_workflow_config_view), url(r'^me/workflowconfig2/$',views.workout_workflow_config2_view), url(r'^me/workflowconfig2/user/(?P\d+)$',views.workout_workflow_config2_view), url(r'^me/workflowdefault$',views.workflow_default_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'^brochure$',TemplateView.as_view(template_name='brochure.html'), name='brochure'), 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/user/(?P\d+)$', views.analysis_view,name='analysis'), url(r'^laboratory/user/(?P\d+)$', views.laboratory_view,name='laboratory'), url(r'^analysis/$', views.analysis_view,name='analysis'), url(r'^laboratory/$', views.laboratory_view,name='laboratory'), url(r'^promembership', TemplateView.as_view(template_name='promembership.html'),name='promembership'), url(r'^planrequired',views.planrequired_view), url(r'^starttrial$',views.start_trial_view), url(r'^startplantrial$',views.start_plantrial_view), # url(r'^planmembership', TemplateView.as_view(template_name='planmembership.html'),name='planmembership'), # url(r'^paypaltest', TemplateView.as_view(template_name='paypaltest.html'),name='paypaltest'), 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+)/workflow$',views.workout_workflow_view, name='workout_workflow_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\ ]+.*)/(?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'^createplan/$',views.rower_create_trainingplan), url(r'^createplan/user/(?P\d+)/$',views.rower_create_trainingplan), url(r'^deleteplan/(?P\d+)$',login_required( views.TrainingPlanDelete.as_view())), url(r'^deletemicrocycle/(?P\d+)/$',login_required( views.MicroCycleDelete.as_view())), url(r'^deletemesocycle/(?P\d+)/$',login_required( views.MesoCycleDelete.as_view())), url(r'^deletemacrocycle/(?P\d+)/$',login_required( views.MacroCycleDelete.as_view())), # url(r'^deleteplan/(?P\d+)$',views.rower_delete_trainingplan), url(r'^plan/(?P\d+)/$',views.rower_trainingplan_view), url(r'^plan/(?P\d+)/user/(?P\d+)/$',views.rower_trainingplan_view), url(r'^plan/(?P\d+)/micro/(?P\d+)/$',views.rower_trainingplan_view), url(r'^plan/(?P\d+)/micro/(?P\d+)/user/(?P\d+)/$',views.rower_trainingplan_view), url(r'^plan/(?P\d+)/meso/(?P\d+)/$',views.rower_trainingplan_view), url(r'^plan/(?P\d+)/meso/(?P\d+)/user/(?P\d+)/$',views.rower_trainingplan_view), url(r'^plan/(?P\d+)/macro/(?P\d+)/$',views.rower_trainingplan_view), url(r'^plan/(?P\d+)/macro/(?P\d+)/user/(?P\d+)/$',views.rower_trainingplan_view), url(r'^macrocycle/(?P\d+)/$',login_required( views.TrainingMacroCycleUpdate.as_view()), name='macrocycle_update_view'), url(r'^mesocycle/(?P\d+)/$',login_required( views.TrainingMesoCycleUpdate.as_view()), name='mesocycle_update_view'), url(r'^macrocycle/(?P\d+)/planbymonths/$',login_required( views.planmacrocyclebymonth)), url(r'^macrocycle/(?P\d+)/planbymonths/user/(?P\d+)/$',views.planmacrocyclebymonth), url(r'^mesocycle/(?P\d+)/planbyweeks/$',views.planmesocyclebyweek), url(r'^mesocycle/(?P\d+)/planbyweeks/user/(?P\d+)/$',views.planmesocyclebyweek), url(r'^microcycle/(?P\d+)/$',login_required( views.TrainingMicroCycleUpdate.as_view()), name='microcycle_update_view'), url(r'^deletetarget/(?P\d+)/$',views.rower_delete_trainingtarget), url(r'^editplan/(?P\d+)$',login_required( views.TrainingPlanUpdate.as_view()), name='trainingplan_update_view'), url(r'^edittarget/(?P\d+)/$',login_required( views.TrainingTargetUpdate.as_view()), name='trainingtarget_update_view'), url(r'^workout/(?P\d+)/test\_strokedata$',views.strokedataform), url(r'^sessions/teamcreate/user/(?P\d+)/$',views.plannedsession_teamcreate_view), url(r'^sessions/teamcreate/team/(?P\d+)/user/(?P\d+)/$', views.plannedsession_teamcreate_view), url(r'^sessions/teamcreate/$',views.plannedsession_teamcreate_view), url(r'^sessions/teamcreate/team/$', views.plannedsession_teamcreate_view), url(r'^sessions/teamedit/(?P\d+)/$',views.plannedsession_teamedit_view), url(r'^sessions/teamedit/(?P\d+)/user/(?P\d+)/$',views.plannedsession_teamedit_view), url(r'^sessions/create/$',views.plannedsession_create_view), url(r'^sessions/create/user/(?P\d+)$', views.plannedsession_create_view), url(r'^sessions/create/(?P\d+-\d+-\d+)/(?P\d+-\d+-\d+)/$', views.plannedsession_create_view), url(r'^sessions/create/(?P\d+-\d+-\d+)/(?P\d+-\d+-\d+)/user/(?P\d+)$', views.plannedsession_create_view), url(r'^sessions/multiclone/$',views.plannedsession_multiclone_view), url(r'^sessions/multiclone/user/(?P\d+)/$', views.plannedsession_multiclone_view), url(r'^sessions/multicreate/$',views.plannedsession_multicreate_view), url(r'^sessions/multicreate/user/(?P\d+)/extra/(?P\d+)/$', views.plannedsession_multicreate_view), url(r'^sessions/multicreate/user/(?P\d+)/$', views.plannedsession_multicreate_view), url(r'^sessions/(?P\d+)/edit/$',views.plannedsession_edit_view), url(r'^sessions/(?P\d+)/compare/$',views.plannedsession_compare_view), url(r'^sessions/(?P\d+)/compare/user/(?P\d+)/$',views.plannedsession_compare_view), url(r'^sessions/(?P\d+)/edit/user/(?P\d+)/$',views.plannedsession_edit_view), url(r'^sessions/(?P\d+)/clone/user/(?P\d+)/$',views.plannedsession_clone_view), url(r'^sessions/(?P\d+)/clone/$',views.plannedsession_clone_view), url(r'^sessions/(?P\d+)/detach/(?P\d+)/user/(?P\d+)/$',views.plannedsession_detach_view), url(r'^sessions/(?P\d+)/detach/(?P\d+)/$',views.plannedsession_detach_view), url(r'^sessions/(?P\d+)/$',views.plannedsession_view, name='plannedsession_view'), url(r'^sessions/(?P\d+)/user/(?P\d+)/$',views.plannedsession_view, name='plannedsession_view'), url(r'^sessions/(?P\d+)/deleteconfirm$',login_required( views.PlannedSessionDelete.as_view())), url(r'^sessions/(?P\d+)/delete$',login_required( views.PlannedSessionDelete.as_view()), name='plannedsession_delete_view'), url(r'^sessions/manage/session/(?P\d+)/$', views.plannedsessions_manage_view), url(r'^sessions/manage/session/(?P\d+)/user/(?P\d+)/$', views.plannedsessions_manage_view), url(r'^sessions/manage/?$', views.plannedsessions_manage_view), url(r'^sessions/manage/user/(?P\d+)/$', views.plannedsessions_manage_view), url(r'^sessions/coach/$',views.plannedsessions_coach_view), url(r'^sessions/coach/user/\d+/$',views.plannedsessions_coach_view), url(r'^sessions/print/?$',views.plannedsessions_print_view), url(r'^sessions/print/user/(?P\d+)/$',views.plannedsessions_print_view), url(r'^sessions/sendcalendar/$',views.plannedsessions_icsemail_view), url(r'^sessions/sendcalendar/user/(?P\d+)/$',views.plannedsessions_icsemail_view), url(r'^sessions/$',views.plannedsessions_view), url(r'^sessions/user/(?P\d+)$',views.plannedsessions_view), url(r'^sessions/(?P\d+-\d+-\d+)/(?P\d+-\d+-\d+)$', views.plannedsessions_view), url(r'^sessions/(?P\d+-\d+-\d+)/(?P\d+-\d+-\d+)/user/(?P\d+)$', views.plannedsessions_view), url(r'^courses/(?P\d+)/edit$',views.course_edit_view, name='course_edit_view'), url(r'^courses/(?P\d+)/delete$',views.course_delete_view), url(r'^courses/(?P\d+)/emailkml$',views.course_kmlemail_view), url(r'^courses/(?P\d+)/replace$',views.course_replace_view), url(r'^courses/(?P\d+)$',views.course_view), url(r'^courses/(?P\d+)/map$',views.course_map_view), # URLS to be created url(r'^help$',TemplateView.as_view(template_name='help.html'), name='help'), ] if settings.DEBUG: urlpatterns += [ url(r'^testreverse/$',views.test_reverse_view), url(r'^c2listug/(?P\d+)$',views.c2listdebug_view), url(r'^c2listug/$',views.c2listdebug_view), ] #urlpatterns = format_suffix_patterns(urlpatterns)