Skip to content
Snippets Groups Projects
models.py 1.78 KiB
Newer Older
  • Learn to ignore specific revisions
  • 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)