Fixed FC-Gifu

This commit is contained in:
hayano
2024-08-26 09:02:01 +00:00
parent 95b787c819
commit 80ccaace3d
6 changed files with 108 additions and 29 deletions

View File

@ -26,7 +26,7 @@ from rest_framework.response import Response
from django.shortcuts import get_object_or_404
from .models import Team, Member, CustomUser, NewCategory
from .serializers import TeamSerializer, MemberSerializer, CustomUserSerializer, TeamDetailSerializer,UserUpdateSerializer,UserRegistrationSerializer
from .permissions import IsTeamOwner
from .permissions import IsTeamOwner,IsTeamOwnerOrMember
from curses.ascii import NUL
from django.core.serializers import serialize
@ -1334,34 +1334,38 @@ class EntryViewSet(viewsets.ModelViewSet):
@transaction.atomic
def perform_create(self, serializer):
category = serializer.validated_data['category']
category = NewCategory.objects.select_for_update().get(id=category.id)
zekken_number = category.category_number
category.category_number = F('category_number') + 1
category.save()
category.refresh_from_db()
try:
category = serializer.validated_data['category']
category = NewCategory.objects.select_for_update().get(id=category.id)
zekken_number = category.category_number
category.category_number = F('category_number') + 1
category.save()
category.refresh_from_db()
team = serializer.validated_data['team']
event = serializer.validated_data['event']
event_name = event.event_name # イベント名を取得
entry = serializer.save(owner=self.request.user, zekken_number=zekken_number)
logger.info(f"team.owner = {team.owner}, event_name = {event_name}")
logger.info(f"team = {team}")
team = serializer.validated_data['team']
event = serializer.validated_data['event']
event_name = event.event_name # イベント名を取得
# 外部システムの更新
success = self.register_team(
entry.zekken_number,
event_name,
team.team_name,
category.category_name,
team.owner.password
)
if not success:
logger.error("Failed to register external system")
raise serializers.ValidationError("外部システムの更新に失敗しました。")
logger.info("External system registered successfully")
except Exception as e:
logger.exception(f"Error creating Entry: {str(e)}")
entry = serializer.save(owner=self.request.user, zekken_number=zekken_number)
logger.info(f"team.owner = {team.owner}, event_name = {event_name}")
logger.info(f"team = {team}")
# 外部システムの更新
success = self.register_team(
entry.zekken_number,
event_name,
team.team_name,
category.category_name,
team.owner.password
)
if not success:
logger.error("Failed to register external system")
raise serializers.ValidationError("外部システムの更新に失敗しました。")
logger.info("External system registered successfully")
def create(self, request, *args, **kwargs):
serializer = self.get_serializer(data=request.data)
@ -1489,6 +1493,20 @@ class EntryViewSet(viewsets.ModelViewSet):
# else:
# return str(errors)
class TeamEntriesView(generics.ListAPIView):
serializer_class = EntrySerializer
permission_classes = [IsAuthenticated, IsTeamOwnerOrMember]
def get_queryset(self):
team_id = self.kwargs['team_id']
team = Team.objects.get(id=team_id)
return Entry.objects.filter(team=team)
def get_serializer_context(self):
context = super().get_serializer_context()
context['team_id'] = self.kwargs['team_id']
return context
class MemberViewSet(viewsets.ModelViewSet):
serializer_class = MemberSerializer