Skip to content
Snippets Groups Projects
Commit 456ffcf4 authored by Bodor Máté's avatar Bodor Máté
Browse files

update model & deadline validation

parent fd150887
No related branches found
No related tags found
No related merge requests found
......@@ -16,10 +16,6 @@ def validate_deadline(date):
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))
class Task(models.Model):
title = models.CharField(max_length=150)
date = models.DateTimeField(auto_now_add=True, editable=False)
......@@ -34,17 +30,9 @@ class Task(models.Model):
)],
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 clean(self):
# if self.deadline <= timezone.now():
# raise ValidationError(_('Invalid date'), code='invalid')
def __str__(self):
return self.title
class Solution(models.Model):
......@@ -62,8 +50,3 @@ class Solution(models.Model):
blank=True,
)
created_by = models.ForeignKey(User, on_delete=models.CASCADE)
# files = myfields.RestrictedFileField(
# content_types=['image/png', 'image/jpeg', 'application/zip'],
# max_upload_size=MAX_UPLOAD_SIZE,
# blank=True,
# )
......@@ -37,4 +37,3 @@ class IsStaffUser(BasePermission):
def has_permission(self, request, view):
return request.user.is_staff
\ No newline at end of file
......@@ -17,11 +17,11 @@ class SolutionSerializer(serializers.ModelSerializer):
extra_kwargs = {'created_by': {'default': serializers.CurrentUserDefault()}}
fields = ('task', 'date', 'accepted', 'files', 'created_by')
def validate(self, attrs):
task = attrs['task']
date = attrs['date']
if task.deadline < date:
raise serializers.ValidationError("You cannot submit homework after the deadline")
return attrs
# def validate(self, attrs):
# task = attrs['task']
# date = attrs['date']
#
# if task.deadline < date:
# raise serializers.ValidationError("You cannot submit homework after the deadline")
#
# return attrs
......@@ -4,6 +4,8 @@ from rest_framework import status
from rest_framework.decorators import list_route
from django.http import Http404
from django.shortcuts import get_object_or_404
import datetime
from django.utils.timezone import utc
from . import serializers
from . import models
......@@ -21,24 +23,21 @@ class SolutionsViewSet(viewsets.ModelViewSet):
queryset = models.Solution.objects.all()
permission_classes = (permissions.IsStaffOrReadOnlyForAuthenticated, )
def create(self, request, *args, **kwargs):
serializer = self.get_serializer(data=request.data)
serializer.is_valid(raise_exception=True)
# serializer.validated_data['accepted'] = False
# task_id = serializer.validated_data.get('task')
# date = serializer.validated_data['date']
# task = get_object_or_404(models.Task, pk=task_id)
# if task_id.deadline < date:
# return Http404("Deadline")
headers = self.get_success_headers(serializer.data)
return Response(serializer.data, status=status.HTTP_201_CREATED, headers=headers)
def get_queryset(self):
user = self.request.user
if user.has_perm(permissions.IsStaffUser):
return models.Solution.objects.all()
@list_route(methods=['get'])
def me(self, request):
serializer = self.serializer_class(request.user.profile) #request ?
return Response(serializer.data)
\ No newline at end of file
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 = datetime.datetime.utcnow().replace(tzinfo=utc)
if task.deadline < now:
raise Http404("Deadline")
serializer.save()
# def get_queryset(self):
# user = self.request.user
# if user.has_perm(permissions.IsStaffUser):
# return models.Solution.objects.all()
#
# @list_route(methods=['get'])
# def me(self, request):
# serializer = self.serializer_class(request.user.profile) #request ?
# return Response(serializer.data)
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment