feat: upcoming evals

This commit is contained in:
Jannat Patel
2024-01-08 16:17:50 +05:30
parent 3a33f047f5
commit 09ae61492f
48 changed files with 33659 additions and 24452 deletions

View File

@@ -1,7 +1,7 @@
from frappe import _
import frappe
from frappe.utils import getdate
from lms.www.utils import get_assessments, is_student
from lms.www.utils import is_student
from lms.lms.utils import (
has_course_moderator_role,
has_course_evaluator_role,
@@ -12,6 +12,7 @@ from lms.lms.utils import (
get_lesson_url,
get_lesson_icon,
get_membership,
get_assessments,
)

View File

@@ -61,89 +61,6 @@ def get_current_lesson_details(lesson_number, context, is_edit=False):
return lesson_info
def get_assessments(batch, member=None):
if not member:
member = frappe.session.user
assessments = frappe.get_all(
"LMS Assessment",
{"parent": batch},
["name", "assessment_type", "assessment_name"],
)
for assessment in assessments:
if assessment.assessment_type == "LMS Assignment":
assessment = get_assignment_details(assessment, member)
elif assessment.assessment_type == "LMS Quiz":
assessment = get_quiz_details(assessment, member)
return assessments
def get_assignment_details(assessment, member):
assessment.title = frappe.db.get_value(
"LMS Assignment", assessment.assessment_name, "title"
)
existing_submission = frappe.db.exists(
{
"doctype": "LMS Assignment Submission",
"member": member,
"assignment": assessment.assessment_name,
}
)
assessment.completed = False
if existing_submission:
assessment.submission = frappe.db.get_value(
"LMS Assignment Submission",
existing_submission,
["name", "status", "comments"],
as_dict=True,
)
assessment.completed = True
assessment.edit_url = f"/assignments/{assessment.assessment_name}"
submission_name = existing_submission if existing_submission else "new-submission"
assessment.url = (
f"/assignment-submission/{assessment.assessment_name}/{submission_name}"
)
return assessment
def get_quiz_details(assessment, member):
assessment_details = frappe.db.get_value(
"LMS Quiz", assessment.assessment_name, ["title", "passing_percentage"], as_dict=1
)
assessment.title = assessment_details.title
existing_submission = frappe.get_all(
"LMS Quiz Submission",
{
"member": member,
"quiz": assessment.assessment_name,
},
["name", "score", "percentage"],
order_by="percentage desc",
)
if len(existing_submission):
assessment.submission = existing_submission[0]
assessment.completed = False
if assessment.submission:
assessment.completed = True
assessment.edit_url = f"/quizzes/{assessment.assessment_name}"
submission_name = (
existing_submission[0].name if len(existing_submission) else "new-submission"
)
assessment.url = f"/quiz-submission/{assessment.assessment_name}/{submission_name}"
return assessment
def is_student(batch, member=None):
if not member:
member = frappe.session.user