Files
rogaining_srv/create_fc_gifu_entries.py
2025-08-29 09:11:20 +09:00

92 lines
3.4 KiB
Python

#!/usr/bin/env python
"""
FC岐阜イベント用のエントリーデータ作成スクリプト
既存のチームをFC岐阜イベントにエントリーして、ゼッケン番号表示を可能にする
"""
import os
import sys
import django
from datetime import datetime
if __name__ == '__main__':
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'config.settings')
django.setup()
from rog.models import NewEvent2, Entry, Team, NewCategory, CustomUser
print("=== FC岐阜イベント用エントリーデータ作成 ===")
try:
# FC岐阜イベントを取得
fc_gifu_event = NewEvent2.objects.filter(event_name__icontains='FC岐阜').first()
if not fc_gifu_event:
print("❌ FC岐阜イベントが見つかりません")
sys.exit(1)
print(f"✅ FC岐阜イベント確認: {fc_gifu_event.event_name} (ID: {fc_gifu_event.id})")
# カテゴリを取得または作成
category, created = NewCategory.objects.get_or_create(
category_name="一般",
defaults={'category_number': 1}
)
if created:
print(f"✅ カテゴリ作成: {category.category_name}")
else:
print(f"✅ 既存カテゴリ使用: {category.category_name}")
# 既存のチームを取得
teams = Team.objects.all()[:10] # 最初の10チームを使用
print(f"✅ 対象チーム数: {teams.count()}")
# エントリーを作成
created_entries = 0
zekken_number = 1
for team in teams:
# 既にエントリーが存在するかチェック
existing_entry = Entry.objects.filter(
team=team,
event=fc_gifu_event
).first()
if not existing_entry:
# エントリーを作成
entry = Entry.objects.create(
team=team,
event=fc_gifu_event,
category=category,
date=fc_gifu_event.start_datetime,
owner=team.owner,
zekken_number=zekken_number,
zekken_label=f"FC岐阜-{zekken_number:03d}",
is_active=True,
hasParticipated=False,
hasGoaled=False
)
print(f" ✅ エントリー作成: {team.team_name} -> ゼッケン{zekken_number}")
created_entries += 1
zekken_number += 1
else:
print(f" ⏭️ 既存エントリー: {team.team_name}")
print(f"\n=== 作成完了 ===")
print(f"新規エントリー数: {created_entries}")
# 確認
fc_entries = Entry.objects.filter(event=fc_gifu_event)
print(f"FC岐阜イベントの総エントリー数: {fc_entries.count()}")
print("\n=== ゼッケン番号一覧 ===")
for entry in fc_entries.order_by('zekken_number')[:5]:
print(f"ゼッケン{entry.zekken_number}: {entry.team.team_name}")
if fc_entries.count() > 5:
print(f"... 他 {fc_entries.count() - 5}")
except Exception as e:
print(f"❌ エラーが発生しました: {e}")
import traceback
traceback.print_exc()