diff --git a/src/homework/migrations/0008_auto_20180221_1135.py b/src/homework/migrations/0008_auto_20180221_1135.py new file mode 100644 index 0000000000000000000000000000000000000000..a26dfa28c3fc452842a879347fc14e663639d604 --- /dev/null +++ b/src/homework/migrations/0008_auto_20180221_1135.py @@ -0,0 +1,24 @@ +# Generated by Django 2.0.1 on 2018-02-21 10:35 + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('homework', '0007_merge_20180209_1734'), + ] + + operations = [ + migrations.AlterField( + model_name='solution', + name='created_by', + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='student_solution', to='account.Profile'), + ), + migrations.AlterField( + model_name='task', + name='created_by', + field=models.ForeignKey(on_delete=django.db.models.deletion.DO_NOTHING, to='account.Profile'), + ), + ] diff --git a/src/homework/models.py b/src/homework/models.py index 212748e5a18d3ce85b755caca8f4894d6982ddcb..5974d6bbbfc4fa0cbfa108e887598c43c4028d15 100644 --- a/src/homework/models.py +++ b/src/homework/models.py @@ -4,7 +4,7 @@ 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 account.models import Profile +from account.models import Profile # from . import myfields @@ -22,7 +22,7 @@ class Task(models.Model): date = models.DateTimeField(auto_now_add=True, editable=False) deadline = models.DateTimeField(validators=[validate_deadline]) text = models.TextField() - created_by = models.ForeignKey(User, on_delete=models.DO_NOTHING) #Profile + created_by = models.ForeignKey(Profile, on_delete=models.DO_NOTHING) files = models.FileField( validators=[validators.FileExtensionValidator( 'image/png', @@ -38,7 +38,7 @@ class Task(models.Model): class Solution(models.Model): task = models.ForeignKey(Task, related_name='task_solution', on_delete=models.CASCADE) - created_by = models.ForeignKey(User, related_name='student_solution', on_delete=models.CASCADE) # Profile + created_by = models.ForeignKey(Profile, related_name='student_solution', on_delete=models.CASCADE) date = models.DateTimeField(auto_now_add=True, editable=False) ready = models.BooleanField(default=False) accepted = models.BooleanField(default=False) diff --git a/src/homework/serializers.py b/src/homework/serializers.py index 6ca0659b7115fffd2ce6700f3b2ef2da808928ec..f3a816eca87897f29294a444425ada034a3ef314 100644 --- a/src/homework/serializers.py +++ b/src/homework/serializers.py @@ -6,20 +6,22 @@ class TaskSerializer(serializers.ModelSerializer): class Meta: model = models.Task read_only_fields = ('created_by', 'date') - extra_kwargs = {'created_by': {'default': serializers.CurrentUserDefault()}} + # extra_kwargs = {'created_by': {'default': serializers.CurrentUserDefault()}} fields = '__all__' class SolutionSerializer(serializers.ModelSerializer): + date = serializers.DateTimeField(read_only=True) + class Meta: model = models.Solution read_only_fields = ('created_by', 'date' 'ready') - extra_kwargs = {'created_by': {'default': serializers.CurrentUserDefault()}} + # extra_kwargs = {'created_by': {'default': serializers.CurrentUserDefault()}} fields = ('task', 'date', 'accepted', 'files', 'created_by') # def validate(self, attrs): # task = attrs['task'] - # date = attrs['date'] + # date = attrs['date'] keyerror # # if task.deadline < date: # raise serializers.ValidationError("You cannot submit homework after the deadline") diff --git a/src/homework/views.py b/src/homework/views.py index 86a64efa89f5533d2264f6c65abb43eb9d0c4623..263483e2d3b38e41357c775ab66ce026faadedc8 100644 --- a/src/homework/views.py +++ b/src/homework/views.py @@ -26,7 +26,6 @@ class SolutionsViewSet(viewsets.ModelViewSet): def perform_create(self, serializer): serializer.validated_data['accepted'] = False task = serializer.validated_data['task'] - # task = get_object_or_404(models.Task, pk=task_id.id) now = timezone.now() if task.deadline < now: raise Http404("Deadline")