feat: admin panel enrichment

This commit is contained in:
mohamad
2026-07-19 14:31:28 +03:30
parent d8d7819eca
commit 1042fba121
77 changed files with 4616 additions and 2 deletions
+58
View File
@@ -0,0 +1,58 @@
from django.conf import settings
from django.contrib.auth import get_user_model
from django.core.mail import send_mail
from django.template.loader import render_to_string
from .models import ProjectBrief
def _notify_recipients():
configured = getattr(settings, "MANAGED_PROJECTS_NOTIFY_EMAILS", None)
if configured:
return [email.strip() for email in configured.split(",") if email.strip()]
User = get_user_model()
return list(
User.objects.filter(is_superuser=True, is_active=True)
.exclude(email="")
.values_list("email", flat=True)
)
def send_new_brief_admin_email(brief: ProjectBrief):
recipients = _notify_recipients()
if not recipients:
return
subject = f"New project brief: {brief.title}"
body = render_to_string(
"projects/emails/new_brief_admin.txt",
{"brief": brief},
)
send_mail(
subject,
body,
settings.DEFAULT_FROM_EMAIL,
recipients,
fail_silently=False,
)
def send_brief_status_email(brief: ProjectBrief, previous_status: str):
client_email = brief.client.email
if not client_email:
return
status_labels = dict(ProjectBrief.STATUS_CHOICES)
subject = f"Project update: {brief.title}"
body = render_to_string(
"projects/emails/status_change_client.txt",
{
"brief": brief,
"previous_status": status_labels.get(previous_status, previous_status),
},
)
send_mail(
subject,
body,
settings.DEFAULT_FROM_EMAIL,
[client_email],
fail_silently=False,
)