From e52ca6307531996f429ddf400f560fdd9cde3a5a Mon Sep 17 00:00:00 2001 From: Jannat Patel Date: Mon, 6 Jan 2025 11:01:01 +0530 Subject: [PATCH] refactor: duration field in quiz should be in minutes --- lms/lms/doctype/lms_quiz/lms_quiz.json | 4 ++-- lms/patches.txt | 3 ++- lms/patches/v2_0/convert_quiz_duration_to_minutes.py | 10 ++++++++++ 3 files changed, 14 insertions(+), 3 deletions(-) create mode 100644 lms/patches/v2_0/convert_quiz_duration_to_minutes.py diff --git a/lms/lms/doctype/lms_quiz/lms_quiz.json b/lms/lms/doctype/lms_quiz/lms_quiz.json index 4b779f27..7893a8af 100644 --- a/lms/lms/doctype/lms_quiz/lms_quiz.json +++ b/lms/lms/doctype/lms_quiz/lms_quiz.json @@ -132,13 +132,13 @@ }, { "fieldname": "duration", - "fieldtype": "Duration", + "fieldtype": "Data", "label": "Duration" } ], "index_web_pages_for_search": 1, "links": [], - "modified": "2024-10-11 22:39:40.381183", + "modified": "2025-01-06 10:46:50.564614", "modified_by": "Administrator", "module": "LMS", "name": "LMS Quiz", diff --git a/lms/patches.txt b/lms/patches.txt index c365311d..5ecffe3d 100644 --- a/lms/patches.txt +++ b/lms/patches.txt @@ -95,4 +95,5 @@ lms.patches.v2_0.add_course_statistics #21-10-2024 lms.patches.v2_0.give_discussions_permissions lms.patches.v2_0.delete_web_forms lms.patches.v2_0.update_desk_access_for_lms_roles -lms.patches.v2_0.update_quiz_submission_data \ No newline at end of file +lms.patches.v2_0.update_quiz_submission_data +lms.patches.v2_0.convert_quiz_duration_to_minutes \ No newline at end of file diff --git a/lms/patches/v2_0/convert_quiz_duration_to_minutes.py b/lms/patches/v2_0/convert_quiz_duration_to_minutes.py new file mode 100644 index 00000000..171c5fb9 --- /dev/null +++ b/lms/patches/v2_0/convert_quiz_duration_to_minutes.py @@ -0,0 +1,10 @@ +import frappe +from frappe.utils import ceil, flt + + +def execute(): + quizzes = frappe.get_all( + "LMS Quiz", fields=["name", "duration"], filters={"duration": [">", 0]} + ) + for quiz in quizzes: + frappe.db.set_value("LMS Quiz", quiz.name, "duration", ceil(flt(quiz.duration) / 60))