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) 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) 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): def __str__(self):
return self.username return self.username

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

@ -9,7 +9,7 @@ from tournaments.models.date_interval import DateInterval
from .tokens import account_activation_token from .tokens import account_activation_token
from tournaments.models import group_stage 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 Club, Tournament, CustomUser, Event, Round, GroupStage, Match, TeamScore, TeamRegistration, PlayerRegistration, Purchase
from .models import TeamSummon from .models import TeamSummon
from datetime import datetime from datetime import datetime
@ -218,7 +218,13 @@ def user_by_token(request):
class UserViewSet(viewsets.ModelViewSet): class UserViewSet(viewsets.ModelViewSet):
queryset = CustomUser.objects.all() 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): class ClubViewSet(viewsets.ModelViewSet):
queryset = Club.objects.all() queryset = Club.objects.all()

Loading…
Cancel
Save