initial commit
Some checks failed
Backend CI/CD / test (push) Has been cancelled
Backend CI/CD / deploy (push) Has been cancelled

This commit is contained in:
2026-05-19 20:53:08 +03:30
commit 88b793ed9f
169 changed files with 16763 additions and 0 deletions

View File

@@ -0,0 +1,131 @@
<!DOCTYPE html>
<html lang="fa" dir="rtl">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{{ announcement.title }}</title>
<style>
body {
font-family: 'Tahoma', 'Arial', sans-serif;
line-height: 1.6;
color: #333;
max-width: 600px;
margin: 0 auto;
padding: 20px;
background-color: #f4f4f4;
direction: rtl;
}
.container {
background-color: white;
padding: 30px;
border-radius: 10px;
box-shadow: 0 0 10px rgba(0,0,0,0.1);
}
.header {
text-align: center;
border-bottom: 3px solid #168085;
padding-bottom: 20px;
margin-bottom: 30px;
}
.logo {
font-size: 24px;
font-weight: bold;
color: #168085;
margin-bottom: 10px;
}
.priority-badge {
display: inline-block;
padding: 5px 15px;
border-radius: 20px;
font-size: 12px;
font-weight: bold;
margin-bottom: 20px;
}
.priority-urgent { background-color: #dc3545; color: white; }
.priority-high { background-color: #fd7e14; color: white; }
.priority-normal { background-color: #28a745; color: white; }
.priority-low { background-color: #6c757d; color: white; }
.announcement-type {
background-color: #e9ecef;
padding: 10px;
border-radius: 5px;
margin-bottom: 20px;
font-weight: bold;
}
.content {
margin: 20px 0;
line-height: 1.8;
text-align: justify;
}
.footer {
margin-top: 30px;
padding-top: 20px;
border-top: 1px solid #eee;
text-align: center;
color: #666;
font-size: 14px;
}
.social-links {
margin: 20px 0;
}
.social-links a {
display: inline-block;
margin: 0 10px;
color: #168085;
text-decoration: none;
}
.unsubscribe {
margin-top: 20px;
font-size: 12px;
color: #999;
}
.unsubscribe a {
color: #999;
}
</style>
</head>
<body>
<div class="container">
<div class="header">
<div class="logo">انجمن علوم کامپیوتر</div>
<p>خبرنامه انجمن علوم کامپیوتر</p>
</div>
<div class="priority-badge priority-{{ announcement.priority }}">
{% if announcement.priority == 'urgent' %}فوری
{% elif announcement.priority == 'high' %}مهم
{% elif announcement.priority == 'normal' %}عادی
{% else %}کم اهمیت{% endif %}
</div>
<div class="announcement-type">
📢 اطلاعیه
{% if announcement.announcement_type == 'general' %}عمومی
{% elif announcement.announcement_type == 'event' %}رویداد
{% elif announcement.announcement_type == 'academic' %}آکادمیک
{% elif announcement.announcement_type == 'urgent' %}فوری
{% else %}خبرنامه{% endif %}
</div>
<h1>{{ announcement.title }}</h1>
<div class="content">
{{ announcement.content_html|safe }}
</div>
<div class="footer">
<p><strong>انجمن علمی مهندسی کامپیوتر دانشکده فنی و مهندسی شرق گیلان</strong></p>
<p>با ما در ارتباط باشید:</p>
<div class="social-links">
<a href="https://www.instagram.com/your_association_instagram">📷 اینستاگرام</a>
<a href="https://t.me/your_association_telegram">📱 تلگرام</a>
</div>
<div class="unsubscribe">
<p>این ایمیل را به دلیل عضویت در خبرنامه ما دریافت کرده‌اید.</p>
<p><a href="{{ unsubscribe_url }}">لغو اشتراک</a> | <a href="{{ manage_subscription_url }}">مدیریت تنظیمات</a></p>
</div>
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1,19 @@
<!DOCTYPE html><html lang="fa" dir="rtl"><body style="margin:0;padding:0;background:#ffffff;">
<table role="presentation" width="100%" style="border-collapse:collapse;">
<tr><td align="center" style="padding:20px;">
<table role="presentation" width="600" style="width:100%;max-width:600px;border:1px solid #e5e7eb;border-radius:8px;overflow:hidden;">
<tr><td align="center" style="background:#2563eb;color:#fff;padding:18px;font-family:Tahoma,Arial,sans-serif;font-size:16px;">اطلاعیه</td></tr>
<tr>
<td style="background:#f9fafb;padding:22px 30px;text-align:right;font-family:Tahoma,Arial,sans-serif;font-size:14px;color:#374151;">
<p style="margin:0 0 10px 0;">{{ user.get_full_name|default:'کاربر' }} عزیز،</p>
<div style="margin:10px 0 0 0;">{{ body_html|safe }}</div>
<div style="text-align:center;margin:16px 0;">
<a href="{{ event_url }}" style="display:inline-block;background:#2563eb;color:#fff;text-decoration:none;padding:10px 22px;border-radius:6px;">جزئیات رویداد</a>
</div>
</td>
</tr>
<tr><td align="center" style="padding:14px 20px;color:#6b7280;font-family:Tahoma,Arial,sans-serif;font-size:12px;">&copy; {% now 'Y' %} انجمن علمی</td></tr>
</table>
</td></tr>
</table>
</body></html>

View File

@@ -0,0 +1,65 @@
{% load jalali %}
<!DOCTYPE html>
<html lang="fa" dir="rtl">
<body style="margin:0;padding:0;background:#f9fafb;font-family:Tahoma,Arial,sans-serif;color:#111827;">
<table role="presentation" width="100%" cellpadding="0" cellspacing="0" style="border-collapse:collapse;">
<tr>
<td align="center" style="padding:20px;">
<table role="presentation" width="100%" cellpadding="0" cellspacing="0" style="max-width:600px;background:#ffffff;border:1px solid #e5e7eb;border-radius:8px;">
<tr>
<td style="background:#4f46e5;color:#ffffff;padding:20px 24px;border-radius:8px 8px 0 0;text-align:center;">
<h1 style="margin:0;font-size:18px;line-height:26px;">انجمن علمی مهندسی کامپیوتر</h1>
<p style="margin:6px 0 0 0;font-size:13px;opacity:.9;">دعوت به شرکت در رویداد</p>
</td>
</tr>
<tr>
<td style="padding:24px;">
<h2 style="margin:0 0 12px 0;font-size:16px;">سلام {{ user.get_full_name|default:user.username }} عزیز،</h2>
<p style="margin:0 0 12px 0;font-size:14px;line-height:1.8;">
شما هنوز در رویداد <strong>«{{ event.title }}»</strong> ثبت‌نام نکرده‌اید. اگر علاقه‌مند هستید، قبل از پایان مهلت ثبت‌نام می‌توانید از لینک زیر اقدام کنید.
</p>
<table role="presentation" cellpadding="0" cellspacing="0" style="margin:16px 0 10px 0;">
<tr>
<td style="padding:6px 0;font-size:13px;color:#6b7280;">تاریخ:</td>
<td style="padding:6px 0;font-size:13px;color:#111827;">{{ event.start_time|jdate:"%Y/%m/%d %H:%M"|fa_digits }}</td>
</tr>
{% if event.location %}
<tr>
<td style="padding:6px 0;font-size:13px;color:#6b7280;">مکان:</td>
<td style="padding:6px 0;font-size:13px;color:#111827;">{% if event.address %}{{ event.address }}{% else %}{{ event.event_type_display }}{% endif %}</td>
</tr>
{% endif %}
</table>
<div style="text-align:center;margin:20px 0;">
<a href="{{ event_url }}" style="display:inline-block;background:#4f46e5;color:#fff;text-decoration:none;padding:10px 20px;border-radius:6px;font-size:14px;">مشاهده و ثبت‌نام در رویداد</a>
</div>
<p style="margin:0;font-size:13px;color:#6b7280;">
اگر لینک بالا باز نشد، این آدرس را در مرورگر باز کنید:
</p>
<p style="margin:6px 0 0 0;font-size:12px;direction:ltr;background:#f3f4f6;padding:8px;border-radius:6px;word-break:break-all;">
{{ event_url }}
</p>
<p style="margin:16px 0 0 0;font-size:13px;line-height:1.8;">
با احترام<br/>تیم انجمن علمی مهندسی کامپیوتر
</p>
</td>
</tr>
<tr>
<td align="center" style="padding:16px;border-top:1px solid #e5e7eb;">
<p style="margin:0;font-size:12px;color:#6b7280;">این ایمیل به‌صورت خودکار ارسال شده است.</p>
</td>
</tr>
</table>
</td>
</tr>
</table>
</body>
</html>

View File

@@ -0,0 +1,11 @@
{{ user.get_full_name|default:user.username }} عزیز،
شما هنوز در رویداد «{{ event.title }}» ثبت‌نام نکرده‌اید.
تاریخ برگزاری: {{ start_time }}
مکان: {% if event.address %}{{ event.address }}{% else %}{{ event.event_type_display }}{% endif %}
مشاهده و ثبت‌نام:
{{ event_url }}
با احترام
تیم انجمن علمی مهندسی کامپیوتر

View File

@@ -0,0 +1,59 @@
<!DOCTYPE html>
<html lang="fa" dir="rtl">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>لغو ثبت‌نام - انجمن علمی مهندسی کامپیوتر گیلان</title>
<style>
body { font-family: 'Vazir','Tahoma',Arial,sans-serif; line-height:1.6; color:#333; max-width:600px; margin:0 auto; padding:20px; direction:rtl; text-align:right; }
.header { background-color:#4f46e5; color:#fff; padding:20px; text-align:center; border-radius:8px 8px 0 0; }
.content { background-color:#f9fafb; padding:30px; border-radius:0 0 8px 8px; }
a.button,.button { display:inline-block; background-color:#4f46e5; color:white; padding:12px 24px; text-decoration:none; border-radius:6px; margin:20px 0; }
.footer { width:100%; text-align:center; margin-top:20px; font-size:14px; color:#6b7280; }
@font-face { font-family:'Vazir'; src:url('https://cdn.jsdelivr.net/gh/rastikerdar/vazir-font@v30.1.0/dist/Vazir-Regular.woff2') format('woff2'); font-weight:normal; font-style:normal; font-display:swap; }
@font-face { font-family:'Vazir'; src:url('https://cdn.jsdelivr.net/gh/rastikerdar/vazir-font@v30.1.0/dist/Vazir-Bold.woff2') format('woff2'); font-weight:bold; font-style:normal; font-display:swap; }
.social-links { width:100%; display:flex; justify-content:center; gap:1rem; margin-top:15px; direction:ltr; }
.social-links a { text-decoration:none; color:#6b7280; display:flex; align-items:center; gap:5px; flex-direction:row-reverse; }
.social-links img { width:24px; height:24px; vertical-align:middle; }
.muted { color:#6b7280; font-size:14px; }
.card { background:white; border:1px solid #e5e7eb; border-radius:8px; padding:16px; margin-top:10px; }
</style>
</head>
<body dir="rtl">
<div class="header">
<h1>انجمن علمی مهندسی کامپیوتر</h1>
<p>لغو ثبت‌نام</p>
</div>
<div class="content">
<h2>سلام {{ user.get_full_name|default:'دانشجوی' }} گرامی،</h2>
<p>ثبت‌نام شما در <strong>{{ event.title }}</strong> لغو شد.</p>
{% if event.start_time %}
<div class="card">
<p><strong>زمان رویداد:</strong> {{ event.start_time|date:"Y-m-d H:i" }}</p>
</div>
{% endif %}
<p class="muted">اگر این تغییر را شما انجام نداده‌اید، لطفاً با پشتیبانی تماس بگیرید.</p>
</div>
<div class="footer">
<p>&copy; {% now 'Y' %} انجمن علمی مهندسی کامپیوتر شرق گیلان. تمامی حقوق محفوظ است.</p>
<!-- ایموجی + لینک بدون تصویر -->
<div style="text-align:center; margin-top:12px; direction:ltr;">
<a href="https://instagram.com/guilance.ir" target="_blank"
style="text-decoration:none; color:#6b7280; margin:0 8px; font-size:14px;">
📷 Instagram
</a>
<a href="https://t.me/guilance" target="_blank"
style="text-decoration:none; color:#6b7280; margin:0 8px; font-size:14px;">
✈️ Telegram
</a>
</div>
<p style="margin-top:10px;">این ایمیل به صورت خودکار ارسال شده است. لطفاً به این پیام پاسخ ندهید.</p>
</div>
</body>
</html>

View File

@@ -0,0 +1,69 @@
{% load jalali %}
<!DOCTYPE html>
<html lang="fa" dir="rtl">
<body style="margin:0;padding:0;background:#ffffff;">
<table role="presentation" width="100%" style="border-collapse:collapse;">
<tr>
<td align="center" style="padding:20px;">
<table role="presentation" width="600" style="width:100%;max-width:600px;border:1px solid #e5e7eb;border-radius:8px;overflow:hidden;">
<tr>
<td align="center" style="background:#4f46e5;color:#fff;padding:20px;">
<h1 style="margin:0;font-family:Tahoma,Arial,sans-serif;font-size:18px;">تأیید ثبت‌نام شما</h1>
</td>
</tr>
<tr>
<td style="background:#f9fafb;padding:22px 30px;text-align:right;">
<p style="margin:0 0 10px 0;font-family:Tahoma,Arial,sans-serif;font-size:14px;color:#374151;">
{{ user.get_full_name|default:'کاربر' }} عزیز،
</p>
<p style="margin:0 0 14px 0;font-family:Tahoma,Arial,sans-serif;font-size:14px;color:#374151;">
ثبت‌نام شما در رویداد <strong style="color:#111827;">{{ event.title }}</strong> تأیید شد.
</p>
<table role="presentation" style="width:100%;border-collapse:collapse;margin:10px 0;">
<tr>
<td style="padding:6px 0;font-family:Tahoma,Arial,sans-serif;font-size:13px;color:#6b7280;">تاریخ:</td>
<td style="padding:6px 0;font-family:Tahoma,Arial,sans-serif;font-size:13px;color:#111827;">
{{ event.start_time|jdate:"%Y/%m/%d %H:%M"|fa_digits }}
-
{{ event.end_time|jdate:"%Y/%m/%d %H:%M"|fa_digits }}
</td>
</tr>
<tr>
<td style="padding:6px 0;font-family:Tahoma,Arial,sans-serif;font-size:13px;color:#6b7280;">محل برگزاری:</td>
<td style="padding:6px 0;font-family:Tahoma,Arial,sans-serif;font-size:13px;color:#111827;">{{ event.get_event_type_display }} | {{ event.address }}</td>
</tr>
</table>
<div style="text-align:center;margin:18px 0;">
<a href="{{ event_url }}"
style="display:inline-block;background:#4f46e5;color:#fff;text-decoration:none;padding:10px 22px;border-radius:6px;font-family:Tahoma,Arial,sans-serif;font-size:14px;">
مشاهده جزئیات رویداد
</a>
</div>
</td>
</tr>
{% if success_html %}
<tr>
<td style="background:#ffffff;padding:0 30px 24px;text-align:right;">
<div style="border:1px solid #e5e7eb;border-radius:8px;padding:18px;font-family:Tahoma,Arial,sans-serif;font-size:14px;color:#374151;line-height:1.6;">
{{ success_html|safe }}
</div>
</td>
</tr>
{% endif %}
<tr>
<td align="center" style="padding:16px 20px;color:#6b7280;font-family:Tahoma,Arial,sans-serif;font-size:12px;">
<div>&copy; {% now 'Y' %} انجمن علمی مهندسی کامپیوتر شرق گیلان</div>
</td>
</tr>
</table>
</td>
</tr>
</table>
</body>
</html>

View File

@@ -0,0 +1,25 @@
{% load jalali %}
<!DOCTYPE html><html lang="fa" dir="rtl"><body style="margin:0;padding:0;background:#ffffff;">
<table role="presentation" width="100%" style="border-collapse:collapse;">
<tr><td align="center" style="padding:20px;">
<table role="presentation" width="600" style="width:100%;max-width:600px;border:1px solid #e5e7eb;border-radius:8px;overflow:hidden;">
<tr><td align="center" style="background:#111827;color:#fff;padding:18px;font-family:Tahoma,Arial,sans-serif;font-size:16px;">یادآوری رویداد</td></tr>
<tr>
<td style="background:#f9fafb;padding:22px 30px;text-align:right;font-family:Tahoma,Arial,sans-serif;font-size:14px;color:#374151;">
<p style="margin:0 0 10px 0;">{{ user.get_full_name|default:'کاربر' }} عزیز، این یک یادآوری برای رویداد <strong style="color:#111827;">{{ event.title }}</strong> است.</p>
<table role="presentation" style="width:100%;border-collapse:collapse;margin:6px 0;">
<tr><td style="padding:6px 0;color:#6b7280;">تاریخ</td>
<td style="padding:6px 0;color:#111827;">{{ event.start_time|jdate:"%Y/%m/%d %H:%M"|fa_digits }}</td></tr>
<tr><td style="padding:6px 0;color:#6b7280;">محل برگزاری</td>
<td style="padding:6px 0;color:#111827;">{{ event.get_event_type_display }}{% if event.address %} | {{ event.address }}{% endif %}</td></tr>
</table>
<div style="text-align:center;margin:16px 0;">
<a href="{{ event_url }}" style="display:inline-block;background:#111827;color:#fff;text-decoration:none;padding:10px 22px;border-radius:6px;">مشاهده رویداد</a>
</div>
</td>
</tr>
<tr><td align="center" style="padding:14px 20px;color:#6b7280;font-family:Tahoma,Arial,sans-serif;font-size:12px;">&copy; {% now 'Y' %} انجمن علمی</td></tr>
</table>
</td></tr>
</table>
</body></html>

View File

@@ -0,0 +1,108 @@
<!DOCTYPE html>
<html lang="fa" dir="rtl">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>تأیید اشتراک خبرنامه</title>
<style>
body {
font-family: 'Tahoma', 'Arial', sans-serif;
line-height: 1.6;
color: #333;
max-width: 600px;
margin: 0 auto;
padding: 20px;
background-color: #f4f4f4;
direction: rtl;
}
.container {
background-color: white;
padding: 30px;
border-radius: 10px;
box-shadow: 0 0 10px rgba(0,0,0,0.1);
}
.header {
text-align: center;
border-bottom: 3px solid #168085;
padding-bottom: 20px;
margin-bottom: 30px;
}
.logo {
font-size: 24px;
font-weight: bold;
color: #168085;
margin-bottom: 10px;
}
.confirm-button {
display: inline-block;
background-color: #168085;
color: white;
padding: 15px 30px;
text-decoration: none;
border-radius: 5px;
font-weight: bold;
margin: 20px 0;
}
.confirm-button:hover {
background-color: #0f5d61;
}
.footer {
margin-top: 30px;
padding-top: 20px;
border-top: 1px solid #eee;
text-align: center;
color: #666;
font-size: 14px;
}
.social-links {
margin: 20px 0;
}
.social-links a {
display: inline-block;
margin: 0 10px;
color: #168085;
text-decoration: none;
}
</style>
</head>
<body>
<div class="container">
<div class="header">
<div class="logo">انجمن علوم کامپیوتر</div>
<p>انجمن علوم کامپیوتر</p>
</div>
<h1>به خبرنامه ما خوش آمدید!</h1>
<p>سلام،</p>
<p>از اشتراک شما در خبرنامه انجمن علوم کامپیوتر متشکریم. برای تکمیل فرآیند اشتراک، لطفاً آدرس ایمیل خود را با کلیک روی دکمه زیر تأیید کنید:</p>
<div style="text-align: center;">
<a href="{{ confirmation_url }}" class="confirm-button">تأیید اشتراک</a>
</div>
<p>اگر دکمه کار نمی‌کند، می‌توانید این لینک را کپی کرده و در مرورگر خود باز کنید:</p>
<p style="word-break: break-all; color: #168085;">{{ confirmation_url }}</p>
<p>پس از تأیید، شما دریافت خواهید کرد:</p>
<ul>
<li>📢 اطلاعیه‌های مهم</li>
<li>🎓 اخبار آکادمیک</li>
<li>🎉 اطلاع‌رسانی رویدادها</li>
<li>💡 بینش‌های فناوری و فرصت‌ها</li>
</ul>
<p><strong>توجه:</strong> این لینک تأیید به دلایل امنیتی ظرف ۲۴ ساعت منقضی خواهد شد.</p>
<div class="footer">
<p><strong>انجمن علوم کامپیوتر</strong></p>
<div class="social-links">
<a href="https://www.instagram.com/your_association_instagram">📷 اینستاگرام</a>
<a href="https://t.me/your_association_telegram">📱 تلگرام</a>
</div>
<p>اگر شما در این خبرنامه ثبت‌نام نکرده‌اید، لطفاً این ایمیل را نادیده بگیرید.</p>
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1,132 @@
<!DOCTYPE html>
<html lang="fa" dir="rtl">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>بازنشانی رمز عبور - انجمن علمی مهندسی کامپیوتر گیلان</title>
<style>
body {
font-family: 'Vazir', 'Tahoma', Arial, sans-serif;
line-height: 1.6;
color: #333;
max-width: 600px;
margin: 0 auto;
padding: 20px;
direction: rtl; /* Ensure RTL for the entire body */
text-align: right; /* Align text to the right */
}
.header {
background-color: #dc2626; /* Red color for password reset */
color: white;
padding: 20px;
text-align: center;
border-radius: 8px 8px 0 0;
}
.content {
background-color: #f9fafb;
padding: 30px;
border-radius: 0 0 8px 8px;
}
.button {
display: inline-block;
background-color: #dc2626;
color: white;
padding: 12px 24px;
text-decoration: none;
border-radius: 6px;
margin: 20px 0;
}
.footer {
text-align: center;
width: 100%;
margin-top: 20px;
font-size: 14px;
color: #6b7280;
}
/* For elements that should remain LTR, like URLs */
.ltr {
direction: ltr;
text-align: left;
}
/* Vazir font import for email clients that support it */
@font-face {
font-family: 'Vazir';
src: url('https://cdn.jsdelivr.net/gh/rastikerdar/vazir-font@v30.1.0/dist/Vazir-Regular.woff2') format('woff2');
font-weight: normal;
font-style: normal;
font-display: swap;
}
@font-face {
font-family: 'Vazir';
src: url('https://cdn.jsdelivr.net/gh/rastikerdar/vazir-font@v30.1.0/dist/Vazir-Bold.woff2') format('woff2');
font-weight: bold;
font-style: normal;
font-display: swap;
}
.social-links {
width: 100%;
display: flex;
justify-content: center;
gap: 1rem;
margin-top: 15px;
direction: ltr; /* Force LTR for social icons/text */
}
.social-links a {
text-decoration: none;
color: #6b7280;
display: flex;
align-items: center;
gap: 5px;
flex-direction: row-reverse; /* Reverse order for RTL text with LTR icons */
}
.social-links img {
width: 24px;
height: 24px;
vertical-align: middle;
}
</style>
</head>
<body dir="rtl">
<div class="header">
<h1>انجمن علمی مهندسی کامپیوتر</h1>
<p>درخواست بازنشانی رمز عبور</p>
</div>
<div class="content">
<h2>سلام {{ user.get_full_name|default:'' }}!</h2>
<p>ما درخواستی برای بازنشانی رمز عبور حساب کاربری شما دریافت کردیم. اگر شما این درخواست را داده‌اید، روی دکمه زیر کلیک کنید تا رمز عبور خود را بازنشانی کنید:</p>
<div style="text-align: center;">
<a href="{{ reset_url }}" class="button">بازنشانی رمز عبور</a>
</div>
<p>اگر دکمه کار نمی‌کند، می‌توانید این لینک را کپی کرده و در مرورگر خود قرار دهید:</p>
<p class="ltr" style="word-break: break-all; background-color: #e5e7eb; padding: 10px; border-radius: 4px;">{{ reset_url }}</p>
<p>این لینک بازنشانی رمز عبور به دلایل امنیتی پس از ۱ ساعت منقضی خواهد شد.</p>
<p><strong>اگر شما درخواست بازنشانی رمز عبور نداده‌اید، لطفاً این ایمیل را نادیده بگیرید.</strong> رمز عبور شما بدون تغییر باقی خواهد ماند.</p>
<p>با احترام،<br>انجمن علمی مهندسی کامپیوتر دانشکده فنی و مهندسی شرق گیلان</p>
</div>
<div class="footer">
<p>&copy; {% now 'Y' %} انجمن علمی مهندسی کامپیوتر شرق گیلان. تمامی حقوق محفوظ است.</p>
<!-- ایموجی + لینک بدون تصویر -->
<div style="text-align:center; margin-top:12px; direction:ltr;">
<a href="https://instagram.com/guilance.ir" target="_blank"
style="text-decoration:none; color:#6b7280; margin:0 8px; font-size:14px;">
📷 Instagram
</a>
<a href="https://t.me/guilance" target="_blank"
style="text-decoration:none; color:#6b7280; margin:0 8px; font-size:14px;">
✈️ Telegram
</a>
</div>
<p style="margin-top:10px;">این ایمیل به صورت خودکار ارسال شده است. لطفاً به این پیام پاسخ ندهید.</p>
</div>
</body>
</html>

View File

@@ -0,0 +1,32 @@
{% load jalali %}
<!DOCTYPE html><html lang="fa" dir="rtl"><body style="margin:0;padding:0;background:#ffffff;">
<table role="presentation" width="100%" style="border-collapse:collapse;">
<tr><td align="center" style="padding:20px;">
<table role="presentation" width="600" style="width:100%;max-width:600px;border:1px solid #e5e7eb;border-radius:8px;overflow:hidden;">
<tr>
<td align="center" style="background:#4f46e5;color:#fff;padding:18px;font-family:Tahoma,Arial,sans-serif;font-size:16px;">اطلاعات ورود اسکای‌روم</td>
</tr>
<tr>
<td style="background:#f9fafb;padding:22px 30px;text-align:right;font-family:Tahoma,Arial,sans-serif;font-size:14px;color:#374151;">
<p style="margin:0 0 10px 0;">{{ user.get_full_name|default:'کاربر' }} عزیز،</p>
<p style="margin:0 0 10px 0;">برای شرکت در رویداد <strong style="color:#111827;">{{ event.title }}</strong> از اطلاعات زیر استفاده کنید:</p>
<table role="presentation" style="width:100%;border-collapse:collapse;margin:6px 0;">
<tr><td style="padding:6px 0;color:#6b7280;">تاریخ</td>
<td style="padding:6px 0;color:#111827;">{{ event.start_time|jdate:"%Y/%m/%d %H:%M"|fa_digits }}</td></tr>
<tr><td style="padding:6px 0;color:#6b7280;">لینک</td>
<td style="padding:6px 0;"><a href="{{ skyroom_url }}" style="color:#4f46e5;text-decoration:none;">ورود به اسکای‌روم</a></td></tr>
<tr><td style="padding:6px 0;color:#6b7280;">نام کاربری</td>
<td style="padding:6px 0;color:#111827;direction:ltr;text-align:left;">{{ sky_username }}</td></tr>
<tr><td style="padding:6px 0;color:#6b7280;">رمز عبور</td>
<td style="padding:6px 0;color:#111827;direction:ltr;text-align:left;">{{ sky_password }}</td></tr>
</table>
<div style="text-align:center;margin:16px 0;">
<a href="{{ event_url }}" style="display:inline-block;background:#4f46e5;color:#fff;text-decoration:none;padding:10px 22px;border-radius:6px;">جزئیات رویداد</a>
</div>
</td>
</tr>
<tr><td align="center" style="padding:14px 20px;color:#6b7280;font-family:Tahoma,Arial,sans-serif;font-size:12px;">&copy; {% now 'Y' %} انجمن علمی</td></tr>
</table>
</td></tr>
</table>
</body></html>

View File

@@ -0,0 +1,61 @@
<!DOCTYPE html>
<html lang="fa" dir="rtl">
<body style="margin:0;padding:0;background:#ffffff;">
<table role="presentation" width="100%" style="border-collapse:collapse;">
<tr>
<td align="center" style="padding:20px;">
<table role="presentation" width="600" style="width:100%;max-width:600px;border:1px solid #e5e7eb;border-radius:8px;overflow:hidden;">
<tr>
<td align="center" style="background:#4f46e5;color:#fff;padding:20px;">
<h1 style="margin:0 0 6px 0;font-family:Tahoma,Arial,sans-serif;font-size:20px;line-height:1.4;">انجمن علمی مهندسی کامپیوتر</h1>
<p style="margin:0;font-family:Tahoma,Arial,sans-serif;font-size:14px;opacity:.95;">به جامعه ما خوش آمدید!</p>
</td>
</tr>
<tr>
<td style="background:#f9fafb;padding:24px 30px;text-align:right;">
<h2 style="margin:0 0 10px 0;font-family:Tahoma,Arial,sans-serif;font-size:18px;color:#111827;">سلام {{ user.get_full_name|default:'دانشجوی' }} گرامی،</h2>
<p style="margin:0 0 16px 0;font-family:Tahoma,Arial,sans-serif;font-size:14px;color:#374151;line-height:1.8;">
از ثبت‌نام شما متشکریم. برای تکمیل ثبت‌نام و فعال‌سازی حساب کاربری، لطفاً روی دکمه زیر کلیک کنید:
</p>
<div style="text-align:center;margin:18px 0;">
<a href="{{ verification_url }}"
style="display:inline-block;background:#4f46e5;color:#fff;text-decoration:none;padding:12px 24px;border-radius:6px;font-family:Tahoma,Arial,sans-serif;font-size:14px;">
تأیید آدرس ایمیل
</a>
</div>
<p style="margin:0 0 6px 0;font-family:Tahoma,Arial,sans-serif;font-size:13px;color:#6b7280;">
اگر دکمه کار نمی‌کند، این لینک را در مرورگر خود باز کنید:
</p>
<p style="direction:ltr;text-align:left;word-break:break-all;background:#e5e7eb;padding:10px;border-radius:4px;margin:0;font-family:Tahoma,Arial,sans-serif;font-size:12px;color:#111827;">
{{ verification_url }}
</p>
<p style="margin:14px 0 0 0;font-family:Tahoma,Arial,sans-serif;font-size:12px;color:#6b7280;">
این لینک تا ۲۴ ساعت معتبر است.
</p>
<p style="margin:14px 0 0 0;font-family:Tahoma,Arial,sans-serif;font-size:13px;color:#374151;">
با احترام<br/>انجمن علمی مهندسی کامپیوتر دانشکده فنی و مهندسی شرق گیلان
</p>
</td>
</tr>
<tr>
<td align="center" style="padding:16px 20px;color:#6b7280;font-family:Tahoma,Arial,sans-serif;font-size:12px;">
<div style="margin-bottom:10px;">&copy; {% now 'Y' %} انجمن علمی مهندسی کامپیوتر شرق گیلان</div>
<div style="direction:ltr;margin-top:4px;">
<a href="https://instagram.com/guilance.ir" target="_blank" style="text-decoration:none;color:#6b7280;margin:0 8px;font-size:13px;">📷 Instagram</a>
<a href="https://t.me/guilance" target="_blank" style="text-decoration:none;color:#6b7280;margin:0 8px;font-size:13px;">✈️ Telegram</a>
</div>
<div style="margin-top:10px;">این ایمیل به‌صورت خودکار ارسال شده است؛ لطفاً پاسخ ندهید.</div>
</td>
</tr>
</table>
</td>
</tr>
</table>
</body>
</html>

View File

@@ -0,0 +1,106 @@
<!DOCTYPE html>
<html lang="fa" dir="rtl">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width,initial-scale=1.0" />
<title>تأیید ایمیل با موفقیت انجام شد</title>
<style>
body {
font-family: 'Vazir', 'Tahoma', Arial, sans-serif;
line-height: 1.6;
color: #333;
max-width: 600px;
margin: 0 auto;
padding: 20px;
direction: rtl;
text-align: right;
background: #ffffff;
}
.header {
background-color: #059669; /* سبز (موفقیت) */
color: white;
padding: 20px;
text-align: center;
border-radius: 8px 8px 0 0;
}
.content {
background-color: #f9fafb;
padding: 30px;
border-radius: 0 0 8px 8px;
}
a.button, .button {
display: inline-block;
background-color: #059669;
color: white !important;
padding: 12px 24px;
text-decoration: none;
border-radius: 6px;
margin: 20px 0;
}
.footer {
width: 100%;
text-align: center;
margin-top: 20px;
font-size: 14px;
color: #6b7280;
}
.ltr { direction: ltr; text-align: left; }
@font-face {
font-family: 'Vazir';
src: url('https://cdn.jsdelivr.net/gh/rastikerdar/vazir-font@v30.1.0/dist/Vazir-Regular.woff2') format('woff2');
font-weight: normal;
font-style: normal;
font-display: swap;
}
@font-face {
font-family: 'Vazir';
src: url('https://cdn.jsdelivr.net/gh/rastikerdar/vazir-font@v30.1.0/dist/Vazir-Bold.woff2') format('woff2');
font-weight: bold;
font-style: normal;
font-display: swap;
}
</style>
</head>
<body dir="rtl">
<div class="header">
<h1>ایمیل شما با موفقیت تأیید شد</h1>
<p>به جمع ما خوش آمدید!</p>
</div>
<div class="content">
<h2>سلام {{ user.get_full_name|default:'کاربر' }} عزیز،</h2>
<p>
آدرس ایمیل شما با موفقیت تأیید شد و حساب کاربری‌تان فعال است.
از این پس می‌توانید بدون محدودیت از امکانات سامانه استفاده کنید.
</p>
<div style="text-align:center;">
<a href="{{ home_url }}" class="button">ورود به سایت</a>
</div>
<p style="margin-top: 12px;">
اگر شما این اقدام را انجام نداده‌اید، لطفاً این ایمیل را نادیده بگیرید.
</p>
<p>با احترام<br/>انجمن علمی مهندسی کامپیوتر دانشکده فنی و مهندسی شرق گیلان</p>
</div>
<div class="footer">
<p>&copy; {% now 'Y' %} انجمن علمی مهندسی کامپیوتر شرق گیلان. تمامی حقوق محفوظ است.</p>
<!-- ایموجی + لینک بدون تصویر -->
<div style="text-align:center; margin-top:12px; direction:ltr;">
<a href="https://instagram.com/guilance.ir" target="_blank"
style="text-decoration:none; color:#6b7280; margin:0 8px; font-size:14px;">
📷 Instagram
</a>
<a href="https://t.me/guilance" target="_blank"
style="text-decoration:none; color:#6b7280; margin:0 8px; font-size:14px;">
✈️ Telegram
</a>
</div>
<p style="margin-top:10px;">این ایمیل به صورت خودکار ارسال شده است. لطفاً به این پیام پاسخ ندهید.</p>
</div>
</body>
</html>

View File

@@ -0,0 +1,26 @@
{% extends "admin/base_site.html" %}
{% load i18n admin_urls unfold %}
{% block extrahead %}
{{ block.super }}
<script src="{% url 'admin:jsi18n' %}"></script>
{{ form.media }}
{% endblock %}
{% block content %}
<form action="" method="post" novalidate>
{% csrf_token %}
<div class="aligned border border-base-200 mb-8 rounded-default pt-3 px-3 shadow-sm dark:border-base-800">
{% for field in form %}
{% include "unfold/helpers/field.html" with field=field %}
{% endfor %}
</div>
<div class="flex justify-end gap-2">
{% component "unfold/components/button.html" with submit=1 %}
{% trans "Submit form" %}
{% endcomponent %}
</div>
</form>
{% endblock %}