From e980e01a1805dbe5fab62a3b027a3260ba723765 Mon Sep 17 00:00:00 2001 From: "waleed.mujahid" Date: Wed, 29 Oct 2025 13:48:03 +0500 Subject: [PATCH 1/2] feat: Add user email replacement in HTML block data rendering --- xmodule/html_block.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/xmodule/html_block.py b/xmodule/html_block.py index 9840c3007f92..abd7c5964b26 100644 --- a/xmodule/html_block.py +++ b/xmodule/html_block.py @@ -128,6 +128,13 @@ def get_html(self): if user_id: data = data.replace("%%USER_ID%%", user_id) data = data.replace("%%COURSE_ID%%", str(self.scope_ids.usage_id.context_key)) + + # EDLYCUSTOM: Replace %%USER_EMAIL%% with user's email in HTML xblock + if getattr(self.system, 'get_real_user', None): + user = self.system.get_real_user(user_id) + if user and hasattr(user, 'email'): + data = data.replace("%%USER_EMAIL%%", str(user.email)) + return data return self.data From 7a6f0ff45e329ad6422d67a34b43803fdad51038 Mon Sep 17 00:00:00 2001 From: "waleed.mujahid" Date: Thu, 30 Oct 2025 16:38:25 +0500 Subject: [PATCH 2/2] fix: Refactor user email retrieval in HTML block rendering --- xmodule/html_block.py | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/xmodule/html_block.py b/xmodule/html_block.py index abd7c5964b26..10f2ed82d642 100644 --- a/xmodule/html_block.py +++ b/xmodule/html_block.py @@ -120,20 +120,19 @@ def get_html(self): """ Returns html required for rendering the block. """ if self.data: data = self.data - user_id = ( + user = ( self.runtime.service(self, 'user') .get_current_user() - .opt_attrs.get(ATTR_KEY_DEPRECATED_ANONYMOUS_USER_ID) + ) + user_id = user.opt_attrs.get(ATTR_KEY_DEPRECATED_ANONYMOUS_USER_ID) if user_id: data = data.replace("%%USER_ID%%", user_id) data = data.replace("%%COURSE_ID%%", str(self.scope_ids.usage_id.context_key)) # EDLYCUSTOM: Replace %%USER_EMAIL%% with user's email in HTML xblock - if getattr(self.system, 'get_real_user', None): - user = self.system.get_real_user(user_id) - if user and hasattr(user, 'email'): - data = data.replace("%%USER_EMAIL%%", str(user.email)) + email = user.emails[0] + data = data.replace("%%USER_EMAIL%%", email) return data return self.data