Merge pull request #26927 from edx/mikix/ace-braze

feat: update to edx-ace 1.0.0
This commit is contained in:
Michael Terry
2021-03-12 11:05:30 -05:00
committed by GitHub
22 changed files with 31 additions and 31 deletions

View File

@@ -22,7 +22,7 @@ def send_proctoring_requirements_email(context):
user = context['user']
try:
msg = ProctoringRequirements(context=message_context).personalize(
recipient=Recipient(user.username, user.email),
recipient=Recipient(user.id, user.email),
language=settings.LANGUAGE_CODE,
user_context={'full_name': user.profile.name}
)

View File

@@ -46,7 +46,7 @@ def send_account_recovery_email_for_user(user, request, email=None):
})
msg = AccountRecoveryMessage().personalize(
recipient=Recipient(user.username, email),
recipient=Recipient(user.id, email),
language=get_user_preference(user, LANGUAGE_KEY),
user_context=message_context,
)

View File

@@ -124,7 +124,7 @@ class Command(BaseCommand):
with emulate_http_request(site, user):
msg = PasswordReset().personalize(
recipient=Recipient(user.username, email),
recipient=Recipient(user.id, email),
language=get_user_preference(user, LANGUAGE_KEY),
user_context=message_context,
)

View File

@@ -40,7 +40,7 @@ def send_activation_email(self, msg_string, from_address=None):
dest_addr = msg.recipient.email_address
site = Site.objects.get_current()
user = User.objects.get(username=msg.recipient.username)
user = User.objects.get(id=msg.recipient.lms_user_id)
try:
with emulate_http_request(site=site, user=user):

View File

@@ -36,7 +36,7 @@ class SendActivationEmailTestCase(TestCase):
assert 'platform_name' in self.msg.context
assert 'contact_mailing_address' in self.msg.context
# Verify the presence of the activation-email specific attributes
assert self.msg.recipient.username == self.student.username
assert self.msg.recipient.lms_user_id == self.student.id
assert self.msg.recipient.email_address == self.student.email
assert self.msg.context['routed_user'] == self.student.username
assert self.msg.context['routed_user_email'] == self.student.email

View File

@@ -191,7 +191,7 @@ def compose_activation_email(root_url, user, user_registration=None, route_enabl
dest_addr = user.email
msg = AccountActivation().personalize(
recipient=Recipient(user.username, dest_addr),
recipient=Recipient(user.id, dest_addr),
language=preferences_api.get_user_preference(user, LANGUAGE_KEY),
user_context=message_context,
)
@@ -677,13 +677,13 @@ def do_email_change_request(user, new_email, activation_key=None, secondary_emai
if secondary_email_change_request:
msg = RecoveryEmailCreate().personalize(
recipient=Recipient(user.username, new_email),
recipient=Recipient(user.id, new_email),
language=preferences_api.get_user_preference(user, LANGUAGE_KEY),
user_context=message_context,
)
else:
msg = EmailChange().personalize(
recipient=Recipient(user.username, new_email),
recipient=Recipient(user.id, new_email),
language=preferences_api.get_user_preference(user, LANGUAGE_KEY),
user_context=message_context,
)
@@ -783,7 +783,7 @@ def confirm_email_change(request, key):
})
msg = EmailChangeConfirmation().personalize(
recipient=Recipient(user.username, user.email),
recipient=Recipient(user.id, user.email),
language=preferences_api.get_user_preference(user, LANGUAGE_KEY),
user_context=message_context,
)
@@ -808,7 +808,7 @@ def confirm_email_change(request, key):
user.save()
pec.delete()
# And send it to the new email...
msg.recipient = Recipient(user.username, pec.new_email)
msg.recipient = Recipient(user.id, pec.new_email)
try:
ace.send(msg)
except Exception: # pylint: disable=broad-except

View File

@@ -17,7 +17,7 @@ class CourseEmailOptout(Policy): # lint-amnesty, pylint: disable=missing-class-
# pylint: disable=line-too-long
course_keys = [CourseKey.from_string(course_id) for course_id in course_ids]
if Optout.objects.filter(user__username=message.recipient.username, course_id__in=course_keys).count() == len(course_keys):
if Optout.objects.filter(user_id=message.recipient.lms_user_id, course_id__in=course_keys).count() == len(course_keys):
return PolicyResult(deny={ChannelType.EMAIL})
return PolicyResult(deny=frozenset())

View File

@@ -186,7 +186,7 @@ class TestACEOptoutCourseEmails(ModuleStoreTestCase):
app_label='foo',
name='bar',
recipient=Recipient(
username=self.student.username,
lms_user_id=self.student.id,
email_address=self.student.email,
),
context={

View File

@@ -71,7 +71,7 @@ def send_ace_message(context): # lint-amnesty, pylint: disable=missing-function
with emulate_http_request(site=context['site'], user=thread_author):
message_context = _build_message_context(context)
message = ResponseNotification().personalize(
Recipient(thread_author.username, thread_author.email),
Recipient(thread_author.id, thread_author.email),
_get_course_language(context['course_id']),
message_context
)

View File

@@ -216,7 +216,7 @@ class TaskTestCase(ModuleStoreTestCase): # lint-amnesty, pylint: disable=missin
'site': site,
'site_id': site.id
})
expected_recipient = Recipient(self.thread_author.username, self.thread_author.email)
expected_recipient = Recipient(self.thread_author.id, self.thread_author.email)
actual_message = self.mock_ace_send.call_args_list[0][0][0]
assert expected_message_context == actual_message.context
assert expected_recipient == actual_message.recipient

View File

@@ -494,7 +494,7 @@ def send_mail_to_student(student, param_dict, language=None):
message_class = ace_emails_dict[message_type]
message = message_class().personalize(
recipient=Recipient(username='', email_address=student),
recipient=Recipient(lms_user_id=0, email_address=student),
language=language,
user_context=param_dict,
)

View File

@@ -25,7 +25,7 @@ def send_verification_confirmation_email(context):
try:
with emulate_http_request(site=site, user=user):
msg = VerificationSubmitted(context=message_context).personalize(
recipient=Recipient(user.username, user.email),
recipient=Recipient(user.id, user.email),
language=get_user_preference(user, LANGUAGE_KEY),
user_context={'full_name': user.profile.name}
)
@@ -48,7 +48,7 @@ def send_verification_approved_email(context):
try:
with emulate_http_request(site=site, user=user):
msg = VerificationApproved(context=message_context).personalize(
recipient=Recipient(user.username, user.email),
recipient=Recipient(user.id, user.email),
language=get_user_preference(user, LANGUAGE_KEY),
user_context={'full_name': user.profile.name}
)

View File

@@ -213,7 +213,7 @@ class Command(BaseCommand):
user = users.get(pk=verification.user_id)
with emulate_http_request(site=site, user=user):
msg = expiry_email.personalize(
recipient=Recipient(user.username, user.email),
recipient=Recipient(user.id, user.email),
language=get_user_preference(user, LANGUAGE_KEY),
user_context={
'full_name': user.profile.name,

View File

@@ -82,7 +82,7 @@ class EmailTemplateTagMixin:
self.message = Message(
app_label='test_app_label',
name='test_name',
recipient=Recipient(username='test_user'),
recipient=Recipient(lms_user_id=123),
context={},
send_uuid=uuid.uuid4(),
)

View File

@@ -272,7 +272,7 @@ class ScheduleSendEmailTestMixin(FilteredQueryCountMixin): # lint-amnesty, pyli
}
self._update_schedule_config(schedule_config_kwargs)
mock_message.from_string.return_value.recipient.username = user.username
mock_message.from_string.return_value.recipient.lms_user_id = user.id
mock_msg = Mock()
self.deliver_task(self.site_config.site.id, mock_msg)
if is_enabled:

View File

@@ -88,7 +88,7 @@ class BinnedSchedulesBaseResolver(PrefixedDebugLoggerMixin, RecipientResolver):
for (user, language, context) in self.schedules_for_bin():
msg = msg_type.personalize(
Recipient(
user.username,
user.id,
self.override_recipient_email or user.email,
),
language,
@@ -370,7 +370,7 @@ class CourseUpdateResolver(BinnedSchedulesBaseResolver):
for (user, language, context) in self.schedules_for_bin():
msg = InstructorLedCourseUpdate().personalize(
Recipient(
user.username,
user.id,
self.override_recipient_email or user.email,
),
language,
@@ -451,7 +451,7 @@ class CourseNextSectionUpdate(PrefixedDebugLoggerMixin, RecipientResolver):
for (user, language, context) in schedules:
msg = CourseUpdate().personalize(
Recipient(
user.username,
user.id,
self.override_recipient_email or user.email,
),
language,

View File

@@ -277,7 +277,7 @@ def _schedule_send(msg_str, site_id, delivery_config_var, log_prefix): # lint-a
if _is_delivery_enabled(site, delivery_config_var, log_prefix):
msg = Message.from_string(msg_str)
user = User.objects.get(username=msg.recipient.username)
user = User.objects.get(id=msg.recipient.lms_user_id)
with emulate_http_request(site=site, user=user):
_annonate_send_task_for_monitoring(msg)
LOG.debug(u'%s: Sending message = %s', log_prefix, msg_str)

View File

@@ -456,7 +456,7 @@ class DeactivateLogoutView(APIView):
default=settings.LANGUAGE_CODE
)
notification = DeletionNotificationMessage().personalize(
recipient=Recipient(username='', email_address=user_email),
recipient=Recipient(lms_user_id=0, email_address=user_email),
language=language_code,
user_context=notification_context,
)

View File

@@ -128,7 +128,7 @@ def send_password_reset_success_email(user, request):
)
msg = PasswordResetSuccess(context=message_context).personalize(
recipient=Recipient(user.username, user.email),
recipient=Recipient(user.id, user.email),
language=user_language_preference,
user_context={"name": user.profile.name},
)
@@ -165,7 +165,7 @@ def send_password_reset_email_for_user(user, request, preferred_email=None):
})
msg = PasswordReset().personalize(
recipient=Recipient(user.username, preferred_email or user.email),
recipient=Recipient(user.id, preferred_email or user.email),
language=user_language_preference,
user_context=message_context,
)
@@ -628,7 +628,7 @@ def password_change_request_handler(request):
})
msg = PasswordReset().personalize(
recipient=Recipient(username='', email_address=email),
recipient=Recipient(lms_user_id=0, email_address=email),
language=settings.LANGUAGE_CODE,
user_context=message_context,
)

View File

@@ -88,7 +88,7 @@ docopt==0.6.2 # via xmodule
docutils==0.16 # via botocore
drf-jwt==1.17.3 # via edx-drf-extensions
drf-yasg==1.20.0 # via edx-api-doc-tools
edx-ace==0.1.17 # via -r requirements/edx/base.in
edx-ace==1.0.0 # via -r requirements/edx/base.in
edx-analytics-data-api-client==0.17.0 # via -r requirements/edx/base.in
edx-api-doc-tools==1.4.0 # via -r requirements/edx/base.in
edx-bulk-grades==0.8.2 # via -c requirements/edx/../constraints.txt, -r requirements/edx/base.in, staff-graded-xblock

View File

@@ -99,7 +99,7 @@ docopt==0.6.2 # via -r requirements/edx/testing.txt, xmodule
docutils==0.16 # via -r requirements/edx/testing.txt, botocore, m2r, sphinx
drf-jwt==1.17.3 # via -r requirements/edx/testing.txt, edx-drf-extensions
drf-yasg==1.20.0 # via -r requirements/edx/testing.txt, edx-api-doc-tools
edx-ace==0.1.17 # via -r requirements/edx/testing.txt
edx-ace==1.0.0 # via -r requirements/edx/testing.txt
edx-analytics-data-api-client==0.17.0 # via -r requirements/edx/testing.txt
edx-api-doc-tools==1.4.0 # via -r requirements/edx/testing.txt
edx-bulk-grades==0.8.2 # via -c requirements/edx/../constraints.txt, -r requirements/edx/testing.txt, staff-graded-xblock

View File

@@ -96,7 +96,7 @@ docopt==0.6.2 # via -r requirements/edx/base.txt, xmodule
docutils==0.16 # via -r requirements/edx/base.txt, botocore
drf-jwt==1.17.3 # via -r requirements/edx/base.txt, edx-drf-extensions
drf-yasg==1.20.0 # via -r requirements/edx/base.txt, edx-api-doc-tools
edx-ace==0.1.17 # via -r requirements/edx/base.txt
edx-ace==1.0.0 # via -r requirements/edx/base.txt
edx-analytics-data-api-client==0.17.0 # via -r requirements/edx/base.txt
edx-api-doc-tools==1.4.0 # via -r requirements/edx/base.txt
edx-bulk-grades==0.8.2 # via -c requirements/edx/../constraints.txt, -r requirements/edx/base.txt, staff-graded-xblock