From 38018165358b76908c821a614e98b7339923406d Mon Sep 17 00:00:00 2001 From: Jannat Patel Date: Mon, 9 Mar 2026 16:22:21 +0530 Subject: [PATCH] fix: dont capture progress of demo course for analytics (cherry picked from commit a6da65ab9964daaa56fe71183b0ad8998beb6f95) # Conflicts: # lms/lms/utils.py --- lms/demo/demo_data.py | 4 +-- .../doctype/course_lesson/course_lesson.py | 9 +++---- lms/lms/utils.py | 25 +++++++++++++++++++ 3 files changed, 30 insertions(+), 8 deletions(-) diff --git a/lms/demo/demo_data.py b/lms/demo/demo_data.py index addeb50d..6fa819dc 100644 --- a/lms/demo/demo_data.py +++ b/lms/demo/demo_data.py @@ -172,7 +172,7 @@ def create_intro_lesson_1(course): title = "What is a Learning Management System?" chapter = get_chapter(course, "Introduction") content = """ - {"time":1772449622100,"blocks":[{"id":"vYTdcXYVgI","type":"embed","data":{"service":"youtube","source":"http://youtube.com/watch?v=SauviPVDItU","embed":"SauviPVDItU","caption":""}}],"version":"2.29.0"} + {"time":1772449622100,"blocks":[{"id":"vYTdcXYVgI","type":"embed","data":{"service":"youtube","source":"https://www.youtube.com/watch?v=-Ulzqjj49lk","embed":"-Ulzqjj49lk","caption":""}}],"version":"2.29.0"} """ create_lesson(course, chapter, title, content) @@ -181,7 +181,7 @@ def create_intro_lesson_2(course): title = "What is Frappe Learning?" chapter = get_chapter(course, "Introduction") content = """ - {"time":1772449622100,"blocks":[{"id":"vYTdcXYVgI","type":"embed","data":{"service":"youtube","source":"http://youtube.com/watch?v=SauviPVDItU","embed":"SauviPVDItU","caption":""}}],"version":"2.29.0"} + {"time":1772449622100,"blocks":[{"id":"vYTdcXYVgI","type":"embed","data":{"service":"youtube","source":"https://www.youtube.com/watch?v=VIt_bsbBjLI","embed":"VIt_bsbBjLI","caption":""}}],"version":"2.29.0"} """ create_lesson(course, chapter, title, content) diff --git a/lms/lms/doctype/course_lesson/course_lesson.py b/lms/lms/doctype/course_lesson/course_lesson.py index 8d546e00..c47e56c7 100644 --- a/lms/lms/doctype/course_lesson/course_lesson.py +++ b/lms/lms/doctype/course_lesson/course_lesson.py @@ -9,7 +9,7 @@ from frappe.model.document import Document from frappe.realtime import get_website_room from frappe.utils.telemetry import capture -from lms.lms.utils import get_course_progress, recalculate_course_progress +from lms.lms.utils import get_course_progress, is_demo_course, recalculate_course_progress from ...md import find_macros @@ -127,7 +127,8 @@ def save_progress(lesson: str, course: str, scorm_details: dict = None): ) progress = get_course_progress(course) - capture_progress_for_analytics() + if not is_demo_course(course): + capture("course_progress", "lms") # Had to get doc, as on_change doesn't trigger when you use set_value. The trigger is necessary for badge to get assigned. enrollment = frappe.get_doc("LMS Enrollment", membership) @@ -145,10 +146,6 @@ def save_progress(lesson: str, course: str, scorm_details: dict = None): return progress -def capture_progress_for_analytics(): - capture("course_progress", "lms") - - def get_quiz_progress(lesson): lesson_details = frappe.db.get_value("Course Lesson", lesson, ["body", "content"], as_dict=1) quizzes = [] diff --git a/lms/lms/utils.py b/lms/lms/utils.py index 513512ba..48717e04 100644 --- a/lms/lms/utils.py +++ b/lms/lms/utils.py @@ -2328,3 +2328,28 @@ def recalculate_course_progress(course: str, member: str): ) frappe.db.set_value("LMS Enrollment", membership, "progress", progress) update_program_progress(member) +<<<<<<< HEAD +======= + + +def get_field_meta(doctype, fieldnames): + """Returns field metadata for 'fieldnames' from 'doctype'""" + meta = frappe.get_meta(doctype) + fieldnames_meta = {} + + for fieldname in fieldnames: + field = meta.get_field(fieldname) + if field: + fieldnames_meta[fieldname] = { + "reqd": field.reqd, + "default": field.default, + "description": field.description, + } + + return fieldnames_meta + + +def is_demo_course(course: str) -> bool: + title = frappe.db.get_value("LMS Course", course, "title") + return title == "A guide to Frappe Learning" +>>>>>>> a6da65ab (fix: dont capture progress of demo course for analytics)