From 8840538c5b9a3b43e60e25bd9ec982fbe641f7ef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bodor=20M=C3=A1t=C3=A9?= <bodor.mate@kszk.bme.hu> Date: Thu, 31 Jan 2019 18:10:55 +0100 Subject: [PATCH] Create emails --- src/account/auth_pipeline.py | 4 ++-- src/account/models.py | 2 +- src/account/serializers.py | 4 ++-- src/common/emails/admitted.txt | 6 ++++++ src/common/emails/denied.txt | 6 ++++++ src/common/emails/homework_corrected.txt | 7 +++++++ src/common/emails/new_homework.txt | 7 +++++++ src/common/emails/registration.txt | 10 ++++++++++ src/homework/serializers.py | 12 +++++++++--- src/homework/views.py | 2 +- 10 files changed, 51 insertions(+), 9 deletions(-) create mode 100644 src/common/emails/admitted.txt create mode 100644 src/common/emails/denied.txt create mode 100644 src/common/emails/homework_corrected.txt create mode 100644 src/common/emails/new_homework.txt create mode 100644 src/common/emails/registration.txt diff --git a/src/account/auth_pipeline.py b/src/account/auth_pipeline.py index 571b46d..34ca018 100644 --- a/src/account/auth_pipeline.py +++ b/src/account/auth_pipeline.py @@ -1,5 +1,5 @@ from django.core import exceptions -from common.email import registration +from common import email from . import models @@ -11,4 +11,4 @@ def create_profile(backend, user, response, *args, **kwargs): except exceptions.ObjectDoesNotExist: models.Profile.objects.create(user=user) if user.email is not None: - registration(user.email) + email.registration(user) diff --git a/src/account/models.py b/src/account/models.py index 64c1452..082a83c 100644 --- a/src/account/models.py +++ b/src/account/models.py @@ -30,7 +30,7 @@ class Profile(models.Model): user = models.OneToOneField( User, 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='') diff --git a/src/account/serializers.py b/src/account/serializers.py index 460feb7..e38ad58 100644 --- a/src/account/serializers.py +++ b/src/account/serializers.py @@ -54,9 +54,9 @@ class ProfileSerializer(serializers.ModelSerializer): new_role = validated_data.get('role', instance.role) if instance.role != new_role: if new_role == 'Student': - email.admitted(instance.user.email) + email.admitted(instance.user) if new_role == 'Denied': - email.denied(instance.user.email) + email.denied(instance.user) return super().update(instance, validated_data) def get_full_name(self, obj): diff --git a/src/common/emails/admitted.txt b/src/common/emails/admitted.txt new file mode 100644 index 0000000..f719168 --- /dev/null +++ b/src/common/emails/admitted.txt @@ -0,0 +1,6 @@ +ďťżKedves %(name)s! + +GratulĂĄlunk! JelentkezĂŠsedet elfogadtuk! InnentĹl kezdve aktĂvan figyeld leveleidet, mert hamarosan megkapod az elsĹ kĂŠpzĂŠsalkalmunkra szĂłlĂł meghĂvĂłdat! + +ĂdvĂśzlettel: +A mentorok \ No newline at end of file diff --git a/src/common/emails/denied.txt b/src/common/emails/denied.txt new file mode 100644 index 0000000..b085e7a --- /dev/null +++ b/src/common/emails/denied.txt @@ -0,0 +1,6 @@ +ďťżKedves %(name)s! + +Sajnos - hely hiĂĄnyĂĄban - idei kĂŠpzĂŠsalkamunkon nem tudsz rĂŠszt venni. Ne csĂźggedj, kĂśvetkezĹ ĂŠvben is indĂtunk ilyen programot, ĂŠs ha addig is szorgalmasan tevĂŠkenykedsz, akkor biztosan be fogsz kerĂźlni! + +ĂdvĂśzlettel: +A mentorok \ No newline at end of file diff --git a/src/common/emails/homework_corrected.txt b/src/common/emails/homework_corrected.txt new file mode 100644 index 0000000..0128e57 --- /dev/null +++ b/src/common/emails/homework_corrected.txt @@ -0,0 +1,7 @@ +ďťżKedves %(name)s! + +A(z) %(title)s cĂmĹą hĂĄzi feladatod stĂĄtusza %(status)s lett. +Az alĂĄbbi linken tudod megtekinteni a rĂŠszleteket: %(link)s . + +ĂdvĂśzlettel: +A mentorok \ No newline at end of file diff --git a/src/common/emails/new_homework.txt b/src/common/emails/new_homework.txt new file mode 100644 index 0000000..9a66183 --- /dev/null +++ b/src/common/emails/new_homework.txt @@ -0,0 +1,7 @@ +ďťżKedves %(name)s! + +Ăj hĂĄzi feladat kerĂźlt kiadĂĄsra, melyet az alĂĄbbi linken tudsz megtekinteni: %(link)s +HatĂĄridĹ: %(deadline)s + +Sok sikert! +A mentorok \ No newline at end of file diff --git a/src/common/emails/registration.txt b/src/common/emails/registration.txt new file mode 100644 index 0000000..f9068e2 --- /dev/null +++ b/src/common/emails/registration.txt @@ -0,0 +1,10 @@ +ďťżKedves %(name)s! + +ĂrĂśmmel vettĂźk jelenkezĂŠsedet az idei KSZKĂŠpzĂŠs programunkba. Azonban ahhoz, hogy ezt el is tudjuk bĂrĂĄlni, mĂŠg szĂźksĂŠgĂźnk van pĂĄr dologra tĹled: + - ki kell tĂśltened a profilodat, + - talĂĄlsz pĂĄr feladatot is az oldalon, ezeket meg kell oldanod, + - gyere el ĂjoncdĂŠlutĂĄnunkra, errĹl majd mĂŠg kĂźldĂźnk emailt. +A feladatokhoz jĂł szĂłrakozĂĄst kĂvĂĄnunk, ĂŠs ne ijedj meg, ha valamit nem tudsz fejbĹl, Google-t ĂŠs egyĂŠb segĂtsĂŠget termĂŠszetesen hasznĂĄlhatsz! + +ĂdvĂśzlettel: +A mentorok diff --git a/src/homework/serializers.py b/src/homework/serializers.py index 9afed27..c6e4fde 100755 --- a/src/homework/serializers.py +++ b/src/homework/serializers.py @@ -18,8 +18,9 @@ class TaskSerializer(serializers.ModelSerializer): return data def create(self, validated_data): - emails = Profile.objects.filter(role="Student").exclude(user__email='').values_list('user__email', flat=True) - email.new_homework(emails) + 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) @@ -64,10 +65,15 @@ class SolutionSerializer(serializers.ModelSerializer): def update(self, instance, validated_data): if instance.corrected == False and validated_data.get('corrected', instance.corrected) == True: - email.homework_corrected(instance.created_by.user.email) + 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 = CurrentUserMiddleware.get_current_user_profile() models.Solution.objects.filter(created_by=profile, task=validated_data['task']).delete() return super().create(validated_data) + diff --git a/src/homework/views.py b/src/homework/views.py index cff6e52..9a9d88c 100755 --- a/src/homework/views.py +++ b/src/homework/views.py @@ -8,7 +8,7 @@ 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): -- GitLab