From 1faa697b6c9beffab6fc9cfccebc161b7eab512e Mon Sep 17 00:00:00 2001 From: Jannat Patel Date: Mon, 22 Dec 2025 11:45:36 +0530 Subject: [PATCH 1/3] fix: enrollment eligibility conditions --- lms/lms/doctype/lms_enrollment/lms_enrollment.py | 2 +- lms/lms/utils.py | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/lms/lms/doctype/lms_enrollment/lms_enrollment.py b/lms/lms/doctype/lms_enrollment/lms_enrollment.py index ff269997..69e853b9 100644 --- a/lms/lms/doctype/lms_enrollment/lms_enrollment.py +++ b/lms/lms/doctype/lms_enrollment/lms_enrollment.py @@ -39,7 +39,7 @@ class LMSEnrollment(Document): "reference_doctype": "LMS Course", "reference_docname": self.course, "member": self.member, - "payment_receipt": True, + "payment_received": True, }, ) diff --git a/lms/lms/utils.py b/lms/lms/utils.py index 2bf2be7c..3a737108 100644 --- a/lms/lms/utils.py +++ b/lms/lms/utils.py @@ -1800,7 +1800,7 @@ def validate_enrollment_eligibility(batch_doc, payment_doc=None): if not payment_doc or not payment_doc.payment_received: frappe.throw(_("Payment is required to enroll in this batch.")) - elif not batch_doc.allow_self_enrollment: + elif not batch_doc.allow_self_enrollment and not is_admin(): frappe.throw(_("Enrollment in this batch is restricted. Please contact the Administrator.")) students = frappe.db.count("LMS Batch Enrollment", {"batch": batch_doc.name}) @@ -1808,6 +1808,11 @@ def validate_enrollment_eligibility(batch_doc, payment_doc=None): frappe.throw(_("There are no seats available in this batch.")) +def is_admin(): + roles = frappe.get_roles(frappe.session.user) + return "Course Creator" in roles or "Moderator" in roles or "Batch Evaluator" in roles + + def create_enrollment(batch, payment_doc=None): new_student = frappe.new_doc("LMS Batch Enrollment") new_student.update( From a3fb63cd083f95b062824c58380adfd68b001977 Mon Sep 17 00:00:00 2001 From: Jannat Patel Date: Mon, 22 Dec 2025 11:45:52 +0530 Subject: [PATCH 2/3] fix: default livecode url --- lms/lms/doctype/lms_settings/lms_settings.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lms/lms/doctype/lms_settings/lms_settings.json b/lms/lms/doctype/lms_settings/lms_settings.json index af046650..6abac433 100644 --- a/lms/lms/doctype/lms_settings/lms_settings.json +++ b/lms/lms/doctype/lms_settings/lms_settings.json @@ -76,6 +76,7 @@ ], "fields": [ { + "default": "https://falcon.frappe.io/", "fieldname": "livecode_url", "fieldtype": "Data", "label": "LiveCode URL" @@ -451,7 +452,7 @@ "index_web_pages_for_search": 1, "issingle": 1, "links": [], - "modified": "2025-12-10 17:36:15.689695", + "modified": "2025-12-22 11:30:13.868031", "modified_by": "sayali@frappe.io", "module": "LMS", "name": "LMS Settings", From 30133727118d7512b42789b8904d5876d170cfd8 Mon Sep 17 00:00:00 2001 From: Jannat Patel Date: Tue, 23 Dec 2025 10:58:12 +0530 Subject: [PATCH 3/3] fix: don't fetch application count when user is not logged in --- frontend/src/pages/JobDetail.vue | 2 +- lms/lms/doctype/course_evaluator/test_course_evaluator.py | 8 ++++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/frontend/src/pages/JobDetail.vue b/frontend/src/pages/JobDetail.vue index 9987bb42..d8f80d18 100644 --- a/frontend/src/pages/JobDetail.vue +++ b/frontend/src/pages/JobDetail.vue @@ -196,8 +196,8 @@ const job = createResource({ onSuccess: (data) => { if (user.data?.name) { jobApplication.submit() + applicationCount.submit() } - applicationCount.submit() }, }) diff --git a/lms/lms/doctype/course_evaluator/test_course_evaluator.py b/lms/lms/doctype/course_evaluator/test_course_evaluator.py index d5ce5eee..ad95531a 100644 --- a/lms/lms/doctype/course_evaluator/test_course_evaluator.py +++ b/lms/lms/doctype/course_evaluator/test_course_evaluator.py @@ -43,8 +43,12 @@ class TestCourseEvaluator(UnitTestCase): def calculated_first_date_of_schedule(self): today = getdate() - offset = (0 - today.weekday() + 7) % 7 # 0 for Monday - first_date = add_days(today, offset) + offset_monday = (0 - today.weekday() + 7) % 7 # 0 for Monday + offset_wednesday = (2 - today.weekday() + 7) % 7 # 2 for Wednesday + if offset_monday < offset_wednesday: + first_date = add_days(today, offset_monday) + else: + first_date = add_days(today, offset_wednesday) return first_date def calculated_last_date_of_schedule(self, first_date):