From 4a10584733ed3144529a76686798c9fdd04915d4 Mon Sep 17 00:00:00 2001 From: Sander Roosendaal Date: Thu, 11 May 2017 11:58:44 +0200 Subject: [PATCH] some fixes after testing --- rowers/models.py | 4 +- rowers/templates/summary_edit.html | 4 +- rowers/urls.py | 112 ++++++++++++++--------------- rowers/views.py | 80 +++++++++++---------- 4 files changed, 103 insertions(+), 97 deletions(-) diff --git a/rowers/models.py b/rowers/models.py index 241df8fb..2b6a1531 100644 --- a/rowers/models.py +++ b/rowers/models.py @@ -327,9 +327,9 @@ class BaseFavoriteFormSet(BaseFormSet): def checkworkoutuser(user,workout): try: r = Rower.objects.get(user=user) - return (workout.user == r) + return workout.user == r except Rower.DoesNotExist: - return(False) + return False # Workout diff --git a/rowers/templates/summary_edit.html b/rowers/templates/summary_edit.html index 5d7c98e3..8c3cf177 100644 --- a/rowers/templates/summary_edit.html +++ b/rowers/templates/summary_edit.html @@ -136,7 +136,7 @@

Updated Summary

-
+ {% csrf_token %} @@ -200,4 +200,4 @@
-{% endblock %} \ No newline at end of file +{% endblock %} diff --git a/rowers/urls.py b/rowers/urls.py index 30419327..f4ce2529 100644 --- a/rowers/urls.py +++ b/rowers/urls.py @@ -148,9 +148,9 @@ urlpatterns = [ url(r'^cumstats/$',views.cumstats), 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'^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/upload/team/$',views.team_workout_upload_view), url(r'^workout/upload/$',views.workout_upload_view), url(r'^workout/(?P\d+)/histo$',views.workout_histo_view), @@ -159,87 +159,87 @@ urlpatterns = [ 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/(\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/(?P\d+)/emailtcx$',views.workout_tcxemail_view), + url(r'^workout/(?P\d+)/emailcsv$',views.workout_csvemail_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\w+.*)$',views.workout_comparison_list), url(r'^workout/(?P\d+)/edit$',views.workout_edit_view), url(r'^workout/(?P\d+)/setprivate$',views.workout_setprivate_view), url(r'^workout/(?P\d+)/makepublic$',views.workout_makepublic_view), url(r'^workout/(?P\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\d+)/advanced$',views.workout_advanced_view), + url(r'^workout/(?P\d+)/stats$',views.workout_stats_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+)/darkskywind$',views.workout_downloadwind_view), url(r'^workout/(?P\d+)/metar/(?P\w+)$',views.workout_downloadmetar_view), - url(r'^workout/(\d+)/stream$',views.workout_stream_view), - url(r'^workout/(\d+)/crewnerdsummary$',views.workout_crewnerd_summary_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'^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), + url(r'^workout/(?P\d+)/restore$',views.workout_summary_restore_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/(\d+)/$',views.workout_fusion_list), + url(r'^workout/fusion/(?P\d+)/$',views.workout_fusion_list), url(r'^workout/fusion/(?P\d+)/(?P\d+-\d+-\d+)/(?P\w+.*)$',views.workout_fusion_list), url(r'^physics$',TemplateView.as_view(template_name='physics.html'),name='physics'), url(r'^partners$',TemplateView.as_view(template_name='partners.html'),name='partners'), - 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/(?P\d+)/$',views.workout_view), + url(r'^workout/(?P\d+)/addtimeplot$',views.workout_add_timeplot_view), + url(r'^workout/(?P\d+)/addpiechart$',views.workout_add_piechart_view), + url(r'^workout/(?P\d+)/addpowerpiechart$',views.workout_add_power_piechart_view), + url(r'^workout/(?P\d+)/adddistanceplot$',views.workout_add_distanceplot_view), + url(r'^workout/(?P\d+)/adddistanceplot2$',views.workout_add_distanceplot2_view), + url(r'^workout/(?P\d+)/addotwpowerplot$',views.workout_add_otw_powerplot_view), + url(r'^workout/(?P\d+)/addtimeplot2$',views.workout_add_timeplot2_view), + url(r'^workout/(?P\d+)/delete$',views.workout_delete_view), + 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/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/c2import/(?P\d+)/$',views.workout_getc2workout_view), + url(r'^workout/stravaimport/(?P\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/sporttracksimport/(?P\d+)/$',views.workout_getsporttracksworkout_view), url(r'^workout/runkeeperimport/$',views.workout_runkeeperimport_view), - url(r'^workout/runkeeperimport/(\d+)/$',views.workout_getrunkeeperworkout_view), + url(r'^workout/runkeeperimport/(?P\d+)/$',views.workout_getrunkeeperworkout_view), url(r'^workout/underarmourimport/$',views.workout_underarmourimport_view), - url(r'^workout/underarmourimport/(\d+)/$',views.workout_getunderarmourworkout_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'^workout/(\d+)/runkeeperuploadw/$',views.workout_runkeeper_upload_view), - url(r'^workout/(\d+)/underarmouruploadw/$',views.workout_underarmour_upload_view), - url(r'^workout/(\d+)/tpuploadw/$',views.workout_tp_upload_view), + url(r'^workout/underarmourimport/(?P\d+)/$',views.workout_getunderarmourworkout_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$',views.multi_compare_view), url(r'^me/teams/$',views.rower_teams_view), url(r'^team/(?P\d+)/$',views.team_view), - url(r'^team/(\d+)/edit$',views.team_edit_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/(?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/(\d+)/drop/(\d+)$',views.manager_member_drop_view), - url(r'^me/invitation/(\d+)/reject$',views.invitation_reject_view), - url(r'^me/invitation/(\d+)/revoke$',views.invitation_revoke_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/invitation/(\w+.*)/$',views.rower_invitations_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/(?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/(.+.*)/$',views.rower_edit_view), url(r'^me/c2authorize/$',views.rower_c2_authorize), - url(r'^me/revokeapp/(\d+)$',views.rower_revokeapp_view), + 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), @@ -271,7 +271,7 @@ urlpatterns = [ 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), + url(r'^workout/(?P\d+)/test\_strokedata$',views.strokedataform), ] if settings.DEBUG: diff --git a/rowers/views.py b/rowers/views.py index 66c88176..7a02cd87 100644 --- a/rowers/views.py +++ b/rowers/views.py @@ -2180,7 +2180,7 @@ def workout_forcecurve_view(request,id=0,workstrokesonly=False): 'the_div':div, 'js_res': js_resources, 'css_res':css_resources, - 'id':id, + 'id':int(id), 'mayedit':mayedit, 'workstrokesonly': not workstrokesonly, 'teams':get_my_teams(request.user), @@ -2199,7 +2199,7 @@ def workout_test_task_view(request,id=0): url = reverse(workout_edit_view, kwargs = { - 'id':str(id), + 'id':int(id), }) return HttpResponseRedirect(url) @@ -2232,7 +2232,7 @@ def workout_histo_view(request,id=0): 'histo_single.html', {'interactiveplot':script, 'the_div':div, - 'id':id, + 'id':int(id), 'mayedit':mayedit, 'teams':get_my_teams(request.user), }) @@ -2675,14 +2675,14 @@ def workout_recalcsummary_view(request,id=0): messages.info(request,successmessage) url = reverse(workout_edit_view, kwargs = { - 'id':str(id), + 'id':int(id), }) else: message = "Something went wrong. Could not update summary" messages.error(request,message) url = reverse(workout_edit_view, kwargs = { - 'id':str(id), + 'id':int(id), }) return HttpResponseRedirect(url) @@ -2717,7 +2717,7 @@ def workout_makepublic_view(request,id, url = reverse(workout_edit_view, kwargs = { - 'id':str(id), + 'id':int(id), }) return HttpResponseRedirect(url) @@ -2748,7 +2748,7 @@ def workout_setprivate_view(request,id, url = reverse(workout_edit_view, kwargs = { - 'id':str(id), + 'id':int(id), }) return HttpResponseRedirect(url) @@ -3090,7 +3090,7 @@ def workout_comparison_list(request,id=0,message='',successmessage='', messages.info(request,successmessage) return render(request, 'comparison_list.html', - {'id':id, + {'id':int(id), 'workout':row, 'workouts': workouts, 'last_name':u.last_name, @@ -3171,7 +3171,7 @@ def workout_fusion_list(request,id=0,message='',successmessage='', messages.error(request,message) return render(request, 'fusion_list.html', - {'id':id, + {'id':int(id), 'workout':row, 'workouts': workouts, 'last_name':u.last_name, @@ -3324,17 +3324,20 @@ def workout_crewnerd_summary_view(request,id=0,message="",successmessage=""): messages.info(request,successmessage) url = reverse(workout_edit_view, kwargs = { - 'id':str(id), + 'id':int(id), }) return HttpResponseRedirect(url) except: - os.remove(fname) - message = "Something went wrong (workout_crewnerd_summary_view)" + try: + os.remove(fname) + except: + pass + message = "Something went wrong (workout_crewnerd_summary_view)" messages.error(request,message) url = reverse(workout_edit_view, kwargs = { - 'id':str(id), + 'id':int(id), }) return HttpResponseRedirect(url) else: @@ -3403,7 +3406,7 @@ def workout_downloadwind_view(request,id=0, messages.info(request,message) kwargs = { - 'id':str(id)} + 'id':int(id)} url = reverse(workout_wind_view,kwargs=kwargs) response = HttpResponseRedirect(url) @@ -3411,7 +3414,7 @@ def workout_downloadwind_view(request,id=0, message = "No latitude/longitude data" messages.error(request,message) kwargs = { - 'id':str(id) + 'id':int(id) } url = reverse(workout_wind_view,kwargs=kwargs) response = HttpResponseRedirect(url) @@ -3471,7 +3474,7 @@ def workout_downloadmetar_view(request,id=0, messages.info(request,message) kwargs = { - 'id':str(id)} + 'id':int(id)} url = reverse(workout_wind_view,kwargs=kwargs) response = HttpResponseRedirect(url) @@ -3479,7 +3482,7 @@ def workout_downloadmetar_view(request,id=0, message = "No latitude/longitude data" messages.error(request,message) kwargs = { - 'id':str(id) + 'id':int(id) } url = reverse(workout_wind_view,kwargs=kwargs) response = HttpResponseRedirect(url) @@ -3570,7 +3573,7 @@ def workout_wind_view(request,id=0,message="",successmessage=""): message = "Invalid Form" messages.error(request,message) kwargs = { - 'id':str(id) + 'id':int(id) } url = reverse(workout_wind_view,kwargs=kwargs) response = HttpResponseRedirect(url) @@ -3657,7 +3660,7 @@ def workout_stream_view(request,id=0,message="",successmessage=""): message = "Invalid Form" messages.error(request,message) kwargs = { - 'id':str(id)} + 'id':int(id)} url = reverse(workout_wind_view,kwargs=kwargs) response = HttpResponseRedirect(url) @@ -3747,7 +3750,7 @@ def workout_otwsetpower_view(request,id=0,message="",successmessage=""): successmessage = "Your calculations have been submitted. You will receive an email when they are done." messages.info(request,successmessage) kwargs = { - 'id':str(id)} + 'id':int(id)} url = reverse(workout_advanced_view,kwargs=kwargs) response = HttpResponseRedirect(url) @@ -3757,7 +3760,7 @@ def workout_otwsetpower_view(request,id=0,message="",successmessage=""): message = "Invalid Form" messages.error(request,message) kwargs = { - 'id':str(id)} + 'id':int(id)} url = reverse(workout_otwsetpower_view,kwargs=kwargs) response = HttpResponseRedirect(url) @@ -4384,7 +4387,7 @@ def workout_flexchart3_view(request,*args,**kwargs): 'the_div':div, 'js_res': js_resources, 'css_res':css_resources, - 'id':id, + 'id':int(id), 'teams':get_my_teams(request.user), 'xparam':xparam, 'yparam1':yparam1, @@ -4416,7 +4419,7 @@ def workout_flexchart3_view(request,*args,**kwargs): 'js_res': js_resources, 'css_res':css_resources, 'teams':get_my_teams(request.user), - 'id':id, + 'id':int(id), 'xparam':xparam, 'yparam1':yparam1, 'yparam2':yparam2, @@ -5492,7 +5495,7 @@ def workout_getstravaworkout_view(request,stravaid): url = reverse(workout_edit_view, kwargs = { - 'id':id, + 'id':int(id), }) return HttpResponseRedirect(url) @@ -5513,7 +5516,7 @@ def workout_getrunkeeperworkout_view(request,runkeeperid): url = reverse(workout_edit_view, kwargs = { - 'id':id, + 'id':int(id), }) return HttpResponseRedirect(url) @@ -5532,7 +5535,7 @@ def workout_getunderarmourworkout_view(request,underarmourid): url = reverse(workout_edit_view, kwargs = { - 'id':id, + 'id':int(id), }) return HttpResponseRedirect(url) @@ -5557,7 +5560,7 @@ def workout_getsporttracksworkout_view(request,sporttracksid): url = reverse(workout_edit_view, kwargs = { - 'id':id, + 'id':int(id), }) return HttpResponseRedirect(url) @@ -5632,7 +5635,7 @@ def workout_getc2workout_view(request,c2id): url = reverse(workout_edit_view, kwargs = { - 'id':id, + 'id':int(id), }) return HttpResponseRedirect(url) @@ -5777,7 +5780,7 @@ def workout_upload_view(request, url = reverse(workout_edit_view, kwargs = { - 'id':id, + 'id':int(id), }) response = HttpResponseRedirect(url) @@ -6113,7 +6116,7 @@ def workout_delete_confirm_view(request, id=0): raise PermissionDenied("You are not allowed to delete this workout") else: return render(request,'workout_delete_confirm.html', - {'id':id, + {'id':int(id), 'teams':get_my_teams(request.user), 'workout':row}) @@ -6149,7 +6152,7 @@ def graph_delete_confirm_view(request, id=0): raise PermissionDenied("You are not allowed to delete this workout") else: return render(request,'graphimage_delete_confirm.html', - {'id':id, + {'id':int(id), 'teams':get_my_teams(request.user), 'graph':img}) @@ -6274,7 +6277,7 @@ def workout_summary_restore_view(request,id,message="",successmessage=""): messages.info(request,'Original Interval Data Restored') url = reverse(workout_summary_edit_view, kwargs={ - 'id':id, + 'id':int(id), } ) return HttpResponseRedirect(url) @@ -6411,6 +6414,7 @@ def workout_summary_edit_view(request,id,message="",successmessage="" row.save() rowdata.write_csv(f1,gzip=True) dataprep.update_strokedata(id,rowdata.df) + messages.info(request,"Updated interval data saved") data = {'intervalstring':s} form = SummaryStringForm(initial=data) savebutton = 'savestringform' @@ -6463,7 +6467,7 @@ def workout_summary_edit_view(request,id,message="",successmessage="" row.save() rowdata.write_csv(f1,gzip=True) dataprep.update_strokedata(id,rowdata.df) - + messages.info(request,"Updated interval data saved") form = SummaryStringForm() @@ -6523,7 +6527,9 @@ def workout_summary_edit_view(request,id,message="",successmessage="" detailform = IntervalUpdateForm(aantal=nrintervals,initial=initial) + # render page + return render(request, 'summary_edit.html', {'form':form, 'detailform':detailform, @@ -6919,7 +6925,7 @@ def strokedataform(request,id=0): { 'form':form, 'teams':get_my_teams(request.user), - 'id':id, + 'id':int(id), }) elif request.method == 'POST': form = StrokeDataForm() @@ -6928,7 +6934,7 @@ def strokedataform(request,id=0): { 'form':form, 'teams':get_my_teams(request.user), - 'id':id, + 'id':int(id), }) # Process the POSTed stroke data according to the API definition @@ -7219,7 +7225,7 @@ def manager_requests_view(request,code=None,message='',successmessage=''): successmessage = '' messages.info(request,successmessage) - message.error(request,message) + messages.error(request,message) url = reverse(rower_teams_view,kwargs={ }) return HttpResponseRedirect(url) @@ -7333,7 +7339,7 @@ def team_edit_view(request,id=0): url = reverse(team_view, kwargs={ - 'id':id, + 'id':int(id), } )