Skip to content
Snippets Groups Projects
models.py 1.85 KiB
Newer Older
from django.db import models
from django.contrib.auth.models import User
from solo.models import SingletonModel
Bodor Máté's avatar
Bodor Máté committed

Bodor Máté's avatar
Bodor Máté committed
class GroupChoice(models.Model):
        ('DT', 'DevTeam'),
        ('NET', 'NeTeam'),
        ('ST', 'SecurITeam'),
        ('SYS', 'SysAdmin'),
        ('HAT', 'Hallgatói Tudásbázis'),
        ('N', 'None'),
Rafael László's avatar
Rafael László committed
    choice = models.CharField(
        max_length=10,
        choices=TEAMS,
        default='N',
        unique=True)

    def __str__(self):
        return self.choice


class Profile(models.Model):
Bodor Máté's avatar
Bodor Máté committed
    ROLES = (
        ('Staff', 'Staff'),
        ('Applicant', 'Applicant'),
        ('Student', 'Student'),
Bodor Máté's avatar
Bodor Máté committed
    )
    join_date = models.DateTimeField(auto_now_add=True, editable=False)
    updated_at = models.DateTimeField(auto_now=True, editable=False)
    user = models.OneToOneField(
        User,
        related_name='profile',
Bodor Máté's avatar
Bodor Máté committed
        on_delete=models.CASCADE
Rafael László's avatar
Rafael László committed

    motivation_about = models.TextField(blank=True, default='')
    motivation_profession = models.TextField(blank=True, default='')
    motivation_exercise = models.TextField(blank=True, default='')
    nick = models.CharField(max_length=15, blank=True, default='')
    signed = models.BooleanField(default=False, null=False)
Rafael László's avatar
Rafael László committed
    groups = models.ManyToManyField(
        GroupChoice, related_name='profiles', blank=True)
Bodor Máté's avatar
Bodor Máté committed
    role = models.CharField(max_length=10, choices=ROLES, default='Applicant')
rlacko's avatar
rlacko committed
    @property
    def score(self):
Rafael László's avatar
Rafael László committed
        return self.events_visitor.all().count() * 10 + \
            self.solution.filter(accepted=True).count() * 50
rlacko's avatar
rlacko committed

    @property
    def full_name(self):
        return self.user.get_full_name()
        return self.full_name


class Deadline(SingletonModel):
    deadline = models.DateTimeField(null=True)
    text = models.CharField(max_length=50, blank=True, default='')