Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions users/admin.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
from django.conf import settings
from django.contrib import admin

from .helpers import send_verification_completed_email
from .models import CustomUser, UserAchievement, Member, Mentor, Expert, Investor


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

# if user has just been confirmed
if obj.verification_date != old_user.verification_date:
send_verification_completed_email(obj)

super().save_model(request, obj, form, change)


Expand Down
26 changes: 26 additions & 0 deletions users/helpers.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
from django.contrib.auth import get_user_model
from rest_framework_simplejwt.tokens import RefreshToken
from django.contrib.sites.shortcuts import get_current_site
from django.urls import reverse
Expand All @@ -6,6 +7,8 @@
from users.constants import PROTOCOL
from users.models import UserAchievement

User = get_user_model()


def reset_email(user, request):
access_token = RefreshToken.for_user(user).access_token
Expand Down Expand Up @@ -65,6 +68,29 @@ def verify_email(user, request):
Email.send_email(data)


def send_verification_completed_email(user: User):
# fixme
email_body = (
f"Поздравляю тебя, {user.first_name} {user.last_name}! Ты прошел верификацию и"
f" стал частью сообщества PROCOLLAB!"
f"Теперь ты сможешь пользоваться всем функционалом платформы, создавать проекты,"
f" искать команду, находить нужные мероприятия."
f"Следи за анонсами обновлений в нашей группе в ВК https://vk.com/PROCOLLAB "
f"И скорее переходи на саму платформу, чтобы уже сегодня начать создавать свой проект."
f"https://procollab.ru "
f"С уважением, "
f"Администрация PROCOLLAB"
)

data = {
"email_body": email_body,
"email_subject": "Procollab | Верификация",
"to_email": user.email,
}

Email.send_email(data)


def update_achievements(achievements, pk):
# delete all old achievements
UserAchievement.objects.filter(user_id=pk).delete()
Expand Down
25 changes: 25 additions & 0 deletions users/migrations/0035_alter_customuser_onboarding_stage.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# Generated by Django 4.1.3 on 2023-05-06 13:48

from django.db import migrations, models


class Migration(migrations.Migration):

dependencies = [
("users", "0034_alter_customuser_onboarding_stage"),
]

operations = [
migrations.AlterField(
model_name="customuser",
name="onboarding_stage",
field=models.PositiveSmallIntegerField(
blank=True,
default=0,
editable=False,
help_text="0, 1, 2 - номера стадий онбординга, null(пустое) - онбординг пройден",
null=True,
verbose_name="Стадия онбординга",
),
),
]