From 5aac9233d0169a30022cf830f387b603a6a0296b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Barnab=C3=A1s=20Cz=C3=A9m=C3=A1n?= <trabarni@gmail.com> Date: Wed, 4 Apr 2018 12:55:00 +0200 Subject: [PATCH] Add deadline validation to homework --- .../migrations/0012_auto_20180404_1253.py | 20 +++++++++++++++++++ src/homework/models.py | 1 - src/homework/serializers.py | 6 ++++++ 3 files changed, 26 insertions(+), 1 deletion(-) create mode 100644 src/homework/migrations/0012_auto_20180404_1253.py diff --git a/src/homework/migrations/0012_auto_20180404_1253.py b/src/homework/migrations/0012_auto_20180404_1253.py new file mode 100644 index 0000000..7e02121 --- /dev/null +++ b/src/homework/migrations/0012_auto_20180404_1253.py @@ -0,0 +1,20 @@ +# Generated by Django 2.0.1 on 2018-04-04 10:53 + +import common.validators +import django.core.validators +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('homework', '0011_auto_20180404_0853'), + ] + + operations = [ + migrations.AlterField( + model_name='solution', + name='files', + field=models.FileField(upload_to='', validators=[django.core.validators.FileExtensionValidator(['image/png', 'image/jpeg', 'zip']), common.validators.FileSizeValidator(size_limit=52428800)]), + ), + ] diff --git a/src/homework/models.py b/src/homework/models.py index c586fa0..5bf8740 100644 --- a/src/homework/models.py +++ b/src/homework/models.py @@ -42,5 +42,4 @@ class Solution(models.Model): ]), FileSizeValidator(size_limit=52428800), # 52428800 - 50MiB ], - blank=True, ) diff --git a/src/homework/serializers.py b/src/homework/serializers.py index 5b5497f..a15f593 100644 --- a/src/homework/serializers.py +++ b/src/homework/serializers.py @@ -1,4 +1,5 @@ from rest_framework import serializers +from django.utils import timezone from common.serializers import CurrentUserProfileDefault from . import models @@ -21,3 +22,8 @@ class SolutionSerializer(serializers.ModelSerializer): model = models.Solution read_only_fields = ('created_by', 'date' 'ready') fields = ('task', 'date', 'accepted', 'files', 'created_by') + + def validate(self, data): + if timezone.now() > data['task'].deadline: + raise serializers.ValidationError('You late.') + return data -- GitLab