first commit

This commit is contained in:
vanalmsick 2025-09-27 18:19:06 +01:00
commit e7f627801f
152 changed files with 35352 additions and 0 deletions

View file

@ -0,0 +1,57 @@
from rest_framework import serializers
from custom_user.models import CustomUser
from .models import Competition, ActivityGoal, Team, Points
class CompetitionSerializer(serializers.ModelSerializer):
owner = serializers.PrimaryKeyRelatedField(
queryset=CustomUser.objects.all(),
required=False
)
user_info = serializers.SerializerMethodField()
class Meta:
model = Competition
fields = ['id', 'owner', 'user', 'user_info', 'name', 'start_date', 'start_date_fmt', 'start_date_epoch', 'end_date', 'end_date_fmt', 'end_date_epoch', 'has_teams', 'organizer_assigns_teams', 'join_code']
read_only_fields = ['join_code', 'user', 'user_info']
def get_user_info(self, obj):
# Assuming `obj.user` is a ManyToMany or related manager
users = obj.user.all().order_by('username') if hasattr(obj.user, 'all') else [obj.user]
return [{'id': u.id, 'username': u.username} for u in users]
class TeamSerializer(serializers.ModelSerializer):
user_info = serializers.SerializerMethodField()
my = serializers.SerializerMethodField()
class Meta:
model = Team
fields = ['id', 'name', 'competition', 'user', 'user_info', 'my']
read_only_fields = ['user', 'user_info', 'my']
def get_user_info(self, obj):
# Assuming `obj.user` is a ManyToMany or related manager
users = obj.user.all().order_by('username') if hasattr(obj.user, 'all') else [obj.user]
return [{'id': u.id, 'username': u.username} for u in users]
def get_my(self, obj):
# if it is the user's team
request = self.context.get('request')
if request and hasattr(request, "user"):
return obj.user.filter(id=request.user.id).exists()
return False
class ActivityGoalSerializer(serializers.ModelSerializer):
class Meta:
model = ActivityGoal
fields = '__all__'
read_only_fields = []
class PointsSerializer(serializers.ModelSerializer):
class Meta:
model = Points
fields = ['id', 'goal', 'award', 'workout', 'points_raw', 'points_capped']
read_only_fields = []