Skip to content
Snippets Groups Projects
models.py 1.44 KiB
Newer Older
  • Learn to ignore specific revisions
  • Bodor Máté's avatar
    Bodor Máté committed
    from django.db import models
    
    from django.core import validators
    
    
    from common.validators import FileSizeValidator
    from account.models import Profile
    
    Bodor Máté's avatar
    Bodor Máté committed
    class Task(models.Model):
    
        title = models.CharField(max_length=150)
        date = models.DateTimeField(auto_now_add=True, editable=False)
    
    Bodor Máté's avatar
    Bodor Máté committed
        text = models.TextField()
    
    Bodor Máté's avatar
    Bodor Máté committed
        created_by = models.ForeignKey(Profile, on_delete=models.DO_NOTHING)
    
        files = models.FileField(
    
            validators=[
                validators.FileExtensionValidator([
                    'image/png',
                    'image/jpeg',
                    'application/zip',
                ]),
                FileSizeValidator(size_limit=52428800),  # 52428800 - 50MiB
            ],
    
            blank=True,
    
    
        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='task_solution', on_delete=models.CASCADE)
    
        created_by = models.ForeignKey(Profile, related_name='student_solution', on_delete=models.CASCADE)
    
        date = models.DateTimeField(auto_now_add=True, editable=False)
    
    Bodor Máté's avatar
    Bodor Máté committed
        ready = models.BooleanField(default=False)
    
        accepted = models.BooleanField(default=False)
    
        files = models.FileField(
    
            validators=[
                validators.FileExtensionValidator([
                    'image/png',
                    'image/jpeg',
                    'zip',
                ]),
                FileSizeValidator(size_limit=52428800),  # 52428800 - 50MiB
            ],