diff --git a/lms/lms/doctype/lms_class/lms_class.py b/lms/lms/doctype/lms_class/lms_class.py index f53d1ad0..cd5d2586 100644 --- a/lms/lms/doctype/lms_class/lms_class.py +++ b/lms/lms/doctype/lms_class/lms_class.py @@ -160,10 +160,14 @@ def authenticate(): @frappe.whitelist() -def create_class(title, start_date, end_date, description): - class_details = frappe.get_doc( +def create_class(title, start_date, end_date, description=None, name=None): + if name: + class_details = frappe.get_doc("LMS Class", name) + else: + class_details = frappe.get_doc({"doctype": "LMS Class"}) + + class_details.update( { - "doctype": "LMS Class", "title": title, "start_date": start_date, "end_date": end_date, diff --git a/lms/public/js/common_functions.js b/lms/public/js/common_functions.js index c59fbbdb..56306d1a 100644 --- a/lms/public/js/common_functions.js +++ b/lms/public/js/common_functions.js @@ -391,11 +391,7 @@ const reorder_chapter = (e) => { }; const open_class_dialog = (e) => { - let class_details = $(e.currentTarget).data("class"); - console.log(class_details); - console.log(decodeURIComponent(class_details)); - console.log(JSON.parse(class_details)); - let dialog = new frappe.ui.Dialog({ + this.class_dialog = new frappe.ui.Dialog({ title: __("New Class"), fields: [ { @@ -403,23 +399,27 @@ const open_class_dialog = (e) => { label: __("Title"), fieldname: "title", reqd: 1, + default: class_info && class_info.title, }, { fieldtype: "Date", label: __("Start Date"), fieldname: "start_date", reqd: 1, + default: class_info && class_info.start_date, }, { fieldtype: "Date", label: __("End Date"), fieldname: "end_date", reqd: 1, + default: class_info && class_info.end_date, }, { fieldtype: "Small Text", label: __("Description"), fieldname: "description", + default: class_info && class_info.description, }, ], primary_action_label: __("Save"), @@ -427,7 +427,7 @@ const open_class_dialog = (e) => { create_class(values); }, }); - dialog.show(); + this.class_dialog.show(); }; const create_class = (values) => { @@ -438,14 +438,17 @@ const create_class = (values) => { start_date: values.start_date, end_date: values.end_date, description: values.description, + name: class_info && class_info.name, }, callback: (r) => { if (r.message) { frappe.show_alert({ - message: __("Class Created"), + message: class_info + ? __("Class Updated") + : __("Class Created"), indicator: "green", }); - dialog.hide(); + this.class_dialog.hide(); window.location.href = `/classes/${r.message.name}`; } }, diff --git a/lms/www/classes/class.html b/lms/www/classes/class.html index ce9071d2..5c23dfce 100644 --- a/lms/www/classes/class.html +++ b/lms/www/classes/class.html @@ -62,7 +62,7 @@ {% macro ClassSections(class_info, class_courses, class_students, published_courses) %}