Fixes failing user update

clubs
Laurent 2 years ago
parent 645dc0ad18
commit 77a22dae15
  1. 7
      tournaments/models/custom_user.py
  2. 5
      tournaments/serializers.py
  3. 10
      tournaments/views.py

@ -28,5 +28,12 @@ class CustomUser(AbstractUser):
group_stage_match_format_preference = models.IntegerField(default=enums.FederalMatchCategory.NINE_GAMES, choices=enums.FederalMatchCategory.choices, null=True, blank=True)
loser_bracket_match_format_preference = models.IntegerField(default=enums.FederalMatchCategory.NINE_GAMES, choices=enums.FederalMatchCategory.choices, null=True, blank=True)
def fields_for_update():
# returns the list of fields to update without password
return ['id', 'username', 'email', 'umpire_code', 'clubs', 'phone', 'first_name', 'last_name', 'licence_id', 'country',
'call_message_body', 'call_message_signature', 'call_display_format', 'call_display_entry_fee',
'call_use_full_custom_message', 'match_formats_default_duration', 'bracket_match_format_preference',
'group_stage_match_format_preference', 'loser_bracket_match_format_preference']
def __str__(self):
return self.username

@ -75,6 +75,11 @@ class UserSerializer(serializers.ModelSerializer):
model = CustomUser
fields = '__all__' # ['id', 'username', 'password', 'umpire_code', 'clubs', 'phone', 'first_name', 'last_name', 'licence_id']
class UserUpdateSerializer(serializers.ModelSerializer):
class Meta:
model = CustomUser
fields = CustomUser.fields_for_update()
class ClubSerializer(serializers.ModelSerializer):
class Meta:
model = Club

@ -9,7 +9,7 @@ from tournaments.models.date_interval import DateInterval
from .tokens import account_activation_token
from tournaments.models import group_stage
from .serializers import ClubSerializer, CourtSerializer, DateIntervalSerializer, TournamentSerializer, UserSerializer, ChangePasswordSerializer, EventSerializer, RoundSerializer, GroupStageSerializer, MatchSerializer, TeamScoreSerializer, TeamRegistrationSerializer, PlayerRegistrationSerializer, LiveMatchSerializer, PurchaseSerializer
from .serializers import ClubSerializer, CourtSerializer, DateIntervalSerializer, TournamentSerializer, UserSerializer, ChangePasswordSerializer, EventSerializer, RoundSerializer, GroupStageSerializer, MatchSerializer, TeamScoreSerializer, TeamRegistrationSerializer, PlayerRegistrationSerializer, LiveMatchSerializer, PurchaseSerializer, UserUpdateSerializer
from .models import Club, Tournament, CustomUser, Event, Round, GroupStage, Match, TeamScore, TeamRegistration, PlayerRegistration, Purchase
from .models import TeamSummon
from datetime import datetime
@ -218,7 +218,13 @@ def user_by_token(request):
class UserViewSet(viewsets.ModelViewSet):
queryset = CustomUser.objects.all()
serializer_class = UserSerializer
serializer_class = UserUpdateSerializer
def get_serializer_class(self):
# Use UserSerializer for other actions (e.g., create, retrieve)
if self.action in ['create', 'retrieve']:
return UserSerializer
return self.serializer_class
class ClubViewSet(viewsets.ModelViewSet):
queryset = Club.objects.all()

Loading…
Cancel
Save