Newer
Older
class TaskSerializer(serializers.ModelSerializer):
class Meta:
model = models.Task
read_only_fields = ('created_by', 'created_at', 'updated_at')
def validate(self, data):
if timezone.now() >= data['deadline']:
raise serializers.ValidationError(
'Please, enter appropriate deadline.')
profiles = Profile.objects.filter(
role="Student").exclude(
user__email='')
for profile in profiles:
email.new_homework(profile.user, validated_data.get('deadline'))
return self.Meta.model.objects.create(**validated_data)
class SolutionSerializer_Student(serializers.ModelSerializer):
read_only_fields = (
'created_by',
'created_at',
'updated_at',
'ready',
'files')
'task',
'created_at',
'updated_at',
'accepted',
'files',
'created_by',
'corrected',
'note',
)
def validate_task(self, value):
if timezone.now() > value.deadline:
raise serializers.ValidationError('You late.')
return value
def validate_note(self, value):
if value != '':
raise serializers.ValidationError(
"You don't have permission to create note!")
return value
def update(self, instance, validated_data):
if instance.corrected is not True and validated_data.get(
'corrected', instance.corrected) is True:
email.homework_corrected(
instance.created_by.user,
instance.task.title,
validated_data.get('accepted', instance.accepted)
)
return super().update(instance, validated_data)
def create(self, validated_data):
profile = self.context['request'].user.profile
models.Solution.objects.filter(
created_by=profile,
task=validated_data['task']).delete()
return super().create(validated_data)
class SolutionSerializer_Staff(serializers.ModelSerializer):
class Meta:
model = models.Solution
read_only_fields = (
'created_by',
'created_at',
'updated_at',
'ready',
'files')
fields = (
'id',
'task',
'created_at',
'updated_at',
'accepted',
'files',
'created_by',
'corrected',
'note',
)
def validate_task(self, value):
if timezone.now() > value.deadline:
raise serializers.ValidationError('You late.')
return value
def update(self, instance, validated_data):
if instance.corrected is not True and validated_data.get(
'corrected', instance.corrected) is True:
email.homework_corrected(
instance.created_by.user,
instance.task.title,
validated_data.get('accepted', instance.accepted)
)
return super().update(instance, validated_data)
def create(self, validated_data):
profile = self.context['request'].user.profile
models.Solution.objects.filter(
created_by=profile,
task=validated_data['task']).delete()
return super().create(validated_data)