bottleneckcrm/backend/tasks/celery_tasks.py
ashwin31 cbcab8636a fix: resolve setup and Docker issues preventing project from running
Use shared_task instead of standalone Celery apps so celery -A crm worker
discovers all tasks. Add safe defaults for all required env vars in
settings.py so missing .env no longer crashes Django. Create idempotent
management command to bootstrap a superuser in Docker. Populate
.env.example with working dev defaults.

Fixes #490, #493, #508, #388, #383, #382, #381, #441, #519

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-17 10:27:47 +05:30

38 lines
1.3 KiB
Python

from celery import shared_task
from django.conf import settings
from django.core.mail import EmailMessage
from django.shortcuts import reverse
from django.template.loader import render_to_string
from accounts.models import Account
from common.models import User
from common.tasks import set_rls_context
from contacts.models import Contact
from tasks.models import Task
@shared_task
def send_email(
task_id, recipients, org_id, domain="demo.django-crm.io", protocol="http"
):
set_rls_context(org_id)
task = Task.objects.filter(id=task_id).first()
created_by = task.created_by
for user in recipients:
recipients_list = []
user = User.objects.filter(id=user, is_active=True).first()
if user:
recipients_list.append(user.email)
subject = " Assigned a task for you ."
context = {}
context["task_title"] = task.title
context["task_id"] = task.id
context["task_created_by"] = task.created_by
context["url"] = protocol + "://" + domain
context["user"] = user
html_content = render_to_string(
"tasks_email_template.html", context=context
)
msg = EmailMessage(subject=subject, body=html_content, to=recipients_list)
msg.content_subtype = "html"
msg.send()