Skip to content

Commit d61f0be

Browse files
committed
Send email when user verification is completed
1 parent dd7b147 commit d61f0be

3 files changed

Lines changed: 56 additions & 0 deletions

File tree

users/admin.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
from django.conf import settings
22
from django.contrib import admin
33

4+
from .helpers import send_verification_completed_email
45
from .models import CustomUser, UserAchievement, Member, Mentor, Expert, Investor
56

67

@@ -125,6 +126,10 @@ def save_model(self, request, obj, form, change):
125126
if settings.DEBUG:
126127
obj.is_active = True
127128

129+
# if user has just been confirmed
130+
if obj.verification_date != old_user.verification_date:
131+
send_verification_completed_email(obj)
132+
128133
super().save_model(request, obj, form, change)
129134

130135

users/helpers.py

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
from django.contrib.auth import get_user_model
12
from rest_framework_simplejwt.tokens import RefreshToken
23
from django.contrib.sites.shortcuts import get_current_site
34
from django.urls import reverse
@@ -6,6 +7,8 @@
67
from users.constants import PROTOCOL
78
from users.models import UserAchievement
89

10+
User = get_user_model()
11+
912

1013
def reset_email(user, request):
1114
access_token = RefreshToken.for_user(user).access_token
@@ -65,6 +68,29 @@ def verify_email(user, request):
6568
Email.send_email(data)
6669

6770

71+
def send_verification_completed_email(user: User):
72+
# fixme
73+
email_body = (
74+
f"Поздравляю тебя, {user.first_name} {user.last_name}! Ты прошел верификацию и"
75+
f" стал частью сообщества PROCOLLAB!"
76+
f"Теперь ты сможешь пользоваться всем функционалом платформы, создавать проекты,"
77+
f" искать команду, находить нужные мероприятия."
78+
f"Следи за анонсами обновлений в нашей группе в ВК https://vk.com/PROCOLLAB "
79+
f"И скорее переходи на саму платформу, чтобы уже сегодня начать создавать свой проект."
80+
f"https://procollab.ru "
81+
f"С уважением, "
82+
f"Администрация PROCOLLAB"
83+
)
84+
85+
data = {
86+
"email_body": email_body,
87+
"email_subject": "Procollab | Верификация",
88+
"to_email": user.email,
89+
}
90+
91+
Email.send_email(data)
92+
93+
6894
def update_achievements(achievements, pk):
6995
# delete all old achievements
7096
UserAchievement.objects.filter(user_id=pk).delete()
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
# Generated by Django 4.1.3 on 2023-05-06 13:48
2+
3+
from django.db import migrations, models
4+
5+
6+
class Migration(migrations.Migration):
7+
8+
dependencies = [
9+
("users", "0034_alter_customuser_onboarding_stage"),
10+
]
11+
12+
operations = [
13+
migrations.AlterField(
14+
model_name="customuser",
15+
name="onboarding_stage",
16+
field=models.PositiveSmallIntegerField(
17+
blank=True,
18+
default=0,
19+
editable=False,
20+
help_text="0, 1, 2 - номера стадий онбординга, null(пустое) - онбординг пройден",
21+
null=True,
22+
verbose_name="Стадия онбординга",
23+
),
24+
),
25+
]

0 commit comments

Comments
 (0)