full
Deploy to Production / deploy-production (push) Successful in 26s
Details
Deploy to Production / deploy-production (push) Successful in 26s
Details
This commit is contained in:
parent
118f33f77b
commit
8c6406269c
|
|
@ -107,35 +107,179 @@ def send_email_notification(notification):
|
|||
|
||||
# Если шаблон не содержит body, используем дефолтный
|
||||
if not email_body:
|
||||
action_button = ''
|
||||
if notification.action_url:
|
||||
action_url = f"{settings.FRONTEND_URL}{notification.action_url}"
|
||||
action_button = f'''
|
||||
<tr>
|
||||
<td style="padding-top: 8px; padding-bottom: 24px; text-align: center;">
|
||||
<table role="presentation" cellspacing="0" cellpadding="0" border="0" align="center">
|
||||
<tr>
|
||||
<td style="background-color: #7444FD; border-radius: 4px;">
|
||||
<a href="{action_url}" style="display: inline-block; padding: 14px 32px; font-size: 16px; font-weight: 500; color: #FFFFFF; text-decoration: none; border-radius: 4px;">
|
||||
Перейти
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
'''
|
||||
|
||||
email_body = f"""
|
||||
<html>
|
||||
<body style="font-family: Arial, sans-serif; max-width: 600px; margin: 0 auto;">
|
||||
<div style="background-color: #f8f9fa; padding: 20px; border-radius: 8px;">
|
||||
<h2 style="color: #333;">{notification.title}</h2>
|
||||
<div style="background-color: white; padding: 20px; border-radius: 8px; margin: 20px 0;">
|
||||
<p style="color: #666; line-height: 1.6;">{notification.message}</p>
|
||||
</div>
|
||||
{f'<a href="{settings.FRONTEND_URL}{notification.action_url}" style="display: inline-block; background-color: #3B82F6; color: white; padding: 12px 24px; text-decoration: none; border-radius: 6px;">Перейти</a>' if notification.action_url else ''}
|
||||
<p style="color: #999; font-size: 12px; margin-top: 20px;">
|
||||
Это автоматическое уведомление от образовательной платформы.
|
||||
<!DOCTYPE html>
|
||||
<html lang="ru">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<!--[if mso]>
|
||||
<style type="text/css">
|
||||
body, table, td {{font-family: Arial, sans-serif !important;}}
|
||||
</style>
|
||||
<![endif]-->
|
||||
</head>
|
||||
<body style="margin: 0; padding: 0; background-color: #FAFAFA; font-family: 'Roboto', -apple-system, BlinkMacSystemFont, 'Segoe UI', Arial, sans-serif;">
|
||||
<table role="presentation" cellspacing="0" cellpadding="0" border="0" width="100%" style="background-color: #FAFAFA;">
|
||||
<tr>
|
||||
<td align="center" style="padding: 40px 20px;">
|
||||
<table role="presentation" cellspacing="0" cellpadding="0" border="0" width="600" style="max-width: 600px; background-color: #FFFFFF; border-radius: 8px; box-shadow: 0 2px 8px rgba(0,0,0,0.1);">
|
||||
<tr>
|
||||
<td style="padding: 40px 40px 30px 40px; text-align: center;">
|
||||
<!-- Стилизованный текстовый логотип uchill -->
|
||||
<table role="presentation" cellspacing="0" cellpadding="0" border="0" align="center">
|
||||
<tr>
|
||||
<td>
|
||||
<span style="display: inline-block; color: #7444FD; letter-spacing: 1px; font-size: 48px; font-weight: 600; line-height: 1.2;">
|
||||
<span style="background-color: #7444FD; color: #ffffff; border-radius: 2px; margin-right: 2px; font-weight: 600; font-size: 48px; display: inline-block; vertical-align: baseline; line-height: 1; padding: 2px 8px; letter-spacing: 0;">u</span><span style="vertical-align: baseline;">chill</span>
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="padding: 0 40px 40px 40px;">
|
||||
<table role="presentation" cellspacing="0" cellpadding="0" border="0" width="100%">
|
||||
<tr>
|
||||
<td style="padding-bottom: 24px;">
|
||||
<h1 style="margin: 0; font-size: 28px; font-weight: 500; color: #212121; line-height: 1.2;">{notification.title}</h1>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="padding-bottom: 24px;">
|
||||
<p style="margin: 0; font-size: 16px; color: #424242; line-height: 1.6;">{notification.message}</p>
|
||||
</td>
|
||||
</tr>
|
||||
{action_button}
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="padding: 30px 40px; background-color: #F5F5F5; border-radius: 0 0 8px 8px; border-top: 1px solid #E0E0E0;">
|
||||
<table role="presentation" cellspacing="0" cellpadding="0" border="0" width="100%">
|
||||
<tr>
|
||||
<td style="text-align: center; font-size: 14px; color: #757575; line-height: 1.6;">
|
||||
<p style="margin: 0 0 10px 0;">С уважением,<br><strong style="color: #7444FD;">Команда Uchill</strong></p>
|
||||
<p style="margin: 10px 0 0 0; font-size: 12px; color: #9E9E9E;">
|
||||
© 2026 Uchill. Все права защищены.
|
||||
</p>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
||||
"""
|
||||
else:
|
||||
# Если есть шаблон, оборачиваем его в базовую HTML структуру, если нужно
|
||||
if not email_body.strip().startswith('<html'):
|
||||
action_button = ''
|
||||
if notification.action_url:
|
||||
action_url = f"{settings.FRONTEND_URL}{notification.action_url}"
|
||||
action_button = f'''
|
||||
<tr>
|
||||
<td style="padding-top: 8px; padding-bottom: 24px; text-align: center;">
|
||||
<table role="presentation" cellspacing="0" cellpadding="0" border="0" align="center">
|
||||
<tr>
|
||||
<td style="background-color: #7444FD; border-radius: 4px;">
|
||||
<a href="{action_url}" style="display: inline-block; padding: 14px 32px; font-size: 16px; font-weight: 500; color: #FFFFFF; text-decoration: none; border-radius: 4px;">
|
||||
Перейти
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
'''
|
||||
|
||||
email_body = f"""
|
||||
<html>
|
||||
<body style="font-family: Arial, sans-serif; max-width: 600px; margin: 0 auto;">
|
||||
<div style="background-color: #f8f9fa; padding: 20px; border-radius: 8px;">
|
||||
<!DOCTYPE html>
|
||||
<html lang="ru">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<!--[if mso]>
|
||||
<style type="text/css">
|
||||
body, table, td {{font-family: Arial, sans-serif !important;}}
|
||||
</style>
|
||||
<![endif]-->
|
||||
</head>
|
||||
<body style="margin: 0; padding: 0; background-color: #FAFAFA; font-family: 'Roboto', -apple-system, BlinkMacSystemFont, 'Segoe UI', Arial, sans-serif;">
|
||||
<table role="presentation" cellspacing="0" cellpadding="0" border="0" width="100%" style="background-color: #FAFAFA;">
|
||||
<tr>
|
||||
<td align="center" style="padding: 40px 20px;">
|
||||
<table role="presentation" cellspacing="0" cellpadding="0" border="0" width="600" style="max-width: 600px; background-color: #FFFFFF; border-radius: 8px; box-shadow: 0 2px 8px rgba(0,0,0,0.1);">
|
||||
<tr>
|
||||
<td style="padding: 40px 40px 30px 40px; text-align: center;">
|
||||
<!-- Стилизованный текстовый логотип uchill -->
|
||||
<table role="presentation" cellspacing="0" cellpadding="0" border="0" align="center">
|
||||
<tr>
|
||||
<td>
|
||||
<span style="display: inline-block; color: #7444FD; letter-spacing: 1px; font-size: 48px; font-weight: 600; line-height: 1.2;">
|
||||
<span style="background-color: #7444FD; color: #ffffff; border-radius: 2px; margin-right: 2px; font-weight: 600; font-size: 48px; display: inline-block; vertical-align: baseline; line-height: 1; padding: 2px 8px; letter-spacing: 0;">u</span><span style="vertical-align: baseline;">chill</span>
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="padding: 0 40px 40px 40px;">
|
||||
<table role="presentation" cellspacing="0" cellpadding="0" border="0" width="100%">
|
||||
<tr>
|
||||
<td style="padding-bottom: 24px;">
|
||||
{email_body}
|
||||
{f'<a href="{settings.FRONTEND_URL}{notification.action_url}" style="display: inline-block; background-color: #3B82F6; color: white; padding: 12px 24px; text-decoration: none; border-radius: 6px; margin-top: 20px;">Перейти</a>' if notification.action_url else ''}
|
||||
<p style="color: #999; font-size: 12px; margin-top: 20px;">
|
||||
Это автоматическое уведомление от образовательной платформы.
|
||||
</td>
|
||||
</tr>
|
||||
{action_button}
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="padding: 30px 40px; background-color: #F5F5F5; border-radius: 0 0 8px 8px; border-top: 1px solid #E0E0E0;">
|
||||
<table role="presentation" cellspacing="0" cellpadding="0" border="0" width="100%">
|
||||
<tr>
|
||||
<td style="text-align: center; font-size: 14px; color: #757575; line-height: 1.6;">
|
||||
<p style="margin: 0 0 10px 0;">С уважением,<br><strong style="color: #7444FD;">Команда Uchill</strong></p>
|
||||
<p style="margin: 10px 0 0 0; font-size: 12px; color: #9E9E9E;">
|
||||
© 2026 Uchill. Все права защищены.
|
||||
</p>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
||||
"""
|
||||
|
|
@ -143,19 +287,93 @@ def send_email_notification(notification):
|
|||
except NotificationTemplate.DoesNotExist:
|
||||
# Если шаблона нет, используем дефолтный
|
||||
email_subject = notification.title
|
||||
|
||||
action_button = ''
|
||||
if notification.action_url:
|
||||
action_url = f"{settings.FRONTEND_URL}{notification.action_url}"
|
||||
action_button = f'''
|
||||
<tr>
|
||||
<td style="padding-top: 8px; padding-bottom: 24px; text-align: center;">
|
||||
<table role="presentation" cellspacing="0" cellpadding="0" border="0" align="center">
|
||||
<tr>
|
||||
<td style="background-color: #7444FD; border-radius: 4px;">
|
||||
<a href="{action_url}" style="display: inline-block; padding: 14px 32px; font-size: 16px; font-weight: 500; color: #FFFFFF; text-decoration: none; border-radius: 4px;">
|
||||
Перейти
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
'''
|
||||
|
||||
email_body = f"""
|
||||
<html>
|
||||
<body style="font-family: Arial, sans-serif; max-width: 600px; margin: 0 auto;">
|
||||
<div style="background-color: #f8f9fa; padding: 20px; border-radius: 8px;">
|
||||
<h2 style="color: #333;">{notification.title}</h2>
|
||||
<div style="background-color: white; padding: 20px; border-radius: 8px; margin: 20px 0;">
|
||||
<p style="color: #666; line-height: 1.6;">{notification.message}</p>
|
||||
</div>
|
||||
{f'<a href="{settings.FRONTEND_URL}{notification.action_url}" style="display: inline-block; background-color: #3B82F6; color: white; padding: 12px 24px; text-decoration: none; border-radius: 6px;">Перейти</a>' if notification.action_url else ''}
|
||||
<p style="color: #999; font-size: 12px; margin-top: 20px;">
|
||||
Это автоматическое уведомление от образовательной платформы.
|
||||
<!DOCTYPE html>
|
||||
<html lang="ru">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<!--[if mso]>
|
||||
<style type="text/css">
|
||||
body, table, td {{font-family: Arial, sans-serif !important;}}
|
||||
</style>
|
||||
<![endif]-->
|
||||
</head>
|
||||
<body style="margin: 0; padding: 0; background-color: #FAFAFA; font-family: 'Roboto', -apple-system, BlinkMacSystemFont, 'Segoe UI', Arial, sans-serif;">
|
||||
<table role="presentation" cellspacing="0" cellpadding="0" border="0" width="100%" style="background-color: #FAFAFA;">
|
||||
<tr>
|
||||
<td align="center" style="padding: 40px 20px;">
|
||||
<table role="presentation" cellspacing="0" cellpadding="0" border="0" width="600" style="max-width: 600px; background-color: #FFFFFF; border-radius: 8px; box-shadow: 0 2px 8px rgba(0,0,0,0.1);">
|
||||
<tr>
|
||||
<td style="padding: 40px 40px 30px 40px; text-align: center;">
|
||||
<!-- Стилизованный текстовый логотип uchill -->
|
||||
<table role="presentation" cellspacing="0" cellpadding="0" border="0" align="center">
|
||||
<tr>
|
||||
<td>
|
||||
<span style="display: inline-block; color: #7444FD; letter-spacing: 1px; font-size: 48px; font-weight: 600; line-height: 1.2;">
|
||||
<span style="background-color: #7444FD; color: #ffffff; border-radius: 2px; margin-right: 2px; font-weight: 600; font-size: 48px; display: inline-block; vertical-align: baseline; line-height: 1; padding: 2px 8px; letter-spacing: 0;">u</span><span style="vertical-align: baseline;">chill</span>
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="padding: 0 40px 40px 40px;">
|
||||
<table role="presentation" cellspacing="0" cellpadding="0" border="0" width="100%">
|
||||
<tr>
|
||||
<td style="padding-bottom: 24px;">
|
||||
<h1 style="margin: 0; font-size: 28px; font-weight: 500; color: #212121; line-height: 1.2;">{notification.title}</h1>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="padding-bottom: 24px;">
|
||||
<p style="margin: 0; font-size: 16px; color: #424242; line-height: 1.6;">{notification.message}</p>
|
||||
</td>
|
||||
</tr>
|
||||
{action_button}
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="padding: 30px 40px; background-color: #F5F5F5; border-radius: 0 0 8px 8px; border-top: 1px solid #E0E0E0;">
|
||||
<table role="presentation" cellspacing="0" cellpadding="0" border="0" width="100%">
|
||||
<tr>
|
||||
<td style="text-align: center; font-size: 14px; color: #757575; line-height: 1.6;">
|
||||
<p style="margin: 0 0 10px 0;">С уважением,<br><strong style="color: #7444FD;">Команда Uchill</strong></p>
|
||||
<p style="margin: 10px 0 0 0; font-size: 12px; color: #9E9E9E;">
|
||||
© 2026 Uchill. Все права защищены.
|
||||
</p>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
||||
"""
|
||||
|
|
|
|||
|
|
@ -18,7 +18,8 @@
|
|||
{ "country_code": "RU", "country_name": "Россия", "city": "Саратов", "timezone": "Europe/Saratov" },
|
||||
{ "country_code": "RU", "country_name": "Россия", "city": "Тюмень", "timezone": "Asia/Yekaterinburg" },
|
||||
{ "country_code": "RU", "country_name": "Россия", "city": "Иркутск", "timezone": "Asia/Irkutsk" },
|
||||
{ "country_code": "RU", "country_name": "Россия", "city": "Владивосток", "timezone": "Asia/Vladivostok" }
|
||||
{ "country_code": "RU", "country_name": "Россия", "city": "Владивосток", "timezone": "Asia/Vladivostok" },
|
||||
{ "country_code": "RU", "country_name": "Россия", "city": "Ульяновск", "timezone": "Europe/Samara" }
|
||||
]
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -923,10 +923,36 @@ class ClientManagementViewSet(viewsets.ViewSet):
|
|||
# Здесь заранее аннотируем эти значения одним SQL-запросом.
|
||||
from django.db.models import Count, Q
|
||||
|
||||
# Получаем ID студентов из принятых связей (MentorStudentConnection)
|
||||
# Это нужно для случаев, когда связь создана, но ментор ещё не добавлен в client.mentors
|
||||
accepted_connections = MentorStudentConnection.objects.filter(
|
||||
mentor=user,
|
||||
status=MentorStudentConnection.STATUS_ACCEPTED
|
||||
).values_list('student_id', flat=True)
|
||||
|
||||
# Получаем ID клиентов, у которых ментор уже добавлен в client.mentors
|
||||
clients_with_mentor = Client.objects.filter(mentors=user).values_list('id', flat=True)
|
||||
|
||||
# Получаем ID клиентов из принятых связей, у которых ментор ещё не добавлен
|
||||
clients_to_sync = Client.objects.filter(
|
||||
user_id__in=accepted_connections
|
||||
).exclude(id__in=clients_with_mentor).values_list('id', flat=True)
|
||||
|
||||
# Синхронизация: добавляем ментора в client.mentors для клиентов с принятыми связями
|
||||
# Используем bulk операцию для эффективности
|
||||
if clients_to_sync:
|
||||
clients_to_update = Client.objects.filter(id__in=clients_to_sync)
|
||||
for client in clients_to_update:
|
||||
client.mentors.add(user)
|
||||
|
||||
# Фильтруем клиентов: либо ментор в client.mentors, либо есть принятая связь
|
||||
clients = (
|
||||
Client.objects.filter(mentors=user)
|
||||
Client.objects.filter(
|
||||
Q(mentors=user) | Q(user_id__in=accepted_connections)
|
||||
)
|
||||
.select_related('user')
|
||||
.prefetch_related('mentors')
|
||||
.distinct()
|
||||
.annotate(
|
||||
# Поля с суффиксом _annotated читает ClientSerializer (если присутствуют)
|
||||
scheduled_lessons_annotated=Count(
|
||||
|
|
|
|||
|
|
@ -0,0 +1,64 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="ru">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<title>{% block title %}Uchill{% endblock %}</title>
|
||||
<!--[if mso]>
|
||||
<style type="text/css">
|
||||
body, table, td {font-family: Arial, sans-serif !important;}
|
||||
</style>
|
||||
<![endif]-->
|
||||
</head>
|
||||
<body style="margin: 0; padding: 0; background-color: #FAFAFA; font-family: 'Roboto', -apple-system, BlinkMacSystemFont, 'Segoe UI', Arial, sans-serif;">
|
||||
<!-- Wrapper table -->
|
||||
<table role="presentation" cellspacing="0" cellpadding="0" border="0" width="100%" style="background-color: #FAFAFA;">
|
||||
<tr>
|
||||
<td align="center" style="padding: 40px 20px;">
|
||||
<!-- Main content table -->
|
||||
<table role="presentation" cellspacing="0" cellpadding="0" border="0" width="600" style="max-width: 600px; background-color: #FFFFFF; border-radius: 8px; box-shadow: 0 2px 8px rgba(0,0,0,0.1);">
|
||||
<!-- Header with logo -->
|
||||
<tr>
|
||||
<td style="padding: 40px 40px 30px 40px; text-align: center; background-color: #FFFFFF; border-radius: 8px 8px 0 0;">
|
||||
<!-- Стилизованный текстовый логотип uchill -->
|
||||
<table role="presentation" cellspacing="0" cellpadding="0" border="0" align="center">
|
||||
<tr>
|
||||
<td>
|
||||
<span style="display: inline-block; color: #7444FD; letter-spacing: 1px; font-size: 48px; font-weight: 600; line-height: 1.2;">
|
||||
<span style="background-color: #7444FD; color: #ffffff; border-radius: 2px; margin-right: 2px; font-weight: 600; font-size: 48px; display: inline-block; vertical-align: baseline; line-height: 1; padding: 2px 8px; letter-spacing: 0;">u</span><span style="vertical-align: baseline;">chill</span>
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<!-- Content block -->
|
||||
<tr>
|
||||
<td style="padding: 0 40px 40px 40px;">
|
||||
{% block content %}{% endblock %}
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<!-- Footer -->
|
||||
<tr>
|
||||
<td style="padding: 30px 40px; background-color: #F5F5F5; border-radius: 0 0 8px 8px; border-top: 1px solid #E0E0E0;">
|
||||
<table role="presentation" cellspacing="0" cellpadding="0" border="0" width="100%">
|
||||
<tr>
|
||||
<td style="text-align: center; font-size: 14px; color: #757575; line-height: 1.6;">
|
||||
<p style="margin: 0 0 10px 0;">С уважением,<br><strong style="color: #7444FD;">Команда Uchill</strong></p>
|
||||
<p style="margin: 10px 0 0 0; font-size: 12px; color: #9E9E9E;">
|
||||
© {% now "Y" %} Uchill. Все права защищены.
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -1,36 +1,170 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<html lang="ru">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<title>Приглашение от ментора - Uchill</title>
|
||||
<!--[if mso]>
|
||||
<style type="text/css">
|
||||
body, table, td {font-family: Arial, sans-serif !important;}
|
||||
</style>
|
||||
<![endif]-->
|
||||
</head>
|
||||
<body style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; line-height: 1.6; color: #333; max-width: 600px; margin: 0 auto; padding: 20px; background-color: #f5f5f5;">
|
||||
<div style="background-color: white; border-radius: 8px; padding: 40px; box-shadow: 0 2px 4px rgba(0,0,0,0.1);">
|
||||
<div style="text-align: center; margin-bottom: 30px;">
|
||||
<h1 style="color: #3B82F6; margin: 0; font-size: 28px;">Приглашение от ментора</h1>
|
||||
</div>
|
||||
<body style="margin: 0; padding: 0; background-color: #FAFAFA; font-family: 'Roboto', -apple-system, BlinkMacSystemFont, 'Segoe UI', Arial, sans-serif;">
|
||||
<!-- Wrapper table -->
|
||||
<table role="presentation" cellspacing="0" cellpadding="0" border="0" width="100%" style="background-color: #FAFAFA;">
|
||||
<tr>
|
||||
<td align="center" style="padding: 40px 20px;">
|
||||
<!-- Main content table -->
|
||||
<table role="presentation" cellspacing="0" cellpadding="0" border="0" width="600" style="max-width: 600px; background-color: #FFFFFF; border-radius: 8px; box-shadow: 0 2px 8px rgba(0,0,0,0.1);">
|
||||
<!-- Header with logo -->
|
||||
<tr>
|
||||
<td style="padding: 40px 40px 30px 40px; text-align: center; background-color: #FFFFFF; border-radius: 8px 8px 0 0;">
|
||||
<!-- Стилизованный текстовый логотип uchill -->
|
||||
<table role="presentation" cellspacing="0" cellpadding="0" border="0" align="center">
|
||||
<tr>
|
||||
<td>
|
||||
<span style="display: inline-block; color: #7444FD; letter-spacing: 1px; font-size: 48px; font-weight: 600; line-height: 1.2;">
|
||||
<span style="background-color: #7444FD; color: #ffffff; border-radius: 2px; margin-right: 2px; font-weight: 600; font-size: 48px; display: inline-block; vertical-align: baseline; line-height: 1; padding: 2px 8px; letter-spacing: 0;">u</span><span style="vertical-align: baseline;">chill</span>
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<p style="font-size: 16px; margin-bottom: 20px;">Здравствуйте!</p>
|
||||
<!-- Content -->
|
||||
<tr>
|
||||
<td style="padding: 0 40px 40px 40px;">
|
||||
<table role="presentation" cellspacing="0" cellpadding="0" border="0" width="100%">
|
||||
<!-- Title -->
|
||||
<tr>
|
||||
<td style="padding-bottom: 24px;">
|
||||
<h1 style="margin: 0; font-size: 28px; font-weight: 500; color: #212121; line-height: 1.2;">Приглашение от ментора</h1>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<p style="font-size: 16px; margin-bottom: 20px;"><strong>{{ mentor_name }}</strong> приглашает вас в качестве ученика на платформу.</p>
|
||||
<!-- Greeting -->
|
||||
<tr>
|
||||
<td style="padding-bottom: 24px;">
|
||||
<p style="margin: 0; font-size: 16px; color: #424242; line-height: 1.6;">
|
||||
Здравствуйте!
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<!-- Main message -->
|
||||
<tr>
|
||||
<td style="padding-bottom: 24px;">
|
||||
<p style="margin: 0; font-size: 16px; color: #424242; line-height: 1.6;">
|
||||
<strong style="color: #7444FD;">{{ mentor_name }}</strong> приглашает вас в качестве ученика на платформу Uchill.
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
{% if set_password_url %}
|
||||
<p style="font-size: 16px; margin-bottom: 20px;">Для начала работы установите пароль и подтвердите приглашение.</p>
|
||||
<div style="text-align: center; margin: 30px 0;">
|
||||
<a href="{{ set_password_url }}" style="display: inline-block; background-color: #3B82F6; color: white; padding: 14px 28px; text-decoration: none; border-radius: 6px; font-weight: 600; font-size: 16px;">Установить пароль и подтвердить</a>
|
||||
</div>
|
||||
<p style="font-size: 12px; color: #9CA3AF; word-break: break-all;">{{ set_password_url }}</p>
|
||||
{% elif confirm_url %}
|
||||
<p style="font-size: 16px; margin-bottom: 20px;">Подтвердите приглашение, чтобы начать занятия с ментором.</p>
|
||||
<div style="text-align: center; margin: 30px 0;">
|
||||
<a href="{{ confirm_url }}" style="display: inline-block; background-color: #3B82F6; color: white; padding: 14px 28px; text-decoration: none; border-radius: 6px; font-weight: 600; font-size: 16px;">Подтвердить приглашение</a>
|
||||
</div>
|
||||
<p style="font-size: 12px; color: #9CA3AF; word-break: break-all;">{{ confirm_url }}</p>
|
||||
{% endif %}
|
||||
<!-- New user flow -->
|
||||
<tr>
|
||||
<td style="padding-bottom: 24px;">
|
||||
<p style="margin: 0; font-size: 16px; color: #424242; line-height: 1.6;">
|
||||
Для начала работы установите пароль и подтвердите приглашение.
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<div style="margin-top: 40px; padding-top: 20px; border-top: 1px solid #E5E7EB;">
|
||||
<p style="margin: 0; font-size: 14px; color: #6B7280;">С уважением,<br><strong>Команда платформы</strong></p>
|
||||
</div>
|
||||
</div>
|
||||
<!-- Button -->
|
||||
<tr>
|
||||
<td style="padding-top: 8px; padding-bottom: 24px; text-align: center;">
|
||||
<table role="presentation" cellspacing="0" cellpadding="0" border="0" align="center">
|
||||
<tr>
|
||||
<td style="background-color: #7444FD; border-radius: 4px;">
|
||||
<a href="{{ set_password_url }}" style="display: inline-block; padding: 14px 32px; font-size: 16px; font-weight: 500; color: #FFFFFF; text-decoration: none; border-radius: 4px;">
|
||||
Установить пароль и подтвердить
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<!-- Link fallback -->
|
||||
<tr>
|
||||
<td style="padding-bottom: 24px;">
|
||||
<table role="presentation" cellspacing="0" cellpadding="0" border="0" width="100%" style="background-color: #F5F5F5; border-radius: 4px;">
|
||||
<tr>
|
||||
<td style="padding: 12px;">
|
||||
<p style="margin: 0; font-size: 12px; color: #9E9E9E; word-break: break-all; line-height: 1.5;">
|
||||
{{ set_password_url }}
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
{% elif confirm_url %}
|
||||
<!-- Existing user flow -->
|
||||
<tr>
|
||||
<td style="padding-bottom: 24px;">
|
||||
<p style="margin: 0; font-size: 16px; color: #424242; line-height: 1.6;">
|
||||
Подтвердите приглашение, чтобы начать занятия с ментором.
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<!-- Button -->
|
||||
<tr>
|
||||
<td style="padding-top: 8px; padding-bottom: 24px; text-align: center;">
|
||||
<table role="presentation" cellspacing="0" cellpadding="0" border="0" align="center">
|
||||
<tr>
|
||||
<td style="background-color: #7444FD; border-radius: 4px;">
|
||||
<a href="{{ confirm_url }}" style="display: inline-block; padding: 14px 32px; font-size: 16px; font-weight: 500; color: #FFFFFF; text-decoration: none; border-radius: 4px;">
|
||||
Подтвердить приглашение
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<!-- Link fallback -->
|
||||
<tr>
|
||||
<td style="padding-bottom: 24px;">
|
||||
<table role="presentation" cellspacing="0" cellpadding="0" border="0" width="100%" style="background-color: #F5F5F5; border-radius: 4px;">
|
||||
<tr>
|
||||
<td style="padding: 12px;">
|
||||
<p style="margin: 0; font-size: 12px; color: #9E9E9E; word-break: break-all; line-height: 1.5;">
|
||||
{{ confirm_url }}
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
{% endif %}
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<!-- Footer -->
|
||||
<tr>
|
||||
<td style="padding: 30px 40px; background-color: #F5F5F5; border-radius: 0 0 8px 8px; border-top: 1px solid #E0E0E0;">
|
||||
<table role="presentation" cellspacing="0" cellpadding="0" border="0" width="100%">
|
||||
<tr>
|
||||
<td style="text-align: center; font-size: 14px; color: #757575; line-height: 1.6;">
|
||||
<p style="margin: 0 0 10px 0;">С уважением,<br><strong style="color: #7444FD;">Команда Uchill</strong></p>
|
||||
<p style="margin: 10px 0 0 0; font-size: 12px; color: #9E9E9E;">
|
||||
© 2026 Uchill. Все права защищены.
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
Здравствуйте!
|
||||
|
||||
{{ mentor_name }} приглашает вас в качестве ученика на платформу.
|
||||
{{ mentor_name }} приглашает вас в качестве ученика на платформу Uchill.
|
||||
|
||||
{% if set_password_url %}
|
||||
Установите пароль и подтвердите приглашение по ссылке:
|
||||
|
|
@ -11,4 +11,4 @@
|
|||
{% endif %}
|
||||
|
||||
С уважением,
|
||||
Команда платформы
|
||||
Команда Uchill
|
||||
|
|
|
|||
|
|
@ -1,39 +1,146 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<html lang="ru">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<title>Восстановление пароля - Uchill</title>
|
||||
<!--[if mso]>
|
||||
<style type="text/css">
|
||||
body, table, td {font-family: Arial, sans-serif !important;}
|
||||
</style>
|
||||
<![endif]-->
|
||||
</head>
|
||||
<body style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; line-height: 1.6; color: #333; max-width: 600px; margin: 0 auto; padding: 20px; background-color: #f5f5f5;">
|
||||
<div style="background-color: white; border-radius: 8px; padding: 40px; box-shadow: 0 2px 4px rgba(0,0,0,0.1);">
|
||||
<div style="text-align: center; margin-bottom: 30px;">
|
||||
<h1 style="color: #EF4444; margin: 0; font-size: 28px;">Восстановление пароля</h1>
|
||||
</div>
|
||||
<body style="margin: 0; padding: 0; background-color: #FAFAFA; font-family: 'Roboto', -apple-system, BlinkMacSystemFont, 'Segoe UI', Arial, sans-serif;">
|
||||
<!-- Wrapper table -->
|
||||
<table role="presentation" cellspacing="0" cellpadding="0" border="0" width="100%" style="background-color: #FAFAFA;">
|
||||
<tr>
|
||||
<td align="center" style="padding: 40px 20px;">
|
||||
<!-- Main content table -->
|
||||
<table role="presentation" cellspacing="0" cellpadding="0" border="0" width="600" style="max-width: 600px; background-color: #FFFFFF; border-radius: 8px; box-shadow: 0 2px 8px rgba(0,0,0,0.1);">
|
||||
<!-- Header with logo -->
|
||||
<tr>
|
||||
<td style="padding: 40px 40px 30px 40px; text-align: center; background-color: #FFFFFF; border-radius: 8px 8px 0 0;">
|
||||
<!-- Стилизованный текстовый логотип uchill -->
|
||||
<table role="presentation" cellspacing="0" cellpadding="0" border="0" align="center">
|
||||
<tr>
|
||||
<td>
|
||||
<span style="display: inline-block; color: #7444FD; letter-spacing: 1px; font-size: 48px; font-weight: 600; line-height: 1.2;">
|
||||
<span style="background-color: #7444FD; color: #ffffff; border-radius: 2px; margin-right: 2px; font-weight: 600; font-size: 48px; display: inline-block; vertical-align: baseline; line-height: 1; padding: 2px 8px; letter-spacing: 0;">u</span><span style="vertical-align: baseline;">chill</span>
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<p style="font-size: 16px; margin-bottom: 20px;">Здравствуйте, <strong>{{ user_full_name }}</strong>!</p>
|
||||
<!-- Content -->
|
||||
<tr>
|
||||
<td style="padding: 0 40px 40px 40px;">
|
||||
<table role="presentation" cellspacing="0" cellpadding="0" border="0" width="100%">
|
||||
<!-- Title -->
|
||||
<tr>
|
||||
<td style="padding-bottom: 24px;">
|
||||
<h1 style="margin: 0; font-size: 28px; font-weight: 500; color: #212121; line-height: 1.2;">Восстановление пароля</h1>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<p style="font-size: 16px; margin-bottom: 20px;">Вы запросили восстановление пароля для вашего аккаунта. Нажмите на кнопку ниже, чтобы установить новый пароль.</p>
|
||||
<!-- Greeting -->
|
||||
<tr>
|
||||
<td style="padding-bottom: 24px;">
|
||||
<p style="margin: 0; font-size: 16px; color: #424242; line-height: 1.6;">
|
||||
Здравствуйте, <strong style="color: #212121;">{{ user_full_name }}</strong>!
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<div style="text-align: center; margin: 30px 0;">
|
||||
<a href="{{ reset_url }}" style="display: inline-block; background-color: #EF4444; color: white; padding: 14px 28px; text-decoration: none; border-radius: 6px; font-weight: 600; font-size: 16px;">Восстановить пароль</a>
|
||||
</div>
|
||||
<!-- Main message -->
|
||||
<tr>
|
||||
<td style="padding-bottom: 24px;">
|
||||
<p style="margin: 0; font-size: 16px; color: #424242; line-height: 1.6;">
|
||||
Вы запросили восстановление пароля для вашего аккаунта. Нажмите на кнопку ниже, чтобы установить новый пароль.
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<p style="font-size: 14px; color: #6B7280; margin-top: 30px;">Или скопируйте и вставьте эту ссылку в браузер:</p>
|
||||
<p style="font-size: 12px; color: #9CA3AF; word-break: break-all; background-color: #F3F4F6; padding: 10px; border-radius: 4px; margin: 10px 0;">{{ reset_url }}</p>
|
||||
<!-- Button -->
|
||||
<tr>
|
||||
<td style="padding-top: 8px; padding-bottom: 24px; text-align: center;">
|
||||
<table role="presentation" cellspacing="0" cellpadding="0" border="0" align="center">
|
||||
<tr>
|
||||
<td style="background-color: #7444FD; border-radius: 4px;">
|
||||
<a href="{{ reset_url }}" style="display: inline-block; padding: 14px 32px; font-size: 16px; font-weight: 500; color: #FFFFFF; text-decoration: none; border-radius: 4px;">
|
||||
Восстановить пароль
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<div style="background-color: #FEF3C7; border-left: 4px solid #F59E0B; padding: 15px; margin: 20px 0; border-radius: 4px;">
|
||||
<p style="margin: 0; font-size: 14px; color: #92400E;"><strong>⚠️ Важно:</strong> Ссылка действительна в течение 24 часов.</p>
|
||||
</div>
|
||||
<!-- Link fallback -->
|
||||
<tr>
|
||||
<td style="padding-bottom: 24px;">
|
||||
<p style="margin: 0 0 8px 0; font-size: 14px; color: #757575;">
|
||||
Или скопируйте и вставьте эту ссылку в браузер:
|
||||
</p>
|
||||
<table role="presentation" cellspacing="0" cellpadding="0" border="0" width="100%" style="background-color: #F5F5F5; border-radius: 4px;">
|
||||
<tr>
|
||||
<td style="padding: 12px;">
|
||||
<p style="margin: 0; font-size: 12px; color: #9E9E9E; word-break: break-all; line-height: 1.5;">
|
||||
{{ reset_url }}
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<div style="margin-top: 30px; padding-top: 20px; border-top: 1px solid #E5E7EB;">
|
||||
<p style="margin: 0; font-size: 12px; color: #9CA3AF;">Если вы не запрашивали восстановление пароля, просто проигнорируйте это письмо. Ваш пароль останется без изменений.</p>
|
||||
</div>
|
||||
<!-- Warning box -->
|
||||
<tr>
|
||||
<td style="padding-bottom: 24px;">
|
||||
<table role="presentation" cellspacing="0" cellpadding="0" border="0" width="100%" style="background-color: #FFF3E0; border-left: 4px solid #FF9800; border-radius: 4px;">
|
||||
<tr>
|
||||
<td style="padding: 16px;">
|
||||
<p style="margin: 0; font-size: 14px; color: #E65100;">
|
||||
<strong>⚠️ Важно:</strong> Ссылка действительна в течение 24 часов.
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<div style="margin-top: 20px; padding-top: 20px; border-top: 1px solid #E5E7EB;">
|
||||
<p style="margin: 0; font-size: 14px; color: #6B7280;">С уважением,<br><strong>Команда Lessoni</strong></p>
|
||||
</div>
|
||||
</div>
|
||||
<!-- Security notice -->
|
||||
<tr>
|
||||
<td style="padding-top: 24px; border-top: 1px solid #E0E0E0;">
|
||||
<p style="margin: 0; font-size: 12px; color: #9E9E9E; line-height: 1.6;">
|
||||
Если вы не запрашивали восстановление пароля, просто проигнорируйте это письмо. Ваш пароль останется без изменений.
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<!-- Footer -->
|
||||
<tr>
|
||||
<td style="padding: 30px 40px; background-color: #F5F5F5; border-radius: 0 0 8px 8px; border-top: 1px solid #E0E0E0;">
|
||||
<table role="presentation" cellspacing="0" cellpadding="0" border="0" width="100%">
|
||||
<tr>
|
||||
<td style="text-align: center; font-size: 14px; color: #757575; line-height: 1.6;">
|
||||
<p style="margin: 0 0 10px 0;">С уважением,<br><strong style="color: #7444FD;">Команда Uchill</strong></p>
|
||||
<p style="margin: 10px 0 0 0; font-size: 12px; color: #9E9E9E;">
|
||||
© 2026 Uchill. Все права защищены.
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -9,8 +9,4 @@
|
|||
Если вы не запрашивали восстановление пароля, просто проигнорируйте это письмо. Ваш пароль останется без изменений.
|
||||
|
||||
С уважением,
|
||||
Команда платформы
|
||||
|
||||
|
||||
|
||||
|
||||
Команда Uchill
|
||||
|
|
|
|||
|
|
@ -1,40 +1,155 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<html lang="ru">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<title>Добро пожаловать на Uchill</title>
|
||||
<!--[if mso]>
|
||||
<style type="text/css">
|
||||
body, table, td {font-family: Arial, sans-serif !important;}
|
||||
</style>
|
||||
<![endif]-->
|
||||
</head>
|
||||
<body style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; line-height: 1.6; color: #333; max-width: 600px; margin: 0 auto; padding: 20px; background-color: #f5f5f5;">
|
||||
<div style="background-color: white; border-radius: 8px; padding: 40px; box-shadow: 0 2px 4px rgba(0,0,0,0.1);">
|
||||
<div style="text-align: center; margin-bottom: 30px;">
|
||||
<h1 style="color: #3B82F6; margin: 0; font-size: 28px;">Добро пожаловать!</h1>
|
||||
</div>
|
||||
<body style="margin: 0; padding: 0; background-color: #FAFAFA; font-family: 'Roboto', -apple-system, BlinkMacSystemFont, 'Segoe UI', Arial, sans-serif;">
|
||||
<!-- Wrapper table -->
|
||||
<table role="presentation" cellspacing="0" cellpadding="0" border="0" width="100%" style="background-color: #FAFAFA;">
|
||||
<tr>
|
||||
<td align="center" style="padding: 40px 20px;">
|
||||
<!-- Main content table -->
|
||||
<table role="presentation" cellspacing="0" cellpadding="0" border="0" width="600" style="max-width: 600px; background-color: #FFFFFF; border-radius: 8px; box-shadow: 0 2px 8px rgba(0,0,0,0.1);">
|
||||
<!-- Header with logo -->
|
||||
<tr>
|
||||
<td style="padding: 40px 40px 30px 40px; text-align: center; background-color: #FFFFFF; border-radius: 8px 8px 0 0;">
|
||||
<!-- Стилизованный текстовый логотип uchill -->
|
||||
<table role="presentation" cellspacing="0" cellpadding="0" border="0" align="center">
|
||||
<tr>
|
||||
<td>
|
||||
<span style="display: inline-block; color: #7444FD; letter-spacing: 1px; font-size: 48px; font-weight: 600; line-height: 1.2;">
|
||||
<span style="background-color: #7444FD; color: #ffffff; border-radius: 2px; margin-right: 2px; font-weight: 600; font-size: 48px; display: inline-block; vertical-align: baseline; line-height: 1; padding: 2px 8px; letter-spacing: 0;">u</span><span style="vertical-align: baseline;">chill</span>
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<p style="font-size: 16px; margin-bottom: 20px;">Здравствуйте, <strong>{{ user_full_name }}</strong>!</p>
|
||||
<!-- Content -->
|
||||
<tr>
|
||||
<td style="padding: 0 40px 40px 40px;">
|
||||
<table role="presentation" cellspacing="0" cellpadding="0" border="0" width="100%">
|
||||
<!-- Title -->
|
||||
<tr>
|
||||
<td style="padding-bottom: 24px;">
|
||||
<h1 style="margin: 0; font-size: 28px; font-weight: 500; color: #212121; line-height: 1.2;">Добро пожаловать!</h1>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<p style="font-size: 16px; margin-bottom: 20px;">Вас добавили на Lessoni. Для начала работы необходимо установить пароль для вашего аккаунта.</p>
|
||||
<!-- Greeting -->
|
||||
<tr>
|
||||
<td style="padding-bottom: 24px;">
|
||||
<p style="margin: 0; font-size: 16px; color: #424242; line-height: 1.6;">
|
||||
Здравствуйте, <strong style="color: #212121;">{{ user_full_name }}</strong>!
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<div style="background-color: #F3F4F6; border-left: 4px solid #3B82F6; padding: 15px; margin: 20px 0; border-radius: 4px;">
|
||||
<p style="margin: 0; font-size: 14px;"><strong>Ваш email для входа:</strong></p>
|
||||
<p style="margin: 5px 0 0 0; font-size: 14px; color: #6B7280;">{{ user_email }}</p>
|
||||
</div>
|
||||
<!-- Main message -->
|
||||
<tr>
|
||||
<td style="padding-bottom: 24px;">
|
||||
<p style="margin: 0; font-size: 16px; color: #424242; line-height: 1.6;">
|
||||
Вас добавили на Uchill. Для начала работы необходимо установить пароль для вашего аккаунта.
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<div style="text-align: center; margin: 30px 0;">
|
||||
<a href="{{ set_password_url }}" style="display: inline-block; background-color: #3B82F6; color: white; padding: 14px 28px; text-decoration: none; border-radius: 6px; font-weight: 600; font-size: 16px;">Установить пароль</a>
|
||||
</div>
|
||||
<!-- Info box -->
|
||||
<tr>
|
||||
<td style="padding-bottom: 24px;">
|
||||
<table role="presentation" cellspacing="0" cellpadding="0" border="0" width="100%" style="background-color: #F5F5F5; border-left: 4px solid #7444FD; border-radius: 4px;">
|
||||
<tr>
|
||||
<td style="padding: 16px;">
|
||||
<p style="margin: 0 0 8px 0; font-size: 14px; font-weight: 500; color: #212121;">
|
||||
Ваш email для входа:
|
||||
</p>
|
||||
<p style="margin: 0; font-size: 14px; color: #757575;">
|
||||
{{ user_email }}
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<p style="font-size: 14px; color: #6B7280; margin-top: 30px;">Или скопируйте и вставьте эту ссылку в браузер:</p>
|
||||
<p style="font-size: 12px; color: #9CA3AF; word-break: break-all; background-color: #F3F4F6; padding: 10px; border-radius: 4px; margin: 10px 0;">{{ set_password_url }}</p>
|
||||
<!-- Button -->
|
||||
<tr>
|
||||
<td style="padding-top: 8px; padding-bottom: 24px; text-align: center;">
|
||||
<table role="presentation" cellspacing="0" cellpadding="0" border="0" align="center">
|
||||
<tr>
|
||||
<td style="background-color: #7444FD; border-radius: 4px;">
|
||||
<a href="{{ set_password_url }}" style="display: inline-block; padding: 14px 32px; font-size: 16px; font-weight: 500; color: #FFFFFF; text-decoration: none; border-radius: 4px;">
|
||||
Установить пароль
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<div style="background-color: #FEF3C7; border-left: 4px solid #F59E0B; padding: 15px; margin: 20px 0; border-radius: 4px;">
|
||||
<p style="margin: 0; font-size: 14px; color: #92400E;"><strong>⚠️ Важно:</strong> Ссылка действительна в течение 7 дней.</p>
|
||||
</div>
|
||||
<!-- Link fallback -->
|
||||
<tr>
|
||||
<td style="padding-bottom: 24px;">
|
||||
<p style="margin: 0 0 8px 0; font-size: 14px; color: #757575;">
|
||||
Или скопируйте и вставьте эту ссылку в браузер:
|
||||
</p>
|
||||
<table role="presentation" cellspacing="0" cellpadding="0" border="0" width="100%" style="background-color: #F5F5F5; border-radius: 4px;">
|
||||
<tr>
|
||||
<td style="padding: 12px;">
|
||||
<p style="margin: 0; font-size: 12px; color: #9E9E9E; word-break: break-all; line-height: 1.5;">
|
||||
{{ set_password_url }}
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<div style="margin-top: 40px; padding-top: 20px; border-top: 1px solid #E5E7EB;">
|
||||
<p style="margin: 0; font-size: 14px; color: #6B7280;">С уважением,<br><strong>Команда Lessoni</strong></p>
|
||||
</div>
|
||||
</div>
|
||||
<!-- Warning box -->
|
||||
<tr>
|
||||
<td style="padding-bottom: 24px;">
|
||||
<table role="presentation" cellspacing="0" cellpadding="0" border="0" width="100%" style="background-color: #FFF3E0; border-left: 4px solid #FF9800; border-radius: 4px;">
|
||||
<tr>
|
||||
<td style="padding: 16px;">
|
||||
<p style="margin: 0; font-size: 14px; color: #E65100;">
|
||||
<strong>⚠️ Важно:</strong> Ссылка действительна в течение 7 дней.
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<!-- Footer -->
|
||||
<tr>
|
||||
<td style="padding: 30px 40px; background-color: #F5F5F5; border-radius: 0 0 8px 8px; border-top: 1px solid #E0E0E0;">
|
||||
<table role="presentation" cellspacing="0" cellpadding="0" border="0" width="100%">
|
||||
<tr>
|
||||
<td style="text-align: center; font-size: 14px; color: #757575; line-height: 1.6;">
|
||||
<p style="margin: 0 0 10px 0;">С уважением,<br><strong style="color: #7444FD;">Команда Uchill</strong></p>
|
||||
<p style="margin: 10px 0 0 0; font-size: 12px; color: #9E9E9E;">
|
||||
© 2026 Uchill. Все права защищены.
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
Здравствуйте, {{ user_full_name }}!
|
||||
|
||||
Вас добавили на образовательную платформу. Для начала работы необходимо установить пароль для вашего аккаунта.
|
||||
Вас добавили на Uchill. Для начала работы необходимо установить пароль для вашего аккаунта.
|
||||
|
||||
Ваш email для входа: {{ user_email }}
|
||||
|
||||
|
|
@ -10,8 +10,4 @@
|
|||
Важно: Ссылка действительна в течение 7 дней.
|
||||
|
||||
С уважением,
|
||||
Команда платформы
|
||||
|
||||
|
||||
|
||||
|
||||
Команда Uchill
|
||||
|
|
|
|||
|
|
@ -1,35 +1,131 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<html lang="ru">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<title>Подтверждение email - Uchill</title>
|
||||
<!--[if mso]>
|
||||
<style type="text/css">
|
||||
body, table, td {font-family: Arial, sans-serif !important;}
|
||||
</style>
|
||||
<![endif]-->
|
||||
</head>
|
||||
<body style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; line-height: 1.6; color: #333; max-width: 600px; margin: 0 auto; padding: 20px; background-color: #f5f5f5;">
|
||||
<div style="background-color: white; border-radius: 8px; padding: 40px; box-shadow: 0 2px 4px rgba(0,0,0,0.1);">
|
||||
<div style="text-align: center; margin-bottom: 30px;">
|
||||
<h1 style="color: #3B82F6; margin: 0; font-size: 28px;">Подтверждение email</h1>
|
||||
</div>
|
||||
<body style="margin: 0; padding: 0; background-color: #FAFAFA; font-family: 'Roboto', -apple-system, BlinkMacSystemFont, 'Segoe UI', Arial, sans-serif;">
|
||||
<!-- Wrapper table -->
|
||||
<table role="presentation" cellspacing="0" cellpadding="0" border="0" width="100%" style="background-color: #FAFAFA;">
|
||||
<tr>
|
||||
<td align="center" style="padding: 40px 20px;">
|
||||
<!-- Main content table -->
|
||||
<table role="presentation" cellspacing="0" cellpadding="0" border="0" width="600" style="max-width: 600px; background-color: #FFFFFF; border-radius: 8px; box-shadow: 0 2px 8px rgba(0,0,0,0.1);">
|
||||
<!-- Header with logo -->
|
||||
<tr>
|
||||
<td style="padding: 40px 40px 30px 40px; text-align: center; background-color: #FFFFFF; border-radius: 8px 8px 0 0;">
|
||||
<!-- Стилизованный текстовый логотип uchill -->
|
||||
<table role="presentation" cellspacing="0" cellpadding="0" border="0" align="center">
|
||||
<tr>
|
||||
<td>
|
||||
<span style="display: inline-block; color: #7444FD; letter-spacing: 1px; font-size: 48px; font-weight: 600; line-height: 1.2;">
|
||||
<span style="background-color: #7444FD; color: #ffffff; border-radius: 2px; margin-right: 2px; font-weight: 600; font-size: 48px; display: inline-block; vertical-align: baseline; line-height: 1; padding: 2px 8px; letter-spacing: 0;">u</span><span style="vertical-align: baseline;">chill</span>
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<p style="font-size: 16px; margin-bottom: 20px;">Здравствуйте, <strong>{{ user_full_name }}</strong>!</p>
|
||||
<!-- Content -->
|
||||
<tr>
|
||||
<td style="padding: 0 40px 40px 40px;">
|
||||
<table role="presentation" cellspacing="0" cellpadding="0" border="0" width="100%">
|
||||
<!-- Title -->
|
||||
<tr>
|
||||
<td style="padding-bottom: 24px;">
|
||||
<h1 style="margin: 0; font-size: 28px; font-weight: 500; color: #212121; line-height: 1.2;">Подтверждение email</h1>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<p style="font-size: 16px; margin-bottom: 20px;">Спасибо за регистрацию на Lessoni. Для завершения регистрации необходимо подтвердить ваш email адрес.</p>
|
||||
<!-- Greeting -->
|
||||
<tr>
|
||||
<td style="padding-bottom: 24px;">
|
||||
<p style="margin: 0; font-size: 16px; color: #424242; line-height: 1.6;">
|
||||
Здравствуйте, <strong style="color: #212121;">{{ user_full_name }}</strong>!
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<div style="text-align: center; margin: 30px 0;">
|
||||
<a href="{{ verification_url }}" style="display: inline-block; background-color: #3B82F6; color: white; padding: 14px 28px; text-decoration: none; border-radius: 6px; font-weight: 600; font-size: 16px;">Подтвердить email</a>
|
||||
</div>
|
||||
<!-- Main message -->
|
||||
<tr>
|
||||
<td style="padding-bottom: 24px;">
|
||||
<p style="margin: 0; font-size: 16px; color: #424242; line-height: 1.6;">
|
||||
Спасибо за регистрацию на Uchill. Для завершения регистрации необходимо подтвердить ваш email адрес.
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<p style="font-size: 14px; color: #6B7280; margin-top: 30px;">Или скопируйте и вставьте эту ссылку в браузер:</p>
|
||||
<p style="font-size: 12px; color: #9CA3AF; word-break: break-all; background-color: #F3F4F6; padding: 10px; border-radius: 4px; margin: 10px 0;">{{ verification_url }}</p>
|
||||
<!-- Button -->
|
||||
<tr>
|
||||
<td style="padding-top: 8px; padding-bottom: 24px; text-align: center;">
|
||||
<table role="presentation" cellspacing="0" cellpadding="0" border="0" align="center">
|
||||
<tr>
|
||||
<td style="background-color: #7444FD; border-radius: 4px;">
|
||||
<a href="{{ verification_url }}" style="display: inline-block; padding: 14px 32px; font-size: 16px; font-weight: 500; color: #FFFFFF; text-decoration: none; border-radius: 4px;">
|
||||
Подтвердить email
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<div style="margin-top: 30px; padding-top: 20px; border-top: 1px solid #E5E7EB;">
|
||||
<p style="margin: 0; font-size: 12px; color: #9CA3AF;">Если вы не регистрировались на нашей платформе, просто проигнорируйте это письмо.</p>
|
||||
</div>
|
||||
<!-- Link fallback -->
|
||||
<tr>
|
||||
<td style="padding-bottom: 24px;">
|
||||
<p style="margin: 0 0 8px 0; font-size: 14px; color: #757575;">
|
||||
Или скопируйте и вставьте эту ссылку в браузер:
|
||||
</p>
|
||||
<table role="presentation" cellspacing="0" cellpadding="0" border="0" width="100%" style="background-color: #F5F5F5; border-radius: 4px;">
|
||||
<tr>
|
||||
<td style="padding: 12px;">
|
||||
<p style="margin: 0; font-size: 12px; color: #9E9E9E; word-break: break-all; line-height: 1.5;">
|
||||
{{ verification_url }}
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<div style="margin-top: 20px; padding-top: 20px; border-top: 1px solid #E5E7EB;">
|
||||
<p style="margin: 0; font-size: 14px; color: #6B7280;">С уважением,<br><strong>Команда Lessoni</strong></p>
|
||||
</div>
|
||||
</div>
|
||||
<!-- Security notice -->
|
||||
<tr>
|
||||
<td style="padding-top: 24px; border-top: 1px solid #E0E0E0;">
|
||||
<p style="margin: 0; font-size: 12px; color: #9E9E9E; line-height: 1.6;">
|
||||
Если вы не регистрировались на нашей платформе, просто проигнорируйте это письмо.
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<!-- Footer -->
|
||||
<tr>
|
||||
<td style="padding: 30px 40px; background-color: #F5F5F5; border-radius: 0 0 8px 8px; border-top: 1px solid #E0E0E0;">
|
||||
<table role="presentation" cellspacing="0" cellpadding="0" border="0" width="100%">
|
||||
<tr>
|
||||
<td style="text-align: center; font-size: 14px; color: #757575; line-height: 1.6;">
|
||||
<p style="margin: 0 0 10px 0;">С уважением,<br><strong style="color: #7444FD;">Команда Uchill</strong></p>
|
||||
<p style="margin: 10px 0 0 0; font-size: 12px; color: #9E9E9E;">
|
||||
© 2026 Uchill. Все права защищены.
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
Здравствуйте, {{ user_full_name }}!
|
||||
|
||||
Спасибо за регистрацию на нашей образовательной платформе. Для завершения регистрации необходимо подтвердить ваш email адрес.
|
||||
Спасибо за регистрацию на Uchill. Для завершения регистрации необходимо подтвердить ваш email адрес.
|
||||
|
||||
Перейдите по ссылке для подтверждения:
|
||||
{{ verification_url }}
|
||||
|
|
@ -8,8 +8,4 @@
|
|||
Если вы не регистрировались на нашей платформе, просто проигнорируйте это письмо.
|
||||
|
||||
С уважением,
|
||||
Команда платформы
|
||||
|
||||
|
||||
|
||||
|
||||
Команда Uchill
|
||||
|
|
|
|||
|
|
@ -1,31 +1,131 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<html lang="ru">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<title>Добро пожаловать на Uchill</title>
|
||||
<!--[if mso]>
|
||||
<style type="text/css">
|
||||
body, table, td {font-family: Arial, sans-serif !important;}
|
||||
</style>
|
||||
<![endif]-->
|
||||
</head>
|
||||
<body style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; line-height: 1.6; color: #333; max-width: 600px; margin: 0 auto; padding: 20px; background-color: #f5f5f5;">
|
||||
<div style="background-color: white; border-radius: 8px; padding: 40px; box-shadow: 0 2px 4px rgba(0,0,0,0.1);">
|
||||
<div style="text-align: center; margin-bottom: 30px;">
|
||||
<h1 style="color: #3B82F6; margin: 0; font-size: 28px;">Добро пожаловать!</h1>
|
||||
</div>
|
||||
<body style="margin: 0; padding: 0; background-color: #FAFAFA; font-family: 'Roboto', -apple-system, BlinkMacSystemFont, 'Segoe UI', Arial, sans-serif;">
|
||||
<!-- Wrapper table -->
|
||||
<table role="presentation" cellspacing="0" cellpadding="0" border="0" width="100%" style="background-color: #FAFAFA;">
|
||||
<tr>
|
||||
<td align="center" style="padding: 40px 20px;">
|
||||
<!-- Main content table -->
|
||||
<table role="presentation" cellspacing="0" cellpadding="0" border="0" width="600" style="max-width: 600px; background-color: #FFFFFF; border-radius: 8px; box-shadow: 0 2px 8px rgba(0,0,0,0.1);">
|
||||
<!-- Header with logo -->
|
||||
<tr>
|
||||
<td style="padding: 40px 40px 30px 40px; text-align: center; background-color: #FFFFFF; border-radius: 8px 8px 0 0;">
|
||||
<!-- Стилизованный текстовый логотип uchill -->
|
||||
<table role="presentation" cellspacing="0" cellpadding="0" border="0" align="center">
|
||||
<tr>
|
||||
<td>
|
||||
<span style="display: inline-block; color: #7444FD; letter-spacing: 1px; font-size: 48px; font-weight: 600; line-height: 1.2;">
|
||||
<span style="background-color: #7444FD; color: #ffffff; border-radius: 2px; margin-right: 2px; font-weight: 600; font-size: 48px; display: inline-block; vertical-align: baseline; line-height: 1; padding: 2px 8px; letter-spacing: 0;">u</span><span style="vertical-align: baseline;">chill</span>
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<p style="font-size: 16px; margin-bottom: 20px;">Здравствуйте, <strong>{{ user_full_name }}</strong>!</p>
|
||||
<!-- Content -->
|
||||
<tr>
|
||||
<td style="padding: 0 40px 40px 40px;">
|
||||
<table role="presentation" cellspacing="0" cellpadding="0" border="0" width="100%">
|
||||
<!-- Title -->
|
||||
<tr>
|
||||
<td style="padding-bottom: 24px;">
|
||||
<h1 style="margin: 0; font-size: 28px; font-weight: 500; color: #212121; line-height: 1.2;">Добро пожаловать!</h1>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<p style="font-size: 16px; margin-bottom: 20px;">Добро пожаловать на Lessoni! Ваш аккаунт успешно создан.</p>
|
||||
<!-- Greeting -->
|
||||
<tr>
|
||||
<td style="padding-bottom: 24px;">
|
||||
<p style="margin: 0; font-size: 16px; color: #424242; line-height: 1.6;">
|
||||
Здравствуйте, <strong style="color: #212121;">{{ user_full_name }}</strong>!
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<div style="background-color: #F3F4F6; border-left: 4px solid #3B82F6; padding: 15px; margin: 20px 0; border-radius: 4px;">
|
||||
<p style="margin: 0; font-size: 14px;"><strong>Ваш email для входа:</strong></p>
|
||||
<p style="margin: 5px 0 0 0; font-size: 14px; color: #6B7280;">{{ user_email }}</p>
|
||||
</div>
|
||||
<!-- Main message -->
|
||||
<tr>
|
||||
<td style="padding-bottom: 24px;">
|
||||
<p style="margin: 0; font-size: 16px; color: #424242; line-height: 1.6;">
|
||||
Добро пожаловать на Uchill! Ваш аккаунт успешно создан.
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<p style="font-size: 16px; margin-top: 30px;">Теперь вы можете войти в систему и начать пользоваться всеми возможностями платформы.</p>
|
||||
<!-- Info box -->
|
||||
<tr>
|
||||
<td style="padding-bottom: 24px;">
|
||||
<table role="presentation" cellspacing="0" cellpadding="0" border="0" width="100%" style="background-color: #F5F5F5; border-left: 4px solid #7444FD; border-radius: 4px;">
|
||||
<tr>
|
||||
<td style="padding: 16px;">
|
||||
<p style="margin: 0 0 8px 0; font-size: 14px; font-weight: 500; color: #212121;">
|
||||
Ваш email для входа:
|
||||
</p>
|
||||
<p style="margin: 0; font-size: 14px; color: #757575;">
|
||||
{{ user_email }}
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<div style="margin-top: 40px; padding-top: 20px; border-top: 1px solid #E5E7EB;">
|
||||
<p style="margin: 0; font-size: 14px; color: #6B7280;">С уважением,<br><strong>Команда Lessoni</strong></p>
|
||||
</div>
|
||||
</div>
|
||||
<!-- CTA -->
|
||||
<tr>
|
||||
<td style="padding-bottom: 24px;">
|
||||
<p style="margin: 0; font-size: 16px; color: #424242; line-height: 1.6;">
|
||||
Теперь вы можете войти в систему и начать пользоваться всеми возможностями платформы.
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<!-- Button -->
|
||||
<tr>
|
||||
<td style="padding-top: 8px; padding-bottom: 24px;">
|
||||
<table role="presentation" cellspacing="0" cellpadding="0" border="0">
|
||||
<tr>
|
||||
<td style="background-color: #7444FD; border-radius: 4px;">
|
||||
<a href="https://app.uchill.online/login" style="display: inline-block; padding: 14px 32px; font-size: 16px; font-weight: 500; color: #FFFFFF; text-decoration: none; border-radius: 4px;">
|
||||
Войти в систему
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<!-- Footer -->
|
||||
<tr>
|
||||
<td style="padding: 30px 40px; background-color: #F5F5F5; border-radius: 0 0 8px 8px; border-top: 1px solid #E0E0E0;">
|
||||
<table role="presentation" cellspacing="0" cellpadding="0" border="0" width="100%">
|
||||
<tr>
|
||||
<td style="text-align: center; font-size: 14px; color: #757575; line-height: 1.6;">
|
||||
<p style="margin: 0 0 10px 0;">С уважением,<br><strong style="color: #7444FD;">Команда Uchill</strong></p>
|
||||
<p style="margin: 10px 0 0 0; font-size: 12px; color: #9E9E9E;">
|
||||
© 2026 Uchill. Все права защищены.
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -1,14 +1,10 @@
|
|||
Здравствуйте, {{ user_full_name }}!
|
||||
|
||||
Добро пожаловать на нашу образовательную платформу. Ваш аккаунт успешно создан.
|
||||
Добро пожаловать на Uchill! Ваш аккаунт успешно создан.
|
||||
|
||||
Ваш email для входа: {{ user_email }}
|
||||
|
||||
Теперь вы можете войти в систему и начать пользоваться всеми возможностями платформы.
|
||||
|
||||
С уважением,
|
||||
Команда платформы
|
||||
|
||||
|
||||
|
||||
|
||||
Команда Uchill
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
"""
|
||||
Django settings для Lessoni - образовательной платформы.
|
||||
Django settings для Uchill - образовательной платформы.
|
||||
"""
|
||||
|
||||
import os
|
||||
|
|
@ -46,7 +46,7 @@ if os.getenv('SENTRY_DSN') and os.getenv('DEBUG', 'True') == 'False':
|
|||
environment=os.getenv('SENTRY_ENVIRONMENT', 'production'),
|
||||
|
||||
# Релиз (версия приложения)
|
||||
release=os.getenv('SENTRY_RELEASE', 'lessoni@1.0.0'),
|
||||
release=os.getenv('SENTRY_RELEASE', 'uchill@1.0.0'),
|
||||
|
||||
# Игнорировать определенные ошибки
|
||||
ignore_errors=[
|
||||
|
|
|
|||
Loading…
Reference in New Issue