diff --git a/src/account/auth_pipeline.py b/src/account/auth_pipeline.py index 571b46db2034efde46049b5aa74b7faa76534b09..34ca0180920054311bbad8835511cac3ae367065 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 64c1452f1f04955140316d6925acc7172895754b..082a83c98de9be5d956af810734422ca9897c1c7 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 460feb7eda39f2952bf8734127cf839673df2ff1..e38ad58cb689559fb56cb78a93e94631401e0ecc 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 0000000000000000000000000000000000000000..f719168dc8c3c64344246577ec5f2ec4d30a4645 --- /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 0000000000000000000000000000000000000000..b085e7a886dee3306df419745fd40ccae023e2c7 --- /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 0000000000000000000000000000000000000000..0128e57221ea25fd7dc69c1bff505cc817a08112 --- /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 0000000000000000000000000000000000000000..9a6618346dc6ca140dd69b0eaa3238676fcebe7f --- /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 0000000000000000000000000000000000000000..f9068e283264a6509bf534bc4c7e7a2c677cd432 --- /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 9afed2745cd470f96a4e6a7aacce9e540eaf32c2..c6e4fde20ad2289c20456d7e5a7909bc47c87f2b 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 cff6e5281ffe33392e8ed0dc92c5aa453341aca2..9a9d88c415e5b6182a6707bdcfb32db355f7d05a 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):