112 lines
3.5 KiB
Python
112 lines
3.5 KiB
Python
from django.db import models
|
|
from django.core.urlresolvers import reverse
|
|
from django.contrib.auth.models import User
|
|
|
|
class UserProfile(models.Model):
|
|
user = models.OneToOneField(User)
|
|
avatar = models.ImageField(upload_to="profiles/", blank=True)
|
|
|
|
def __unicode__(self):
|
|
return self.user.username
|
|
|
|
class Competition(models.Model):
|
|
leagueShortcut = models.CharField(max_length=32)
|
|
leagueName = models.CharField(max_length=128)
|
|
season = models.CharField(max_length=4)
|
|
|
|
def __unicode__(self):
|
|
return(self.leagueShortcut)
|
|
|
|
class Team(models.Model):
|
|
teamID = models.IntegerField(unique=True, primary_key=True)
|
|
name = models.CharField(max_length=200)
|
|
icon = models.FileField(upload_to="images/team_logos/")
|
|
abbr = models.CharField(max_length=3)
|
|
|
|
def __unicode__(self):
|
|
return self.name
|
|
|
|
class Match(models.Model):
|
|
matchID = models.IntegerField(unique=True,primary_key=True)
|
|
matchDateTime = models.DateTimeField()
|
|
group = models.IntegerField()
|
|
matchday = models.IntegerField()
|
|
idTeam1 = models.ForeignKey(Team, related_name='+')
|
|
idTeam2 = models.ForeignKey(Team, related_name='+')
|
|
pointsTeam1 = models.SmallIntegerField()
|
|
pointsTeam2 = models.SmallIntegerField()
|
|
finished = models.BooleanField()
|
|
season = models.CharField(max_length=4)
|
|
leagueShortcut = models.CharField(max_length=12)
|
|
|
|
def __unicode__(self):
|
|
"""
|
|
return (str(self.matchID) +
|
|
str(Team.objects.get(teamID=int(self.idTeam1)).values(name)) + " - " +
|
|
str(Team.objects.get(teamID=int(self.idTeam2)).values(name)))
|
|
"""
|
|
return (str(self.matchID))
|
|
|
|
class Tipp(models.Model):
|
|
matchID = models.ForeignKey(Match)
|
|
tipperID = models.ForeignKey(User)
|
|
pointsTeam1 = models.PositiveSmallIntegerField()
|
|
pointsTeam2 = models.PositiveSmallIntegerField()
|
|
score = models.PositiveIntegerField(blank=True, null=True)
|
|
|
|
class Meta:
|
|
unique_together = ("matchID", "tipperID")
|
|
|
|
class Mandant(models.Model):
|
|
name = models.CharField(max_length=32, unique=True)
|
|
description = models.CharField(max_length=255)
|
|
def __unicode__(self):
|
|
return self.name
|
|
|
|
class Score(models.Model):
|
|
client = models.ForeignKey(Mandant)
|
|
exact_high = models.PositiveSmallIntegerField()
|
|
exact = models.PositiveSmallIntegerField()
|
|
diff = models.PositiveSmallIntegerField()
|
|
tendency = models.PositiveSmallIntegerField()
|
|
def __unicode__(self):
|
|
return str(self.client)
|
|
|
|
class chart(models.Model):
|
|
team = models.ForeignKey(Team)
|
|
competition = models.ForeignKey(Competition)
|
|
points = models.PositiveSmallIntegerField()
|
|
diff = models.SmallIntegerField()
|
|
games = models.PositiveSmallIntegerField()
|
|
|
|
class Meta:
|
|
unique_together = ("team", "competition")
|
|
|
|
class RelUserMandant(models.Model):
|
|
user = models.ForeignKey(User)
|
|
mandant = models.ForeignKey(Mandant)
|
|
|
|
class Meta:
|
|
unique_together = ("user", "mandant")
|
|
def __unicode__(self):
|
|
return (str(self.user) + " -> " + str(self.mandant))
|
|
|
|
class Post(models.Model):
|
|
title = models.CharField(max_length=255)
|
|
slug = models.SlugField(unique=True, max_length=255)
|
|
content = models.TextField()
|
|
published = models.BooleanField(default=True)
|
|
created = models.DateTimeField(auto_now_add=True)
|
|
author = models.ForeignKey(User)
|
|
|
|
class Meta:
|
|
ordering = ['-created']
|
|
|
|
def __unicode__(self):
|
|
return u'%s' % self.title
|
|
|
|
def get_absolute_url(self):
|
|
return reverse('tipp.views.blogpost', args=[self.slug])
|
|
|
|
|