From 305d569a0af5300367091ec81b3e68c69e28a344 Mon Sep 17 00:00:00 2001 From: Akira Date: Thu, 23 Jan 2025 08:22:59 +0900 Subject: [PATCH] Fix zekken_number --- rog/services/csv_processor.py | 30 +++++++++++++++++++++--------- rog/views.py | 2 +- 2 files changed, 22 insertions(+), 10 deletions(-) diff --git a/rog/services/csv_processor.py b/rog/services/csv_processor.py index 6a7db23..97f34df 100644 --- a/rog/services/csv_processor.py +++ b/rog/services/csv_processor.py @@ -126,22 +126,34 @@ class EntryCSVProcessor: print(f'新規チーム名:{team_name}') # 新規チームを作成 - category = self._get_or_create_category(row) - team = Team.objects.create( - team_name=team_name, - owner=user, - category=category - ) - return team + try: + category = self._get_or_create_category(row) + print(f'カテゴリからゼッケン取得:{row["zekken_number"]}') + team = Team.objects.create( + team_name=team_name, + owner=user, + category=category + ) + return team + except NewCategory.DoesNotExist: + print(f'Error on _get_or_create_team') + raise ValidationError(f"Category with name {category} for team {team} does not exist") + def _get_or_create_category(self, row: Dict[str, Any]) -> NewCategory: """ 時間とデパートメントに基づいてカテゴリを取得 """ - category_name = f"{row['department']}_{row['time']}h" + category_name = f"{row['department']}_{row['time']}時間" try: category = NewCategory.objects.get(category_name=category_name) + row['zekken_number'] = category.category_number + category.category_number = category.category_number + 1 + category.save() + except NewCategory.DoesNotExist: + print(f'Error on _get_or_create_category : {category_name}') + raise ValidationError(f"Category with name {category_name} does not exist") return category @@ -206,7 +218,7 @@ class EntryCSVProcessor: エントリーを作成 """ try: - zekken_no = team.zekken_number + zekken_no = row['zekken_number'] event = NewEvent2.objects.get(event_name=row['event_code']) Entry.objects.create( team=team, diff --git a/rog/views.py b/rog/views.py index 000497b..5225d4c 100644 --- a/rog/views.py +++ b/rog/views.py @@ -1600,7 +1600,7 @@ class EntryViewSet(viewsets.ModelViewSet): # ユーザーがメンバーとして所属するチームのIDを取得 member_team_ids = Member.objects.filter(user=user).values_list('team_id', flat=True) # 両方のチームに関連するエントリーを取得 - return Entry.objects.filter(Q(team__id__in=owned_team_ids) | Q(team__id__in=member_team_ids), isActive=True) + return Entry.objects.filter(Q(team__id__in=owned_team_ids) | Q(team__id__in=member_team_ids), is_active=True) #return Entry.objects.filter(Q(team__id__in=owned_team_ids) | Q(team__id__in=member_team_ids)) @transaction.atomic