initial commit
This commit is contained in:
@@ -1,4 +1,6 @@
|
||||
from django.db import models
|
||||
|
||||
import lineups.models
|
||||
import teams.models
|
||||
import venues.models
|
||||
import players.models
|
||||
@@ -11,23 +13,97 @@ class TeamsnapBaseModel(models.Model):
|
||||
class Meta:
|
||||
abstract = True
|
||||
|
||||
def __str__(self):
|
||||
return f"{self.name} ({self.teamsnap_id})"
|
||||
|
||||
class User(TeamsnapBaseModel):
|
||||
access_token = models.CharField(max_length = 50)
|
||||
name = None
|
||||
|
||||
def __str__(self):
|
||||
return f"{self.teamsnap_id}"
|
||||
|
||||
class Team(TeamsnapBaseModel):
|
||||
team = models.ForeignKey(teams.models.Team, null=True, on_delete=models.CASCADE)
|
||||
bencoach_team = models.ForeignKey(teams.models.Team, null=True, on_delete=models.CASCADE)
|
||||
|
||||
@property
|
||||
def view_url(self):
|
||||
return f"https://go.teamsnap.com/{self.team.teamsnap_id}/team/view/{self.teamsnap_id}"
|
||||
|
||||
@property
|
||||
def edit_url(self):
|
||||
return f"https://go.teamsnap.com/{self.team.teamsnap_id}/team/edit/{self.teamsnap_id}"
|
||||
|
||||
class Location(TeamsnapBaseModel):
|
||||
venue = models.ForeignKey(venues.models.Venue, null=True, on_delete=models.CASCADE)
|
||||
bencoach_venue = models.ForeignKey(venues.models.Venue, null=True, on_delete=models.CASCADE)
|
||||
|
||||
@property
|
||||
def view_url(self):
|
||||
return f"https://go.teamsnap.com/{self.team.teamsnap_id}/location/view/{self.teamsnap_id}"
|
||||
|
||||
@property
|
||||
def edit_url(self):
|
||||
return f"https://go.teamsnap.com/{self.team.teamsnap_id}/location/edit/{self.teamsnap_id}"
|
||||
|
||||
class Member(TeamsnapBaseModel):
|
||||
player = models.ForeignKey(players.models.Player, null=True, on_delete=models.CASCADE)
|
||||
name = None
|
||||
bencoach_player = models.ForeignKey(players.models.Player, null=True, on_delete=models.CASCADE)
|
||||
team = models.ForeignKey(Team, null=True, on_delete=models.CASCADE)
|
||||
first_name = models.CharField(max_length = 50, null=True)
|
||||
last_name = models.CharField(max_length = 50, null=True)
|
||||
jersey_number = models.IntegerField(null=True)
|
||||
is_non_player = models.BooleanField()
|
||||
|
||||
def __str__(self):
|
||||
return f"{self.last_name}, {self.first_name} ({self.teamsnap_id})"
|
||||
|
||||
@property
|
||||
def view_url(self):
|
||||
return f"https://go.teamsnap.com/{self.team.teamsnap_id}/roster/player/{self.teamsnap_id}"
|
||||
|
||||
@property
|
||||
def edit_url(self):
|
||||
return f"https://go.teamsnap.com/{self.team.teamsnap_id}/roster/edit/{self.teamsnap_id}"
|
||||
|
||||
class Event(TeamsnapBaseModel):
|
||||
event = models.ForeignKey(events.models.Event, null=True, on_delete=models.CASCADE)
|
||||
bencoach_event = models.ForeignKey(events.models.Event, null=True, on_delete=models.CASCADE)
|
||||
label = models.CharField(max_length = 50, null=True)
|
||||
start_date = models.DateTimeField(null=True)
|
||||
opponent = models.ForeignKey(Team, null=True, on_delete=models.CASCADE)
|
||||
opponent = models.ForeignKey(Team, null=True, on_delete=models.CASCADE, related_name="opponent")
|
||||
team = models.ForeignKey(Team, null=True, on_delete=models.CASCADE)
|
||||
location = models.ForeignKey(Location, null=True, on_delete=models.CASCADE)
|
||||
formatted_title = models.CharField(max_length = 50, null=True)
|
||||
formatted_title = models.CharField(max_length = 50, null=True)
|
||||
points_for_opponent = models.PositiveSmallIntegerField(null=True)
|
||||
points_for_team = models.PositiveSmallIntegerField(null=True)
|
||||
is_game = models.BooleanField()
|
||||
|
||||
@property
|
||||
def view_url(self):
|
||||
return f"https://go.teamsnap.com/{self.team.teamsnap_id}/schedule/view_game/{self.teamsnap_id}"
|
||||
|
||||
@property
|
||||
def edit_url(self):
|
||||
return f"https://go.teamsnap.com/{self.team.teamsnap_id}/schedule/edit_game/{self.teamsnap_id}"
|
||||
|
||||
def __str__(self):
|
||||
return f"{self.formatted_title} ({self.teamsnap_id})"
|
||||
|
||||
class Availability(TeamsnapBaseModel):
|
||||
status_codes = [
|
||||
(1, 'Yes'),
|
||||
(0, 'No'),
|
||||
(2, 'Maybe'),
|
||||
(None, 'Unknown')
|
||||
]
|
||||
name = None
|
||||
team = models.ForeignKey(Team, null=True, on_delete=models.CASCADE)
|
||||
event = models.ForeignKey(Event, null=True, on_delete=models.CASCADE)
|
||||
member = models.ForeignKey(Member, null=True, on_delete=models.CASCADE)
|
||||
benchcoach_availability = models.ForeignKey(lineups.models.Availability, null=True, on_delete=models.CASCADE)
|
||||
status_code = models.SmallIntegerField(null=True, choices=status_codes, default=None)
|
||||
|
||||
def __str__(self):
|
||||
return f"{self.member} - {self.event} ({self.teamsnap_id})"
|
||||
|
||||
class Meta:
|
||||
verbose_name_plural = "availabilities"
|
||||
Reference in New Issue
Block a user