Fixed FC-Gifu
This commit is contained in:
72
rog/views.py
72
rog/views.py
@ -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
|
||||
|
||||
Reference in New Issue
Block a user