Skip to content
Snippets Groups Projects
models.py 1.77 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'),
    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
    # TODO: Change the default to json render side
    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)
Bodor Máté's avatar
Bodor Máté committed
    groups = models.ManyToManyField(GroupChoice, related_name='profiles', blank=True)
    role = models.CharField(max_length=10, choices=ROLES, default='Applicant')
rlacko's avatar
rlacko committed
    @property
    def score(self):
        return  self.events_visitor.all().count()*10 + self.solution.filter(accepted=True).count()*50

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


class Deadline(SingletonModel):
    deadline = models.DateTimeField(null=True)