diff --git a/frontend/src/components/DiscussionReplies.vue b/frontend/src/components/DiscussionReplies.vue
index aad4d902..6911a107 100644
--- a/frontend/src/components/DiscussionReplies.vue
+++ b/frontend/src/components/DiscussionReplies.vue
@@ -93,11 +93,19 @@
diff --git a/frontend/src/components/Settings/Members.vue b/frontend/src/components/Settings/Members.vue
index c9b9db45..c7abd1d4 100644
--- a/frontend/src/components/Settings/Members.vue
+++ b/frontend/src/components/Settings/Members.vue
@@ -131,6 +131,7 @@ import { ref, watch, reactive, inject } from 'vue'
import { RefreshCw, Plus, Search, Shield } from 'lucide-vue-next'
import { useOnboarding } from 'frappe-ui/frappe'
import type { User } from '@/components/Settings/types'
+import { useTelemetry } from 'frappe-ui/frappe'
type Member = {
username: string
@@ -149,6 +150,7 @@ const hasNextPage = ref(false)
const showForm = ref(false)
const user = inject('$user')
const { updateOnboardingStep } = useOnboarding('learning')
+const { capture } = useTelemetry()
const member = reactive({
email: '',
@@ -202,6 +204,7 @@ const addMember = (close: () => void) => {
})
.then((data: Member) => {
if (user?.data?.is_system_manager) updateOnboardingStep('invite_students')
+ capture('user_added')
show.value = false
router.push({
name: 'ProfileRoles',
diff --git a/frontend/src/pages/Batches/components/NewBatchModal.vue b/frontend/src/pages/Batches/components/NewBatchModal.vue
index b88d938a..5bd6e443 100644
--- a/frontend/src/pages/Batches/components/NewBatchModal.vue
+++ b/frontend/src/pages/Batches/components/NewBatchModal.vue
@@ -111,7 +111,7 @@
diff --git a/frontend/src/pages/Courses/NewCourseModal.vue b/frontend/src/pages/Courses/NewCourseModal.vue
index 02e98c1a..829669dd 100644
--- a/frontend/src/pages/Courses/NewCourseModal.vue
+++ b/frontend/src/pages/Courses/NewCourseModal.vue
@@ -76,7 +76,7 @@
diff --git a/lms/lms/doctype/course_lesson/course_lesson.py b/lms/lms/doctype/course_lesson/course_lesson.py
index e891b9b0..7add79ab 100644
--- a/lms/lms/doctype/course_lesson/course_lesson.py
+++ b/lms/lms/doctype/course_lesson/course_lesson.py
@@ -103,7 +103,7 @@ def save_progress(lesson: str, course: str, scorm_details: dict = None):
)
progress = get_course_progress(course)
- capture_progress_for_analytics(progress, course)
+ capture_progress_for_analytics()
# 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)
@@ -121,9 +121,8 @@ def save_progress(lesson: str, course: str, scorm_details: dict = None):
return progress
-def capture_progress_for_analytics(progress, course):
- if progress in [25, 50, 75, 100]:
- capture("course_progress", "lms", properties={"course": course, "progress": progress})
+def capture_progress_for_analytics():
+ capture("course_progress", "lms")
def get_quiz_progress(lesson):
diff --git a/lms/lms/doctype/lms_certificate/lms_certificate.py b/lms/lms/doctype/lms_certificate/lms_certificate.py
index 19579a07..bf5cfa76 100644
--- a/lms/lms/doctype/lms_certificate/lms_certificate.py
+++ b/lms/lms/doctype/lms_certificate/lms_certificate.py
@@ -19,8 +19,8 @@ class LMSCertificate(Document):
self.name = make_autoname("hash", self.doctype)
def after_insert(self):
- self.send_certification_email()
capture("certificate_issued", "lms")
+ self.send_certification_email()
def send_certification_email(self):
outgoing_email_account = frappe.get_cached_value(
diff --git a/lms/lms/doctype/lms_course_review/lms_course_review.json b/lms/lms/doctype/lms_course_review/lms_course_review.json
index 64f0ac27..a7d7fdbe 100644
--- a/lms/lms/doctype/lms_course_review/lms_course_review.json
+++ b/lms/lms/doctype/lms_course_review/lms_course_review.json
@@ -41,7 +41,7 @@
"grid_page_length": 50,
"index_web_pages_for_search": 1,
"links": [],
- "modified": "2026-02-20 17:40:39.823017",
+ "modified": "2026-02-23 16:21:18.503806",
"modified_by": "sayali@frappe.io",
"module": "LMS",
"name": "LMS Course Review",
@@ -65,6 +65,7 @@
"export": 1,
"if_owner": 1,
"print": 1,
+ "read": 1,
"report": 1,
"role": "LMS Student",
"share": 1,