@ -1659,6 +1659,48 @@ def stripe_onboarding_complete(request):
def stripe_refresh_account_link ( request ) :
return render ( request , ' stripe/refresh_account_link.html ' )
def toggle_tournament_private ( request , tournament_id ) :
""" Toggle tournament privacy status (for superusers only) """
# Check if user is superuser
if not request . user . is_superuser :
if request . headers . get ( ' Content-Type ' ) == ' application/json ' :
return JsonResponse ( { ' error ' : ' Accès non autorisé ' } , status = 403 )
messages . error ( request , ' Accès non autorisé ' )
return redirect ( ' tournament-info ' , tournament_id = tournament_id )
# Only allow POST requests
if request . method != ' POST ' :
if request . headers . get ( ' Content-Type ' ) == ' application/json ' :
return JsonResponse ( { ' error ' : ' Méthode non autorisée ' } , status = 405 )
messages . error ( request , ' Méthode non autorisée ' )
return redirect ( ' tournament-info ' , tournament_id = tournament_id )
try :
tournament = get_object_or_404 ( Tournament , pk = tournament_id )
# Toggle the private status
tournament . is_private = not tournament . is_private
tournament . save ( )
# Check if this is an AJAX request
if request . headers . get ( ' Content-Type ' ) == ' application/json ' :
return JsonResponse ( {
' success ' : True ,
' is_private ' : tournament . is_private ,
' message ' : f ' Tournoi défini comme { " privé " if tournament . is_private else " public " } '
} )
else :
# Regular form submission - add success message and redirect
status = " privé " if tournament . is_private else " public "
messages . success ( request , f ' Tournoi défini comme { status } ' )
return redirect ( ' tournament-info ' , tournament_id = tournament_id )
except Exception as e :
if request . headers . get ( ' Content-Type ' ) == ' application/json ' :
return JsonResponse ( { ' error ' : f ' Erreur: { str ( e ) } ' } , status = 500 )
messages . error ( request , f ' Erreur: { str ( e ) } ' )
return redirect ( ' tournament-info ' , tournament_id = tournament_id )
class UserListExportView ( LoginRequiredMixin , View ) :
def get ( self , request , * args , * * kwargs ) :