Skip to content
Snippets Groups Projects
Commit 3d95392b authored by Rafael László's avatar Rafael László :speech_balloon:
Browse files

flake8 fix

parent 47fd0b3e
No related branches found
No related tags found
1 merge request!2Dev
......@@ -12,7 +12,11 @@ class GroupChoice(models.Model):
('HAT', 'Hallgatói Tudásbázis'),
('N', 'None'),
)
choice = models.CharField(max_length=10, choices=TEAMS, default='N', unique=True)
choice = models.CharField(
max_length=10,
choices=TEAMS,
default='N',
unique=True)
def __str__(self):
return self.choice
......@@ -32,18 +36,20 @@ class Profile(models.Model):
related_name='profile',
on_delete=models.CASCADE
)
# TODO: Change the default to json render side
motivation_about = models.TextField(blank=True, default='')
motivation_profession = models.TextField(blank=True, default='')
motivation_exercise = models.TextField(blank=True, default='')
nick = models.CharField(max_length=15, blank=True, default='')
signed = models.BooleanField(default=False, null=False)
groups = models.ManyToManyField(GroupChoice, related_name='profiles', blank=True)
groups = models.ManyToManyField(
GroupChoice, related_name='profiles', blank=True)
role = models.CharField(max_length=10, choices=ROLES, default='Applicant')
@property
def score(self):
return self.events_visitor.all().count()*10 + self.solution.filter(accepted=True).count()*50
return self.events_visitor.all().count() * 10 + \
self.solution.filter(accepted=True).count() * 50
@property
def full_name(self):
......
......@@ -11,7 +11,10 @@ class ChoiceSerializer(serializers.ModelSerializer):
class ProfileSerializer_User(serializers.ModelSerializer):
groups = serializers.SlugRelatedField(many=True, slug_field='choice', queryset=models.GroupChoice.objects.all())
groups = serializers.SlugRelatedField(
many=True,
slug_field='choice',
queryset=models.GroupChoice.objects.all())
updated_at = serializers.DateTimeField(read_only=True)
full_name = serializers.SerializerMethodField()
......@@ -36,17 +39,18 @@ class ProfileSerializer_User(serializers.ModelSerializer):
def validate_updated_at(self, value):
deadline = models.Deadline.get_solo().deadline
if deadline is not None and value > deadline:
raise serializers.ValidationError("You cannot join after the deadline")
raise serializers.ValidationError(
"You cannot join after the deadline")
return value
def validate_role(self, value):
modifier_role = CurrentUserMiddleware.get_current_user_profile().role
if value != modifier_role:
raise serializers.ValidationError("You don't have permission change role")
raise serializers.ValidationError(
"You don't have permission change role")
return value
def validate_signed(self, value):
modifier = CurrentUserMiddleware.get_current_user_profile()
if value is False:
raise serializers.ValidationError("You cannot join without signed")
return value
......@@ -63,8 +67,12 @@ class ProfileSerializer_User(serializers.ModelSerializer):
def get_full_name(self, obj):
return obj.full_name
class ProfileSerializer_Staff(serializers.ModelSerializer):
groups = serializers.SlugRelatedField(many=True, slug_field='choice', queryset=models.GroupChoice.objects.all())
groups = serializers.SlugRelatedField(
many=True,
slug_field='choice',
queryset=models.GroupChoice.objects.all())
updated_at = serializers.DateTimeField(read_only=True)
full_name = serializers.SerializerMethodField()
......@@ -89,7 +97,8 @@ class ProfileSerializer_Staff(serializers.ModelSerializer):
def validate_updated_at(self, value):
deadline = models.Deadline.get_solo().deadline
if deadline is not None and value > deadline:
raise serializers.ValidationError("You cannot join after the deadline")
raise serializers.ValidationError(
"You cannot join after the deadline")
return value
def validate_role(self, value):
......@@ -108,4 +117,4 @@ class ProfileSerializer_Staff(serializers.ModelSerializer):
return super().update(instance, validated_data)
def get_full_name(self, obj):
return obj.full_name
\ No newline at end of file
return obj.full_name
......@@ -12,11 +12,20 @@ class DocumentSerializer(serializers.ModelSerializer):
class Meta:
model = models.Document
fields = ('uploaded_by', 'uploaded_at', 'name', 'description', 'file', 'uploaded_by_name', 'solution', )
fields = (
'uploaded_by',
'uploaded_at',
'name',
'description',
'file',
'uploaded_by_name',
'solution',
)
def to_representation(self, instance):
data = super().to_representation(instance)
if not data['file']: data['file']= ""
if not data['file']:
data['file'] = ""
return data
def get_uploaded_by_name(self, obj):
......@@ -26,8 +35,11 @@ class DocumentSerializer(serializers.ModelSerializer):
profile = CurrentUserMiddleware.get_current_user_profile()
if value not in profile.solution.all():
raise serializers.ValidationError('You dont have permission!')
count = models.Document.objects.filter(uploaded_by=profile, solution=value).count()
count = models.Document.objects.filter(
uploaded_by=profile, solution=value).count()
if count >= _max_count:
raise serializers.ValidationError('You cant upload more than ' + str(_max_count) +
' document to one solution!')
raise serializers.ValidationError(
'You cant upload more than ' +
str(_max_count) +
' document to one solution!')
return value
......@@ -14,19 +14,28 @@ class TaskSerializer(serializers.ModelSerializer):
def validate(self, data):
if timezone.now() >= data['deadline']:
raise serializers.ValidationError('Please, enter appropriate deadline.')
raise serializers.ValidationError(
'Please, enter appropriate deadline.')
return data
def create(self, validated_data):
profiles = Profile.objects.filter(role="Student").exclude(user__email='')
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):
class Meta:
model = models.Solution
read_only_fields = ('created_by', 'created_at', 'updated_at', 'ready', 'files')
read_only_fields = (
'created_by',
'created_at',
'updated_at',
'ready',
'files')
fields = (
'id',
'task',
......@@ -45,18 +54,22 @@ class SolutionSerializer_Student(serializers.ModelSerializer):
return value
def validate_accepted(self, value):
raise serializers.ValidationError("You don't have permission to modify accepted!")
raise serializers.ValidationError(
"You don't have permission to modify accepted!")
def validate_corrected(self, value):
raise serializers.ValidationError("You don't have permission to modify corrected!")
raise serializers.ValidationError(
"You don't have permission to modify corrected!")
def validate_note(self, value):
if value != '':
raise serializers.ValidationError("You don't have permission to create note!")
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:
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,
......@@ -66,13 +79,21 @@ class SolutionSerializer_Student(serializers.ModelSerializer):
def create(self, validated_data):
profile = CurrentUserMiddleware.get_current_user_profile()
models.Solution.objects.filter(created_by=profile, task=validated_data['task']).delete()
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')
read_only_fields = (
'created_by',
'created_at',
'updated_at',
'ready',
'files')
fields = (
'id',
'task',
......@@ -100,7 +121,8 @@ class SolutionSerializer_Staff(serializers.ModelSerializer):
return value
def update(self, instance, validated_data):
if instance.corrected is not True and validated_data.get('corrected', instance.corrected) is True:
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,
......@@ -110,5 +132,7 @@ class SolutionSerializer_Staff(serializers.ModelSerializer):
def create(self, validated_data):
profile = CurrentUserMiddleware.get_current_user_profile()
models.Solution.objects.filter(created_by=profile, task=validated_data['task']).delete()
return super().create(validated_data)
\ No newline at end of file
models.Solution.objects.filter(
created_by=profile,
task=validated_data['task']).delete()
return super().create(validated_data)
......@@ -8,7 +8,11 @@ from common import permissions
class TasksViewSet(viewsets.ModelViewSet):
serializer_class = serializers.TaskSerializer
queryset = models.Task.objects.all()
permission_classes = (permissions.IsStaffOrReadOnlyForAuthenticated, permissions.IsStaffOrStudent, )
permission_classes = (
permissions.IsStaffOrReadOnlyForAuthenticated,
permissions.IsStaffOrStudent,
)
class SolutionsViewSet(viewsets.ModelViewSet):
serializer_class = serializers.SolutionSerializer_Student
......
......@@ -22,7 +22,8 @@ class StaffEventSerializer(serializers.ModelSerializer):
if 'absent' in data and 'visitors' in data:
for i in data['absent']:
if i in data['visitors']:
raise serializers.ValidationError('You cant add a student to absent and visitor in the same time.')
raise serializers.ValidationError(
'You cant add a student to absent and visitor in the same time.')
return data
......@@ -39,9 +40,11 @@ class NoteSerializer(serializers.ModelSerializer):
def to_representation(self, instance):
data = super().to_representation(instance)
if not data['event']: data['event']= ""
if not data['profile']: data['profile']= ""
if not data['event']:
data['event'] = ""
if not data['profile']:
data['profile'] = ""
return data
class Meta:
......@@ -54,5 +57,6 @@ class NoteSerializer(serializers.ModelSerializer):
def validate(self, data):
if data['profile'] is None and data['event'] is None:
raise serializers.ValidationError('You have to add profile or event')
raise serializers.ValidationError(
'You have to add profile or event')
return data
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