bornhack-website/src/teams/models.py

40 lines
1.1 KiB
Python
Raw Normal View History

from django.db import models
from django.utils.text import slugify
from utils.models import CampRelatedModel
class Team(CampRelatedModel):
class Meta:
ordering = ['name']
unique_together = ('slug', 'camp')
name = models.CharField(max_length=255)
slug = models.SlugField(max_length=255, blank=True)
camp = models.ForeignKey('camps.Camp')
description = models.TextField()
members = models.ManyToManyField('auth.User', through='teams.TeamMember')
2017-04-01 21:16:23 +00:00
sub_team_of = models.ForeignKey('self', null=True, blank=True, related_name="sub_teams")
def __str__(self):
return '{} ({})'.format(self.name, self.camp)
def save(self, **kwargs):
if (
not self.pk or
not self.slug
):
slug = slugify(self.name)
self.slug = slug
super().save(**kwargs)
class TeamMember(models.Model):
user = models.ForeignKey('auth.User')
team = models.ForeignKey('teams.Team')
2017-04-01 21:16:23 +00:00
responsible = models.BooleanField(default=False)
def __str__(self):
return '{} ({})'.format(self.user, self.team)