feat: upcoming evals
This commit is contained in:
@@ -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,
|
||||
)
|
||||
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user