checkin status tool

This commit is contained in:
2025-09-06 06:15:35 +09:00
parent 290a5a8c2f
commit e65da5fd8f
9 changed files with 1328 additions and 13 deletions

View File

@ -125,19 +125,38 @@ class TeamRegistrationProcessor:
self.log(f"DRY RUN: Event with code '{self.event_code}' would be searched")
# ダミーイベントオブジェクトを作成
class DummyEvent:
def __init__(self):
self.event_name = f"Dummy Event for {self.event_code}"
self.event_code = self.event_code
self.event = DummyEvent()
def __init__(self, event_code):
self.event_name = f"Dummy Event for {event_code}"
self.event_code = event_code
self.event = DummyEvent(self.event_code)
return
else:
raise ValueError(f"Event with code '{self.event_code}' not found")
# カテゴリ情報をプリロード
for category in NewCategory.objects.all():
hours = int(category.duration.total_seconds() // 3600)
key = (category.category_name, hours)
self.categories[key] = category
if not self.dry_run:
for category in NewCategory.objects.all():
hours = int(category.duration.total_seconds() // 3600)
key = (category.category_name, hours)
self.categories[key] = category
else:
# DRY RUNの場合はダミーカテゴリを作成
dummy_categories = [
('一般', 3), ('一般', 5), ('ファミリー', 3), ('ファミリー', 5),
('男性ソロ', 3), ('男性ソロ', 5), ('女性ソロ', 3), ('女性ソロ', 5)
]
for cat_name, hours in dummy_categories:
class DummyCategory:
def __init__(self, name, hours):
self.category_name = name
self.category_number = len(self.categories) + 1
self.duration = timedelta(hours=hours)
self.num_of_member = 7
self.family = (name == 'ファミリー')
self.female = (name == '女性ソロ')
self.trial = False
self.categories[(cat_name, hours)] = DummyCategory(cat_name, hours)
self.log(f"利用可能なカテゴリ: {list(self.categories.keys())}")
@ -226,16 +245,16 @@ class TeamRegistrationProcessor:
self.log(f"DRY RUN: カテゴリ作成 - {department} ({hours_int}時間)")
# ダミーカテゴリオブジェクトを作成
class DummyCategory:
def __init__(self):
def __init__(self, processor):
self.category_name = department
self.category_number = len(self.categories) + 1
self.category_number = len(processor.categories) + 1
self.duration = timedelta(hours=hours_int)
self.num_of_member = 7
self.family = (department == 'ファミリー')
self.female = (department == '女性ソロ')
self.trial = False
category = DummyCategory()
category = DummyCategory(self)
else:
category = NewCategory.objects.create(
category_name=department,
@ -446,7 +465,7 @@ class TeamRegistrationProcessor:
lastname=user.lastname,
date_of_birth=user.date_of_birth,
female=user.female,
is_temporary=True if user.email.startswith('dummy_') else False
is_temporary=True if hasattr(user, 'email') and user.email.startswith('dummy_') else False
)
self.log(f"メンバー追加: {user.firstname} to {team.team_name}")
self.stats['members_created'] += 1
@ -510,7 +529,7 @@ class TeamRegistrationProcessor:
entry_member = EntryMember.objects.create(
entry=entry,
member=member,
is_temporary=member.is_temporary
is_temporary=getattr(member, 'is_temporary', False)
)
self.log(f"参加登録: {member.user.firstname}")
self.stats['participations_created'] += 1