debugging entry
This commit is contained in:
@ -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)
|
||||
|
||||
Reference in New Issue
Block a user