fix: progress update

This commit is contained in:
Jannat Patel
2024-05-13 16:50:52 +05:30
parent 0d89f51d78
commit 68a1d1e436
8 changed files with 15 additions and 77 deletions

View File

@@ -151,7 +151,7 @@
</div>
</div>
<div class="sticky top-10">
<div class="bg-gray-50 py-5 pl-2 border-b">
<div class="bg-gray-50 py-5 px-2 border-b">
<div class="text-lg font-semibold">
{{ lesson.data.course_title }}
</div>

View File

@@ -97,11 +97,6 @@ override_doctype_class = {
# Hook on document methods and events
doc_events = {
"*": {
"on_change": [
"lms.lms.doctype.lms_badge.lms_badge.process_badges",
]
},
"Discussion Reply": {"after_insert": "lms.lms.utils.handle_notifications"},
}

View File

@@ -89,14 +89,14 @@ class CourseLesson(Document):
@frappe.whitelist()
def save_progress(lesson, course):
print("save progress")
membership = frappe.db.exists(
"LMS Enrollment", {"member": frappe.session.user, "course": course}
"LMS Enrollment", {"course": course, "member": frappe.session.user}
)
if not membership:
return 0
quiz_completed = get_quiz_progress(lesson)
if not quiz_completed:
return 0
@@ -115,7 +115,12 @@ def save_progress(lesson, course):
).save(ignore_permissions=True)
progress = get_course_progress(course)
frappe.db.set_value("LMS Enrollment", membership, "progress", progress)
print(membership)
enrollment = frappe.get_doc("LMS Enrollment", membership)
print(enrollment.progress)
print(progress)
enrollment.progress = progress
enrollment.save(ignore_permissions=True)
return progress

View File

@@ -8,31 +8,25 @@ from frappe.model.document import Document
class LMSBadge(Document):
def apply(self, doc):
if self.rule_condition_satisfied(doc):
print("rule satisfied")
self.award(doc)
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
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))
print(doc_before_save.get(field_to_check), doc.get(field_to_check))
if doc_before_save and doc_before_save.get(field_to_check) == doc.get(
field_to_check
):
return False
if self.condition:
print("found condition")
print(self.eval_condition(doc))
return self.eval_condition(doc)
return False

View File

@@ -105,18 +105,13 @@ def quiz_summary(quiz, results):
)
submission.save(ignore_permissions=True)
print(
percentage, quiz_details.passing_percentage, quiz_details.lesson, quiz_details.course
)
if (
percentage >= quiz_details.passing_percentage
and quiz_details.lesson
and quiz_details.course
):
print("if")
save_progress(quiz_details.lesson, quiz_details.course)
elif not quiz_details.passing_percentage:
print("elif")
save_progress(quiz_details.lesson, quiz_details.course)
return {

View File

@@ -15,10 +15,10 @@
<meta name="twitter:title" content="{{ meta.title }}" />
<meta name="twitter:image" content="{{ meta.image }}" />
<meta name="twitter:description" content="{{ meta.description }}" />
<script type="module" crossorigin src="/assets/lms/frontend/assets/index-BQuTMdxr.js"></script>
<link rel="modulepreload" crossorigin href="/assets/lms/frontend/assets/frappe-ui-BI4McHL7.js">
<script type="module" crossorigin src="/assets/lms/frontend/assets/index-THAMiyCA.js"></script>
<link rel="modulepreload" crossorigin href="/assets/lms/frontend/assets/frappe-ui-CgFK8870.js">
<link rel="stylesheet" crossorigin href="/assets/lms/frontend/assets/frappe-ui-DzKBfka9.css">
<link rel="stylesheet" crossorigin href="/assets/lms/frontend/assets/index-BF30Plnj.css">
<link rel="stylesheet" crossorigin href="/assets/lms/frontend/assets/index-C1pDkvO9.css">
</head>
<body>
<div id="app">

View File

@@ -1,50 +0,0 @@
import frappe
@frappe.whitelist(allow_guest=True)
def get_add_on_details(plan: str) -> dict[str, int]:
"""
Returns the number of courses and course members to be billed under add-ons for SAAS subscription
"""
return {"courses": get_add_on_courses(plan), "members": get_add_on_members(plan)}
def get_published_courses() -> int:
return frappe.db.count("LMS Course", {"published": 1})
def get_add_on_courses(plan: str) -> int:
COURSE_LIMITS = {"Lite": 5, "Pro": 20}
add_on_courses = 0
courses_included_in_plans = COURSE_LIMITS.get(plan)
if courses_included_in_plans:
published_courses = get_published_courses()
add_on_courses = (
published_courses - courses_included_in_plans
if published_courses > courses_included_in_plans
else 0
)
return add_on_courses
def get_add_on_members(plan: str) -> int:
MEMBER_LIMITS = {"Lite": 500, "Pro": 1000}
add_on_members = 0
members_included_in_plans = MEMBER_LIMITS.get(plan)
if members_included_in_plans:
active_members = get_members()
add_on_members = (
active_members - members_included_in_plans
if active_members > members_included_in_plans
else 0
)
return add_on_members
def get_members() -> int:
return frappe.db.count("LMS Enrollment")

View File

@@ -30,7 +30,6 @@ def make_unsplash_request(path):
import requests
url = f"{base_url}{path}"
print(url)
res = requests.get(
url,
headers={