diff --git a/recruitment/__pycache__/views.cpython-312.pyc b/recruitment/__pycache__/views.cpython-312.pyc index a4efc7d..e95788d 100644 Binary files a/recruitment/__pycache__/views.cpython-312.pyc and b/recruitment/__pycache__/views.cpython-312.pyc differ diff --git a/recruitment/views.py b/recruitment/views.py index 72b5e92..9db131b 100644 --- a/recruitment/views.py +++ b/recruitment/views.py @@ -4692,7 +4692,8 @@ def message_detail(request, message_id): @login_required def message_create(request): - """Create a new message""" + """Create a new message""" + from .email_service import EmailService if request.method == "POST": form = MessageForm(request.user, request.POST) @@ -4700,8 +4701,25 @@ def message_create(request): message = form.save(commit=False) message.sender = request.user message.save() - messages.success(request, "Message sent successfully!") + ["recipient", "job", "subject", "content", "message_type"] + recipient_email = form.cleaned_data['recipient'].email # Assuming recipient is a User or Model with an 'email' field + subject = form.cleaned_data['subject'] + custom_message = form.cleaned_data['content'] + job_id = form.cleaned_data['job'].id if 'job' in form.cleaned_data and form.cleaned_data['job'] else None + sender_user_id = request.user.id + + task_id = async_task( + 'recruitment.tasks.send_bulk_email_task', + subject, + custom_message, # Pass the custom message + [recipient_email], # Pass the specific recipient as a list of one + + sender_user_id=sender_user_id, + job_id=job_id, + hook='recruitment.tasks.email_success_hook') + + logger.info(f"{task_id} queued.") return redirect("message_list") else: messages.error(request, "Please correct the errors below.") @@ -4714,6 +4732,8 @@ def message_create(request): if request.user.user_type != "staff": return render(request, "messages/candidate_message_form.html", context) return render(request, "messages/message_form.html", context) + + @login_required def message_reply(request, message_id): """Reply to a message"""