debugging entry

This commit is contained in:
2024-07-25 00:57:48 +00:00
parent 09e39987e2
commit c0fb177d02
24 changed files with 1051 additions and 395 deletions

View File

@ -261,6 +261,15 @@ class TempUser(models.Model):
def is_valid(self):
return timezone.now() <= self.expires_at
class NewEvent2(models.Model):
event_name = models.CharField(max_length=255, unique=True)
start_datetime = models.DateTimeField(default=timezone.now)
end_datetime = models.DateTimeField()
def __str__(self):
return f"{self.event_name} - From:{self.start_datetime} To:{self.end_datetime}"
class NewEvent(models.Model):
event_name = models.CharField(max_length=255, primary_key=True)
start_datetime = models.DateTimeField(default=timezone.now)
@ -269,19 +278,27 @@ class NewEvent(models.Model):
def __str__(self):
return f"{self.event_name} - From:{self.start_datetime} To:{self.end_datetime}"
def get_default_category():
return NewCategory.objects.get_or_create(category_name="Default Category", category_number=1)[0].id
class Team(models.Model):
zekken_number = models.CharField(max_length=255, primary_key=True)
zekken_number = models.CharField(max_length=255, unique=True)
team_name = models.CharField(max_length=255)
password = models.CharField(max_length=128)
owner = models.ForeignKey(CustomUser, on_delete=models.CASCADE)
owner = models.ForeignKey(CustomUser, on_delete=models.CASCADE, related_name='owned_teams', blank=True, null=True)
category = models.ForeignKey('NewCategory', on_delete=models.SET_DEFAULT, default=get_default_category)
class Meta:
unique_together = ('zekken_number', 'category')
def __str__(self):
return f"{self.zekken_number} - {self.team_name}, owner:{self.owner.lastname} {self.owner.firstname}"
class Member(models.Model):
team = models.ForeignKey(Team, on_delete=models.CASCADE)
team = models.ForeignKey(Team, on_delete=models.CASCADE, related_name='members')
user = models.ForeignKey(CustomUser, on_delete=models.CASCADE)
is_temporary = models.BooleanField(default=False) # Akira 2024-7-24
class Meta:
unique_together = ('team', 'user')
@ -289,10 +306,29 @@ class Member(models.Model):
def __str__(self):
return f"{self.team.zekken_number} - {self.user.lastname} {self.user.firstname}"
#
#
class Category(models.Model):
category_name = models.CharField(max_length=255, primary_key=True)
category_number = models.IntegerField(unique=True)
category_number = models.IntegerField(default=0)
duration = models.DurationField(default=timedelta(hours=5))
num_of_member = models.IntegerField(default=1)
family = models.BooleanField(default=False)
female = models.BooleanField(default=False)
class Meta:
unique_together = ('category_name','category_number')
def __str__(self):
hours = self.duration.total_seconds() // 3600
return f"{self.category_name} - {self.category_number} ({int(hours)}時間)"
@property
def hours(self):
return self.duration.total_seconds() // 3600
class NewCategory(models.Model):
category_name = models.CharField(max_length=255, unique=True)
category_number = models.IntegerField(default=0)
duration = models.DurationField(default=timedelta(hours=5))
num_of_member = models.IntegerField(default=1)
family = models.BooleanField(default=False)
@ -311,12 +347,13 @@ class Category(models.Model):
class Entry(models.Model):
team = models.ForeignKey(Team, on_delete=models.CASCADE)
event = models.ForeignKey(NewEvent, on_delete=models.CASCADE)
category = models.ForeignKey(Category, on_delete=models.CASCADE)
event = models.ForeignKey(NewEvent2, on_delete=models.CASCADE)
category = models.ForeignKey(NewCategory, on_delete=models.CASCADE)
date = models.DateTimeField()
owner = models.ForeignKey(CustomUser, on_delete=models.CASCADE,blank=True, null=True) # Akira 2024-7-24
class Meta:
unique_together = ('team', 'event', 'date')
unique_together = ('team', 'event', 'date','owner')
def __str__(self):
return f"{self.team.zekken_number} - {self.event.event_name} - {self.date}"
@ -332,9 +369,13 @@ class Entry(models.Model):
})
# メンバーの年齢と性別をチェック
members = Member.objects.filter(team=self.team)
if not members.exists():
raise ValidationError("チームにメンバーが登録されていません。")
if self.team and not self.team.members.exists():
raise ValidationError({'team': 'チームにメンバーが登録されていません。'})
#members = Member.objects.filter(team=self.team)
#if not members.exists():
# # ここで、owner をMemberに登録する。 Akira 2024-7-24
# raise ValidationError("チームにメンバーが登録されていません。")
adults = [m for m in members if self.is_adult(m.user.date_of_birth)]
children = [m for m in members if self.is_child(m.user.date_of_birth)]
@ -387,6 +428,17 @@ class Entry(models.Model):
return 13 <= age <= 17
class EntryMember(models.Model):
entry = models.ForeignKey(Entry, on_delete=models.CASCADE)
member = models.ForeignKey(Member, on_delete=models.CASCADE)
is_temporary = models.BooleanField(default=False) # Akira 2024-7-24
class Meta:
unique_together = ('entry', 'member')
def __str__(self):
return f"{self.entry.team.zekken_number} - {self.member.user.lastname} {self.member.user.firstname}"
class GoalImages(models.Model):
user=models.ForeignKey(CustomUser, on_delete=models.DO_NOTHING)