diff --git a/frontend/src/pages/Profile.vue b/frontend/src/pages/Profile.vue index f18f30c6..44ba89fc 100644 --- a/frontend/src/pages/Profile.vue +++ b/frontend/src/pages/Profile.vue @@ -140,7 +140,7 @@ const coverImage = createResource({ const setActiveTab = () => { let fragments = route.path.split('/') - let sections = ['certificates', 'achievements', 'roles', 'evaluations'] + let sections = ['certificates', 'roles', 'evaluations'] sections.forEach((section) => { if (fragments.includes(section)) { activeTab.value = convertToTitleCase(section) @@ -154,7 +154,6 @@ watchEffect(() => { let route = { About: { name: 'ProfileAbout' }, Certificates: { name: 'ProfileCertificates' }, - Achievements: { name: 'ProfileAchievements' }, Roles: { name: 'ProfileRoles' }, Evaluations: { name: 'ProfileEvaluator' }, }[activeTab.value] @@ -171,11 +170,7 @@ const isSessionUser = () => { } const getTabButtons = () => { - let buttons = [ - { label: 'About' }, - { label: 'Certificates' }, - { label: 'Achievements' }, - ] + let buttons = [{ label: 'About' }, { label: 'Certificates' }] if ($user.data?.is_moderator) buttons.push({ label: 'Roles' }) if (isSessionUser() && $user.data?.is_evaluator) buttons.push({ label: 'Evaluations' }) diff --git a/frontend/src/pages/ProfileAbout.vue b/frontend/src/pages/ProfileAbout.vue index 995d8b57..ae539521 100644 --- a/frontend/src/pages/ProfileAbout.vue +++ b/frontend/src/pages/ProfileAbout.vue @@ -12,12 +12,92 @@ {{ __('No introduction') }} +
+

+ {{ __('Achievements') }} +

+
+
+ + + + +
+
+
diff --git a/frontend/src/pages/ProfileAchievements.vue b/frontend/src/pages/ProfileAchievements.vue deleted file mode 100644 index 9097db2d..00000000 --- a/frontend/src/pages/ProfileAchievements.vue +++ /dev/null @@ -1,89 +0,0 @@ - - diff --git a/frontend/src/router.js b/frontend/src/router.js index ff090428..fab065d7 100644 --- a/frontend/src/router.js +++ b/frontend/src/router.js @@ -72,11 +72,6 @@ const routes = [ path: 'certificates', component: () => import('@/pages/ProfileCertificates.vue'), }, - { - name: 'ProfileAchievements', - path: 'achievements', - component: () => import('@/pages/ProfileAchievements.vue'), - }, { name: 'ProfileRoles', path: 'roles', diff --git a/lms/lms/doctype/course_lesson/course_lesson.py b/lms/lms/doctype/course_lesson/course_lesson.py index 2674e304..4b93c2ff 100644 --- a/lms/lms/doctype/course_lesson/course_lesson.py +++ b/lms/lms/doctype/course_lesson/course_lesson.py @@ -96,7 +96,7 @@ def save_progress(lesson, course): return 0 quiz_completed = get_quiz_progress(lesson) - print(quiz_completed) + if not quiz_completed: return 0 diff --git a/lms/lms/doctype/lms_badge/lms_badge.js b/lms/lms/doctype/lms_badge/lms_badge.js index aca59b3f..5869b81b 100644 --- a/lms/lms/doctype/lms_badge/lms_badge.js +++ b/lms/lms/doctype/lms_badge/lms_badge.js @@ -2,6 +2,9 @@ // For license information, please see license.txt frappe.ui.form.on("LMS Badge", { + refresh: (frm) => { + frm.events.set_fields_to_check(frm); + }, reference_doctype: (frm) => { frm.events.set_fields_to_check(frm); }, diff --git a/lms/lms/doctype/lms_badge/lms_badge.py b/lms/lms/doctype/lms_badge/lms_badge.py index 9f888de2..b8924c9c 100644 --- a/lms/lms/doctype/lms_badge/lms_badge.py +++ b/lms/lms/doctype/lms_badge/lms_badge.py @@ -13,13 +13,18 @@ class LMSBadge(Document): def rule_condition_satisfied(self, doc): doc_before_save = doc.get_doc_before_save() + print(doc_before_save.as_dict()) + print(doc.as_dict()) if self.event == "New" and doc_before_save != None: return False print("its new") if self.event == "Value Change": field_to_check = self.field_to_check - if not self.field_to_check: + print(field_to_check) + if not field_to_check: return False + print(doc_before_save.get(field_to_check)) + print(doc.get(field_to_check)) if doc_before_save and doc_before_save.get(field_to_check) == doc.get( field_to_check ): diff --git a/lms/lms/doctype/lms_badge_assignment/lms_badge_assignment.json b/lms/lms/doctype/lms_badge_assignment/lms_badge_assignment.json index c9d0284e..f062c1f0 100644 --- a/lms/lms/doctype/lms_badge_assignment/lms_badge_assignment.json +++ b/lms/lms/doctype/lms_badge_assignment/lms_badge_assignment.json @@ -61,7 +61,7 @@ ], "index_web_pages_for_search": 1, "links": [], - "modified": "2024-04-30 17:19:39.554248", + "modified": "2024-05-08 14:18:39.455213", "modified_by": "Administrator", "module": "LMS", "name": "LMS Badge Assignment", @@ -103,6 +103,15 @@ "role": "LMS Student", "share": 1, "write": 1 + }, + { + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "LMS Student", + "share": 1 } ], "show_title_field_in_link": 1, diff --git a/lms/lms/doctype/lms_course/lms_course.json b/lms/lms/doctype/lms_course/lms_course.json index 062c4f54..f3fce35e 100644 --- a/lms/lms/doctype/lms_course/lms_course.json +++ b/lms/lms/doctype/lms_course/lms_course.json @@ -274,7 +274,7 @@ } ], "make_attachments_public": 1, - "modified": "2024-04-16 17:40:50.899368", + "modified": "2024-05-08 15:11:07.833094", "modified_by": "Administrator", "module": "LMS", "name": "LMS Course", @@ -305,7 +305,7 @@ "write": 1 } ], - "search_fields": "title", + "search_fields": "title, tags", "show_title_field_in_link": 1, "sort_field": "creation", "sort_order": "DESC", diff --git a/lms/lms/doctype/lms_course_progress/lms_course_progress.py b/lms/lms/doctype/lms_course_progress/lms_course_progress.py index 31bce170..04e43554 100644 --- a/lms/lms/doctype/lms_course_progress/lms_course_progress.py +++ b/lms/lms/doctype/lms_course_progress/lms_course_progress.py @@ -1,9 +1,20 @@ # Copyright (c) 2021, FOSS United and contributors # For license information, please see license.txt -# import frappe +import frappe from frappe.model.document import Document +from lms.lms.utils import get_course_progress class LMSCourseProgress(Document): - pass + def after_delete(self): + progress = get_course_progress(self.course, self.member) + membership = frappe.db.get_value( + "LMS Enrollment", + { + "member": self.member, + "course": self.course, + }, + "name", + ) + frappe.db.set_value("LMS Enrollment", membership, "progress", progress) diff --git a/lms/lms/utils.py b/lms/lms/utils.py index cc887ed3..5757f840 100644 --- a/lms/lms/utils.py +++ b/lms/lms/utils.py @@ -383,7 +383,7 @@ def get_course_progress(course, member=None): return 0 completed_lessons = frappe.db.count( "LMS Course Progress", - {"course": course, "owner": member or frappe.session.user, "status": "Complete"}, + {"course": course, "member": member or frappe.session.user, "status": "Complete"}, ) precision = cint(frappe.db.get_default("float_precision")) or 3 return flt(((completed_lessons / lesson_count) * 100), precision)