fix: test case with no input issue
This commit is contained in:
@@ -1544,24 +1544,18 @@ def get_exercise_status(test_cases):
|
||||
|
||||
|
||||
def update_test_cases(test_cases, submission):
|
||||
frappe.db.delete("LMS Test Case Submission", {"parent": submission})
|
||||
for row in test_cases:
|
||||
test_case = frappe.db.get_value(
|
||||
"LMS Test Case Submission",
|
||||
test_case = frappe.new_doc("LMS Test Case Submission")
|
||||
test_case.update(
|
||||
{
|
||||
"parent": submission,
|
||||
"parenttype": "LMS Programming Exercise Submission",
|
||||
"parentfield": "test_cases",
|
||||
"input": row.get("input"),
|
||||
},
|
||||
"name",
|
||||
as_dict=True,
|
||||
"output": row.get("output"),
|
||||
"expected_output": row.get("expected_output"),
|
||||
"status": row.get("status", "Failed"),
|
||||
}
|
||||
)
|
||||
|
||||
if test_case:
|
||||
frappe.db.set_value(
|
||||
"LMS Test Case Submission",
|
||||
test_case.name,
|
||||
{
|
||||
"output": row.get("output"),
|
||||
"expected_output": row.get("expected_output"),
|
||||
"status": row.get("status", "Failed"),
|
||||
},
|
||||
)
|
||||
test_case.insert()
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
{
|
||||
"fieldname": "input",
|
||||
"fieldtype": "Data",
|
||||
"in_list_view": 1,
|
||||
"label": "Input"
|
||||
},
|
||||
{
|
||||
@@ -49,8 +50,8 @@
|
||||
"index_web_pages_for_search": 1,
|
||||
"istable": 1,
|
||||
"links": [],
|
||||
"modified": "2025-06-18 20:06:57.182153",
|
||||
"modified_by": "Administrator",
|
||||
"modified": "2025-06-24 11:23:13.803159",
|
||||
"modified_by": "sayali@frappe.io",
|
||||
"module": "LMS",
|
||||
"name": "LMS Test Case Submission",
|
||||
"owner": "Administrator",
|
||||
|
||||
@@ -1504,6 +1504,9 @@ def get_assessments(batch, member=None):
|
||||
elif assessment.assessment_type == "LMS Quiz":
|
||||
assessment = get_quiz_details(assessment, member)
|
||||
|
||||
elif assessment.assessment_type == "LMS Programming Exercise":
|
||||
assessment = get_exercise_details(assessment, member)
|
||||
|
||||
return assessments
|
||||
|
||||
|
||||
@@ -1576,6 +1579,31 @@ def get_quiz_details(assessment, member):
|
||||
return assessment
|
||||
|
||||
|
||||
def get_exercise_details(assessment, member):
|
||||
assessment.title = frappe.db.get_value(
|
||||
"LMS Programming Exercise", assessment.assessment_name, "title"
|
||||
)
|
||||
filters = {"member": member, "exercise": assessment.assessment_name}
|
||||
|
||||
if frappe.db.exists("LMS Programming Exercise Submission", filters):
|
||||
assessment.submission = frappe.db.get_value(
|
||||
"LMS Programming Exercise Submission",
|
||||
filters,
|
||||
["name", "status"],
|
||||
as_dict=True,
|
||||
)
|
||||
assessment.completed = True
|
||||
assessment.status = assessment.submission.status
|
||||
assessment.edit_url = (
|
||||
f"/exercises/{assessment.assessment_name}/submission/{assessment.submission.name}"
|
||||
)
|
||||
else:
|
||||
assessment.status = "Not Attempted"
|
||||
assessment.color = "red"
|
||||
assessment.completed = False
|
||||
assessment.edit_url = f"/exercises/{assessment.assessment_name}/submission/new"
|
||||
|
||||
|
||||
@frappe.whitelist()
|
||||
def get_batch_students(batch):
|
||||
students = []
|
||||
|
||||
Reference in New Issue
Block a user