From b0a96641eff290ad805202c8bb5d548df16f3d83 Mon Sep 17 00:00:00 2001 From: Rehan Ansari Date: Sun, 14 Dec 2025 21:16:02 +0530 Subject: [PATCH] chore: Remove deprecated doctype and related links --- lms/lms/api.py | 69 ------------------- .../exercise_latest_submission.json | 24 ++----- lms/lms/doctype/lms_course/lms_course.py | 12 ---- .../lms_enrollment/lms_enrollment.json | 16 +---- lms/lms/utils.py | 7 -- 5 files changed, 5 insertions(+), 123 deletions(-) diff --git a/lms/lms/api.py b/lms/lms/api.py index b7a405c4..83c00812 100644 --- a/lms/lms/api.py +++ b/lms/lms/api.py @@ -66,75 +66,6 @@ def save_current_lesson(course_name, lesson_name): frappe.db.set_value("LMS Enrollment", name, "current_lesson", lesson_name) -@frappe.whitelist() -def join_cohort(course, cohort, subgroup, invite_code): - """Creates a Cohort Join Request for given user.""" - course_doc = frappe.get_doc("LMS Course", course) - cohort_doc = course_doc and course_doc.get_cohort(cohort) - subgroup_doc = cohort_doc and cohort_doc.get_subgroup(subgroup) - - if not subgroup_doc or subgroup_doc.invite_code != invite_code: - return {"ok": False, "error": "Invalid join link"} - - data = { - "doctype": "Cohort Join Request", - "cohort": cohort_doc.name, - "subgroup": subgroup_doc.name, - "email": frappe.session.user, - "status": "Pending", - } - # Don't insert duplicate records - if frappe.db.exists(data): - return {"ok": True, "status": "record found"} - else: - doc = frappe.get_doc(data) - doc.insert() - return {"ok": True, "status": "record created"} - - -@frappe.whitelist() -def approve_cohort_join_request(join_request): - r = frappe.get_doc("Cohort Join Request", join_request) - sg = r and frappe.get_doc("Cohort Subgroup", r.subgroup) - if not sg or r.status not in ["Pending", "Accepted"]: - return {"ok": False, "error": "Invalid Join Request"} - if not sg.is_manager(frappe.session.user) and "System Manager" not in frappe.get_roles(): - return {"ok": False, "error": "Permission Deined"} - - r.status = "Accepted" - r.save() - return {"ok": True} - - -@frappe.whitelist() -def reject_cohort_join_request(join_request): - r = frappe.get_doc("Cohort Join Request", join_request) - sg = r and frappe.get_doc("Cohort Subgroup", r.subgroup) - if not sg or r.status not in ["Pending", "Rejected"]: - return {"ok": False, "error": "Invalid Join Request"} - if not sg.is_manager(frappe.session.user) and "System Manager" not in frappe.get_roles(): - return {"ok": False, "error": "Permission Deined"} - - r.status = "Rejected" - r.save() - return {"ok": True} - - -@frappe.whitelist() -def undo_reject_cohort_join_request(join_request): - r = frappe.get_doc("Cohort Join Request", join_request) - sg = r and frappe.get_doc("Cohort Subgroup", r.subgroup) - # keeping Pending as well to consider the case of duplicate requests - if not sg or r.status not in ["Pending", "Rejected"]: - return {"ok": False, "error": "Invalid Join Request"} - if not sg.is_manager(frappe.session.user) and "System Manager" not in frappe.get_roles(): - return {"ok": False, "error": "Permission Deined"} - - r.status = "Pending" - r.save() - return {"ok": True} - - @frappe.whitelist(allow_guest=True) def get_user_info(): if frappe.session.user == "Guest": diff --git a/lms/lms/doctype/exercise_latest_submission/exercise_latest_submission.json b/lms/lms/doctype/exercise_latest_submission/exercise_latest_submission.json index 375f9758..be94eb38 100644 --- a/lms/lms/doctype/exercise_latest_submission/exercise_latest_submission.json +++ b/lms/lms/doctype/exercise_latest_submission/exercise_latest_submission.json @@ -19,9 +19,7 @@ "comments", "latest_submission", "member", - "member_email", - "member_cohort", - "member_subgroup" + "member_email" ], "fields": [ { @@ -121,27 +119,11 @@ "label": "Member Email", "options": "User", "search_index": 1 - }, - { - "fetch_from": "member.cohort", - "fieldname": "member_cohort", - "fieldtype": "Link", - "label": "Member Cohort", - "options": "Cohort", - "search_index": 1 - }, - { - "fetch_from": "member.subgroup", - "fieldname": "member_subgroup", - "fieldtype": "Link", - "label": "Member Subgroup", - "options": "Cohort Subgroup", - "search_index": 1 } ], "index_web_pages_for_search": 1, "links": [], - "modified": "2021-12-08 22:58:46.312863", + "modified": "2025-12-14 20:56:52.370697", "modified_by": "Administrator", "module": "LMS", "name": "Exercise Latest Submission", @@ -160,7 +142,9 @@ "write": 1 } ], + "row_format": "Dynamic", "sort_field": "modified", "sort_order": "DESC", + "states": [], "track_changes": 1 } diff --git a/lms/lms/doctype/lms_course/lms_course.py b/lms/lms/doctype/lms_course/lms_course.py index 85e6dbdf..c03d48e7 100644 --- a/lms/lms/doctype/lms_course/lms_course.py +++ b/lms/lms/doctype/lms_course/lms_course.py @@ -179,18 +179,6 @@ class LMSCourse(Document): batch_names = {m.batch_old for m in memberships} return [b for b in batches if b.name in batch_names] - def get_cohorts(self): - return frappe.get_all( - "Cohort", - {"course": self.name}, - ["name", "slug", "title", "begin_date", "end_date"], - order_by="creation", - ) - - def get_cohort(self, cohort_slug): - name = frappe.get_value("Cohort", {"course": self.name, "slug": cohort_slug}) - return name and frappe.get_doc("Cohort", name) - def reindex_exercises(self): for i, c in enumerate(get_chapters(self.name), start=1): self._reindex_exercises_in_chapter(c, i) diff --git a/lms/lms/doctype/lms_enrollment/lms_enrollment.json b/lms/lms/doctype/lms_enrollment/lms_enrollment.json index cfcdf76b..19b79414 100644 --- a/lms/lms/doctype/lms_enrollment/lms_enrollment.json +++ b/lms/lms/doctype/lms_enrollment/lms_enrollment.json @@ -19,8 +19,6 @@ "purchased_certificate", "certificate", "section_break_8", - "cohort", - "subgroup", "batch_old", "column_break_12", "member_type", @@ -101,18 +99,6 @@ "label": "Progress", "read_only": 1 }, - { - "fieldname": "cohort", - "fieldtype": "Link", - "label": "Cohort", - "options": "Cohort" - }, - { - "fieldname": "subgroup", - "fieldtype": "Link", - "label": "Subgroup", - "options": "Cohort Subgroup" - }, { "fieldname": "column_break_12", "fieldtype": "Column Break" @@ -155,7 +141,7 @@ "grid_page_length": 50, "index_web_pages_for_search": 1, "links": [], - "modified": "2025-07-02 21:27:30.733482", + "modified": "2025-12-14 20:59:37.166118", "modified_by": "Administrator", "module": "LMS", "name": "LMS Enrollment", diff --git a/lms/lms/utils.py b/lms/lms/utils.py index fd4babf9..e59201d1 100644 --- a/lms/lms/utils.py +++ b/lms/lms/utils.py @@ -356,13 +356,6 @@ def is_mentor(course, email): return frappe.db.count("LMS Course Mentor Mapping", {"course": course, "mentor": email}) -def is_cohort_staff(course, user_email): - """Returns True if the user is either a mentor or a staff for one or more active cohorts of this course.""" - staff = {"doctype": "Cohort Staff", "course": course, "email": user_email} - mentor = {"doctype": "Cohort Mentor", "course": course, "email": user_email} - return frappe.db.exists(staff) or frappe.db.exists(mentor) - - def get_mentors(course): """Returns the list of all mentors for this course.""" course_mentors = []