Skip to content
This repository was archived by the owner on Mar 24, 2026. It is now read-only.
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions enrollment_email/apps.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ class EnrollmentEmailAppConfig(AppConfig):
"""

name = 'enrollment_email'
plugin_app = {}

def ready(self):
from . import signals
17 changes: 17 additions & 0 deletions enrollment_email/message_types.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# -*- coding: utf-8 -*-
"""
ACE message types related to staff notifications of enrollments.
"""

from openedx.core.djangoapps.ace_common.message import BaseMessageType


class Enrolled(BaseMessageType):
"""
A message to staff after a student enrolls into a course.
"""
APP_LABEL = 'enrollment_email'

def __init__(self, *args, **kwargs):
super(Enrolled, self).__init__(*args, **kwargs)
self.options['transactional'] = True # pylint: disable=unsupported-assignment-operation
29 changes: 24 additions & 5 deletions enrollment_email/signals.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,18 +4,37 @@
"""

import logging
from edx_ace import ace
from edx_ace.recipient import Recipient
from django.contrib.sites.models import Site
from django.dispatch import receiver

from message_types import Enrolled
from openedx.core.djangoapps.ace_common.template_context import get_base_template_context
from student.models import ENROLL_STATUS_CHANGE, EnrollStatusChange

LOGGER = logging.getLogger(__name__)

@receiver(ENROLL_STATUS_CHANGE)
def send_email_to_staff_on_student_enrollment(sender, event=None, user=None, **kwargs): # pylint: disable=unused-argument
"""
Sends an e-mail to staff after a new enrollment.
"""

print(event)
raise NotImplementedError("Continue porting code from https://github.com/edx/edx-platform/pull/16669 and transform it into a plugin")
if event == EnrollStatusChange.enroll:
raise NotImplementedError("enrolling")
course_id = kwargs['course_id'].to_deprecated_string()
LOGGER.debug('Sending enrollment notification (user %i, %course %s)', user.id, course_id)
site = Site.objects.get_current()
message_context = get_base_template_context(site)
message_context.update({
'username': user.username,
'user_full_name': user.profile.name if hasattr(user, 'profile') else None,
'course_id': course_id
}),

message = Enrolled().personalize(
recipient=Recipient(username='', email_address='…@….com'), # FIXME define a setting and set it
language=None, # FIXME
user_context=message_context,
)

ace.send(message)
raise NotImplementedError("Continue portings code from https://github.com/edx/edx-platform/pull/16669 and transform it into a plugin")
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
{% extends 'ace_common/edx_ace/common/base_body.html' %}

{% load i18n %}
{% load static %}
{% block content %}

<p>
{% if user_full_name %}
{% blocktrans %}Student {{ username }} ({{ user_full_name }}) enrolled into course {{ course_id }}{% endblocktrans %}
{% else %}
{% blocktrans %}Student {{ username }} enrolled into course {{ course_id }}{% endblocktrans %}
{% endif %}
{% endautoescape %}
</p>

{% endblock %}
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{% load i18n %}{% autoescape off %}
{% if user_full_name %}
{% blocktrans %}Student {{ username }} ({{ user_full_name }}) enrolled into course {{ course_id }}{% endblocktrans %}
{% else %}
{% blocktrans %}Student {{ username }} enrolled into course {{ course_id }}{% endblocktrans %}
{% endif %}
{% endautoescape %}
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{{ platform_name }}
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
{% extends 'ace_common/edx_ace/common/base_head.html' %}

Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
{% load i18n %}
{% autoescape off %}
{% blocktrans trimmed %}Student enrollment into course {{ course_id }}{% endblocktrans %}
{% endautoescape %}