Skip to content
Snippets Groups Projects
models.py 1.43 KiB
Newer Older
Bodor Máté's avatar
Bodor Máté committed
from django.db import models
from common.middleware import CurrentUserMiddleware
from account.models import Profile
Bodor Máté's avatar
Bodor Máté committed
class Task(models.Model):
    created_by = models.ForeignKey(
        Profile,
        on_delete=models.DO_NOTHING,
        related_name='tasks',
        default=CurrentUserMiddleware.get_current_user_profile,
    )
    created_at = models.DateTimeField(auto_now_add=True, editable=False)
    updated_at = models.DateTimeField(auto_now=True, editable=False)
    title = models.CharField(max_length=150)
Bodor Máté's avatar
Bodor Máté committed
    text = models.TextField()
    deadline = models.DateTimeField()
Rafael László's avatar
Rafael László committed
    bits = models.IntegerField(default=1)

    def __str__(self):
        return self.title
Bodor Máté's avatar
Bodor Máté committed


class Solution(models.Model):
    task = models.ForeignKey(Task, related_name='solutions', on_delete=models.CASCADE)
    created_by = models.ForeignKey(
        Profile,
        related_name='solution',
        on_delete=models.DO_NOTHING,
Bodor Máté's avatar
Bodor Máté committed
        default=CurrentUserMiddleware.get_current_user_profile
Bodor Máté's avatar
Bodor Máté committed
    created_at = models.DateTimeField(auto_now_add=True, editable=False)
    updated_at = models.DateTimeField(auto_now=True, editable=False)
    note = models.TextField(blank=True, default='')
Bodor Máté's avatar
Bodor Máté committed
    accepted = models.BooleanField(blank=True, default=False)
    corrected = models.BooleanField(blank=True, default=False)
Rafael László's avatar
Rafael László committed
    @property
    def my_bits(self):
        return 10

    def __str__(self):
        return "[{}] {}".format(self.created_at, self.created_by.full_name)