Skip to content
Snippets Groups Projects
models.py 2.14 KiB
Newer Older
  • Learn to ignore specific revisions
  • Bodor Máté's avatar
    Bodor Máté committed
    from django.db import models
    from django.contrib.auth.models import User
    
    from django.core.exceptions import ValidationError
    from django.utils.translation import ugettext_lazy as _
    from django.utils import timezone
    from django.core import validators
    from . import  myfields
    
    Bodor Máté's avatar
    Bodor Máté committed
    
    
    
    
    # 5MB - 5242880
    MAX_UPLOAD_SIZE = 5242880
    
    
    def validate_deadline(date):
        if date <= timezone.now():
            raise ValidationError(_('Date must be greater than now'), code='invalid')
    
    
    # def validate_file_size(file):
    #     if file._size > MAX_UPLOAD_SIZE:
    #         raise ValidationError(_('Please keep filesize under' + MAX_UPLOAD_SIZE))
    
    
    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)
        deadline = models.DateTimeField(validators=[validate_deadline])
    
    Bodor Máté's avatar
    Bodor Máté committed
        text = models.TextField()
    
        created_by = models.ForeignKey(User)
        files = models.FileField(validators=[validators.FileExtensionValidator('image/png', 'image/jpeg', 'application/zip')],
                                 blank=True,
        )
        # files = myfields.RestrictedFileField(
        #     content_types=['image/png', 'image/jpeg', 'application/zip'],
        #     max_upload_size=MAX_UPLOAD_SIZE,
        #     blank=True,
        #     null=True,
        # )
    #    solution_file = models.BooleanField()
    #
    #
       # def deadline_clean(self):
       #     if self.deadline <= timezone.now():
       #         raise ValidationError(_('Invalid date'), code='invalid')
    
    Bodor Máté's avatar
    Bodor Máté committed
    
    
    class Solution(models.Model):
    
        task = models.ForeignKey(Task, 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()
    
        files = models.FileField(validators=[
            validators.FileExtensionValidator('image/png', 'image/jpeg', 'application/zip')],
            blank=True,
        )
        created_by = models.ForeignKey(User)
        # files = myfields.RestrictedFileField(
        #     content_types=['image/png', 'image/jpeg', 'application/zip'],
        #     max_upload_size=MAX_UPLOAD_SIZE,
        #     blank=True,
        # )
    
    Bodor Máté's avatar
    Bodor Máté committed
    
    
    class Student(models.Model):
        user = models.OneToOneField(User)
        homework = models.ForeignKey(Solution,  on_delete=models.CASCADE)