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): ...@@ -12,7 +12,11 @@ class GroupChoice(models.Model):
('HAT', 'Hallgatói Tudásbázis'), ('HAT', 'Hallgatói Tudásbázis'),
('N', 'None'), ('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): def __str__(self):
return self.choice return self.choice
...@@ -32,18 +36,20 @@ class Profile(models.Model): ...@@ -32,18 +36,20 @@ class Profile(models.Model):
related_name='profile', related_name='profile',
on_delete=models.CASCADE on_delete=models.CASCADE
) )
# TODO: Change the default to json render side
motivation_about = models.TextField(blank=True, default='') motivation_about = models.TextField(blank=True, default='')
motivation_profession = models.TextField(blank=True, default='') motivation_profession = models.TextField(blank=True, default='')
motivation_exercise = models.TextField(blank=True, default='') motivation_exercise = models.TextField(blank=True, default='')
nick = models.CharField(max_length=15, blank=True, default='') nick = models.CharField(max_length=15, blank=True, default='')
signed = models.BooleanField(default=False, null=False) 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') role = models.CharField(max_length=10, choices=ROLES, default='Applicant')
@property @property
def score(self): 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 @property
def full_name(self): def full_name(self):
......
...@@ -11,7 +11,10 @@ class ChoiceSerializer(serializers.ModelSerializer): ...@@ -11,7 +11,10 @@ class ChoiceSerializer(serializers.ModelSerializer):
class ProfileSerializer_User(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) updated_at = serializers.DateTimeField(read_only=True)
full_name = serializers.SerializerMethodField() full_name = serializers.SerializerMethodField()
...@@ -36,17 +39,18 @@ class ProfileSerializer_User(serializers.ModelSerializer): ...@@ -36,17 +39,18 @@ class ProfileSerializer_User(serializers.ModelSerializer):
def validate_updated_at(self, value): def validate_updated_at(self, value):
deadline = models.Deadline.get_solo().deadline deadline = models.Deadline.get_solo().deadline
if deadline is not None and value > 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 return value
def validate_role(self, value): def validate_role(self, value):
modifier_role = CurrentUserMiddleware.get_current_user_profile().role modifier_role = CurrentUserMiddleware.get_current_user_profile().role
if value != modifier_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 return value
def validate_signed(self, value): def validate_signed(self, value):
modifier = CurrentUserMiddleware.get_current_user_profile()
if value is False: if value is False:
raise serializers.ValidationError("You cannot join without signed") raise serializers.ValidationError("You cannot join without signed")
return value return value
...@@ -63,8 +67,12 @@ class ProfileSerializer_User(serializers.ModelSerializer): ...@@ -63,8 +67,12 @@ class ProfileSerializer_User(serializers.ModelSerializer):
def get_full_name(self, obj): def get_full_name(self, obj):
return obj.full_name return obj.full_name
class ProfileSerializer_Staff(serializers.ModelSerializer): 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) updated_at = serializers.DateTimeField(read_only=True)
full_name = serializers.SerializerMethodField() full_name = serializers.SerializerMethodField()
...@@ -89,7 +97,8 @@ class ProfileSerializer_Staff(serializers.ModelSerializer): ...@@ -89,7 +97,8 @@ class ProfileSerializer_Staff(serializers.ModelSerializer):
def validate_updated_at(self, value): def validate_updated_at(self, value):
deadline = models.Deadline.get_solo().deadline deadline = models.Deadline.get_solo().deadline
if deadline is not None and value > 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 return value
def validate_role(self, value): def validate_role(self, value):
...@@ -108,4 +117,4 @@ class ProfileSerializer_Staff(serializers.ModelSerializer): ...@@ -108,4 +117,4 @@ class ProfileSerializer_Staff(serializers.ModelSerializer):
return super().update(instance, validated_data) return super().update(instance, validated_data)
def get_full_name(self, obj): def get_full_name(self, obj):
return obj.full_name return obj.full_name
\ No newline at end of file
...@@ -12,11 +12,20 @@ class DocumentSerializer(serializers.ModelSerializer): ...@@ -12,11 +12,20 @@ class DocumentSerializer(serializers.ModelSerializer):
class Meta: class Meta:
model = models.Document 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): def to_representation(self, instance):
data = super().to_representation(instance) data = super().to_representation(instance)
if not data['file']: data['file']= "" if not data['file']:
data['file'] = ""
return data return data
def get_uploaded_by_name(self, obj): def get_uploaded_by_name(self, obj):
...@@ -26,8 +35,11 @@ class DocumentSerializer(serializers.ModelSerializer): ...@@ -26,8 +35,11 @@ class DocumentSerializer(serializers.ModelSerializer):
profile = CurrentUserMiddleware.get_current_user_profile() profile = CurrentUserMiddleware.get_current_user_profile()
if value not in profile.solution.all(): if value not in profile.solution.all():
raise serializers.ValidationError('You dont have permission!') 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: if count >= _max_count:
raise serializers.ValidationError('You cant upload more than ' + str(_max_count) + raise serializers.ValidationError(
' document to one solution!') 'You cant upload more than ' +
str(_max_count) +
' document to one solution!')
return value return value
...@@ -14,19 +14,28 @@ class TaskSerializer(serializers.ModelSerializer): ...@@ -14,19 +14,28 @@ class TaskSerializer(serializers.ModelSerializer):
def validate(self, data): def validate(self, data):
if timezone.now() >= data['deadline']: if timezone.now() >= data['deadline']:
raise serializers.ValidationError('Please, enter appropriate deadline.') raise serializers.ValidationError(
'Please, enter appropriate deadline.')
return data return data
def create(self, validated_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: for profile in profiles:
email.new_homework(profile.user, validated_data.get('deadline')) email.new_homework(profile.user, validated_data.get('deadline'))
return self.Meta.model.objects.create(**validated_data) return self.Meta.model.objects.create(**validated_data)
class SolutionSerializer_Student(serializers.ModelSerializer): class SolutionSerializer_Student(serializers.ModelSerializer):
class Meta: class Meta:
model = models.Solution 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 = ( fields = (
'id', 'id',
'task', 'task',
...@@ -45,18 +54,22 @@ class SolutionSerializer_Student(serializers.ModelSerializer): ...@@ -45,18 +54,22 @@ class SolutionSerializer_Student(serializers.ModelSerializer):
return value return value
def validate_accepted(self, 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): 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): def validate_note(self, value):
if 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 return value
def update(self, instance, validated_data): 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( email.homework_corrected(
instance.created_by.user, instance.created_by.user,
instance.task.title, instance.task.title,
...@@ -66,13 +79,21 @@ class SolutionSerializer_Student(serializers.ModelSerializer): ...@@ -66,13 +79,21 @@ class SolutionSerializer_Student(serializers.ModelSerializer):
def create(self, validated_data): def create(self, validated_data):
profile = CurrentUserMiddleware.get_current_user_profile() 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) return super().create(validated_data)
class SolutionSerializer_Staff(serializers.ModelSerializer): class SolutionSerializer_Staff(serializers.ModelSerializer):
class Meta: class Meta:
model = models.Solution 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 = ( fields = (
'id', 'id',
'task', 'task',
...@@ -100,7 +121,8 @@ class SolutionSerializer_Staff(serializers.ModelSerializer): ...@@ -100,7 +121,8 @@ class SolutionSerializer_Staff(serializers.ModelSerializer):
return value return value
def update(self, instance, validated_data): 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( email.homework_corrected(
instance.created_by.user, instance.created_by.user,
instance.task.title, instance.task.title,
...@@ -110,5 +132,7 @@ class SolutionSerializer_Staff(serializers.ModelSerializer): ...@@ -110,5 +132,7 @@ class SolutionSerializer_Staff(serializers.ModelSerializer):
def create(self, validated_data): def create(self, validated_data):
profile = CurrentUserMiddleware.get_current_user_profile() profile = CurrentUserMiddleware.get_current_user_profile()
models.Solution.objects.filter(created_by=profile, task=validated_data['task']).delete() models.Solution.objects.filter(
return super().create(validated_data) created_by=profile,
\ No newline at end of file task=validated_data['task']).delete()
return super().create(validated_data)
...@@ -8,7 +8,11 @@ from common import permissions ...@@ -8,7 +8,11 @@ from common import permissions
class TasksViewSet(viewsets.ModelViewSet): class TasksViewSet(viewsets.ModelViewSet):
serializer_class = serializers.TaskSerializer serializer_class = serializers.TaskSerializer
queryset = models.Task.objects.all() queryset = models.Task.objects.all()
permission_classes = (permissions.IsStaffOrReadOnlyForAuthenticated, permissions.IsStaffOrStudent, ) permission_classes = (
permissions.IsStaffOrReadOnlyForAuthenticated,
permissions.IsStaffOrStudent,
)
class SolutionsViewSet(viewsets.ModelViewSet): class SolutionsViewSet(viewsets.ModelViewSet):
serializer_class = serializers.SolutionSerializer_Student serializer_class = serializers.SolutionSerializer_Student
......
...@@ -22,7 +22,8 @@ class StaffEventSerializer(serializers.ModelSerializer): ...@@ -22,7 +22,8 @@ class StaffEventSerializer(serializers.ModelSerializer):
if 'absent' in data and 'visitors' in data: if 'absent' in data and 'visitors' in data:
for i in data['absent']: for i in data['absent']:
if i in data['visitors']: 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 return data
...@@ -39,9 +40,11 @@ class NoteSerializer(serializers.ModelSerializer): ...@@ -39,9 +40,11 @@ class NoteSerializer(serializers.ModelSerializer):
def to_representation(self, instance): def to_representation(self, instance):
data = super().to_representation(instance) data = super().to_representation(instance)
if not data['event']: data['event']= "" if not data['event']:
if not data['profile']: data['profile']= "" data['event'] = ""
if not data['profile']:
data['profile'] = ""
return data return data
class Meta: class Meta:
...@@ -54,5 +57,6 @@ class NoteSerializer(serializers.ModelSerializer): ...@@ -54,5 +57,6 @@ class NoteSerializer(serializers.ModelSerializer):
def validate(self, data): def validate(self, data):
if data['profile'] is None and data['event'] is None: 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 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