Skip to content

Commit 0591d78

Browse files
committed
Introduce intermediary models for club-member, team-player and team-coach relationships to enable confirmation and declining of relations
1 parent ef905be commit 0591d78

File tree

1 file changed

+28
-3
lines changed

1 file changed

+28
-3
lines changed

Diff for: models.py

+28-3
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99

1010
class Person(models.Model):
1111
user = models.OneToOneField(User, blank=True, null=True, related_name='handball_profile')
12-
clubs = models.ManyToManyField('Club', related_name='members', blank=False)
12+
clubs = models.ManyToManyField('Club', related_name='members', blank=False, through='MemberClubRelation')
1313

1414
first_name = models.CharField(max_length=50)
1515
last_name = models.CharField(max_length=50)
@@ -32,8 +32,8 @@ def __unicode__(self):
3232
class Team(models.Model):
3333
name = models.CharField(max_length=50)
3434

35-
players = models.ManyToManyField('Person', blank=True, related_name='teams')
36-
coaches = models.ManyToManyField('Person', blank=True, related_name='teams_coached')
35+
players = models.ManyToManyField('Person', blank=True, related_name='teams', through='TeamPlayerRelation')
36+
coaches = models.ManyToManyField('Person', blank=True, related_name='teams_coached', through='TeamCoachRelation')
3737
# league = models.ForeignKey('League', related_name='league', blank=True)
3838
club = models.ForeignKey('Club', related_name='teams')
3939
managers = models.ManyToManyField('Person', blank=True, related_name='teams_managed')
@@ -158,6 +158,31 @@ class PlayerGameRelation(models.Model):
158158
penalty_shots_miss = models.IntegerField()
159159

160160

161+
class MemberClubRelation(models.Model):
162+
member = models.ForeignKey('Person')
163+
club = models.ForeignKey('Club')
164+
165+
primary = models.BooleanField()
166+
member_confirmed = models.BooleanField(default=False)
167+
manager_confirmed = models.BooleanField(default=False)
168+
169+
170+
class TeamPlayerRelation(models.Model):
171+
player = models.ForeignKey('Person')
172+
team = models.ForeignKey('Team')
173+
174+
player_confirmed = models.BooleanField(default=False)
175+
manager_confirmed = models.BooleanField(default=False)
176+
177+
178+
class TeamCoachRelation(models.Model):
179+
coach = models.ForeignKey('Person')
180+
team = models.ForeignKey('Team')
181+
182+
member_confirmed = models.BooleanField(default=False)
183+
manager_confirmed = models.BooleanField(default=False)
184+
185+
161186
class Event(models.Model):
162187
time = models.IntegerField()
163188

0 commit comments

Comments
 (0)