diff --git a/lms/lms/doctype/lms_class/lms_class.py b/lms/lms/doctype/lms_class/lms_class.py index b2186d5d..cd5d2586 100644 --- a/lms/lms/doctype/lms_class/lms_class.py +++ b/lms/lms/doctype/lms_class/lms_class.py @@ -157,3 +157,22 @@ def authenticate(): } response = requests.request("POST", authenticate_url, headers=headers) return response.json()["access_token"] + + +@frappe.whitelist() +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( + { + "title": title, + "start_date": start_date, + "end_date": end_date, + "description": description, + } + ) + class_details.save() + return class_details diff --git a/lms/lms/web_form/class/__init__.py b/lms/lms/web_form/class/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/lms/lms/web_form/class/class.js b/lms/lms/web_form/class/class.js deleted file mode 100644 index 8f56ebb3..00000000 --- a/lms/lms/web_form/class/class.js +++ /dev/null @@ -1,3 +0,0 @@ -frappe.ready(function () { - // bind events here -}); diff --git a/lms/lms/web_form/class/class.json b/lms/lms/web_form/class/class.json deleted file mode 100644 index f46c2faa..00000000 --- a/lms/lms/web_form/class/class.json +++ /dev/null @@ -1,87 +0,0 @@ -{ - "accept_payment": 0, - "allow_comments": 0, - "allow_delete": 0, - "allow_edit": 0, - "allow_incomplete": 0, - "allow_multiple": 0, - "allow_print": 0, - "amount": 0.0, - "amount_based_on_field": 0, - "apply_document_permissions": 0, - "button_label": "Save", - "creation": "2022-11-11 12:10:29.640675", - "custom_css": "", - "doc_type": "LMS Class", - "docstatus": 0, - "doctype": "Web Form", - "idx": 0, - "is_standard": 1, - "list_columns": [], - "login_required": 0, - "max_attachment_size": 0, - "modified": "2022-11-21 10:56:01.627821", - "modified_by": "Administrator", - "module": "LMS", - "name": "class", - "owner": "Administrator", - "payment_button_label": "Buy Now", - "published": 1, - "route": "class", - "show_attachments": 0, - "show_list": 0, - "show_sidebar": 0, - "success_title": "", - "success_url": "/classes", - "title": "Class", - "web_form_fields": [ - { - "allow_read_on_all_link_options": 0, - "fieldname": "title", - "fieldtype": "Data", - "hidden": 0, - "label": "Title", - "max_length": 0, - "max_value": 0, - "read_only": 0, - "reqd": 1, - "show_in_filter": 0 - }, - { - "allow_read_on_all_link_options": 0, - "fieldname": "start_date", - "fieldtype": "Date", - "hidden": 0, - "label": "Start Date", - "max_length": 0, - "max_value": 0, - "read_only": 0, - "reqd": 1, - "show_in_filter": 0 - }, - { - "allow_read_on_all_link_options": 0, - "fieldname": "end_date", - "fieldtype": "Date", - "hidden": 0, - "label": "End Date", - "max_length": 0, - "max_value": 0, - "read_only": 0, - "reqd": 1, - "show_in_filter": 0 - }, - { - "allow_read_on_all_link_options": 0, - "fieldname": "description", - "fieldtype": "Small Text", - "hidden": 0, - "label": "Description", - "max_length": 0, - "max_value": 0, - "read_only": 0, - "reqd": 0, - "show_in_filter": 0 - } - ] -} \ No newline at end of file diff --git a/lms/lms/web_form/class/class.py b/lms/lms/web_form/class/class.py deleted file mode 100644 index 80b7b873..00000000 --- a/lms/lms/web_form/class/class.py +++ /dev/null @@ -1,6 +0,0 @@ -import frappe - - -def get_context(context): - # do your magic here - pass diff --git a/lms/patches.txt b/lms/patches.txt index f4d1f1dd..791d9b3b 100644 --- a/lms/patches.txt +++ b/lms/patches.txt @@ -51,4 +51,5 @@ lms.patches.v0_0.rename_exercise_doctype lms.patches.v0_0.add_question_type #09-04-2023 lms.patches.v0_0.add_evaluator_to_assignment #09-04-2023 lms.patches.v0_0.convert_lesson_markdown_to_html #05-04-2023 -lms.patches.v0_0.convert_course_description_to_html \ No newline at end of file +lms.patches.v0_0.convert_course_description_to_html +execute:frappe.delete_doc("Web Form", "class", ignore_missing=True, force=True) diff --git a/lms/public/css/style.css b/lms/public/css/style.css index 61271c10..ec2d63f1 100644 --- a/lms/public/css/style.css +++ b/lms/public/css/style.css @@ -1976,7 +1976,7 @@ select { font-weight: 500; } -.common-page-style .tooltip-content { +.tooltip-content { display: none; } diff --git a/lms/public/js/common_functions.js b/lms/public/js/common_functions.js index 9b134461..56306d1a 100644 --- a/lms/public/js/common_functions.js +++ b/lms/public/js/common_functions.js @@ -51,6 +51,10 @@ frappe.ready(() => { $(".chapter-dropzone").each((i, el) => { setSortable(el); }); + + $("#create-class").click((e) => { + open_class_dialog(e); + }); }); const setSortable = (el) => { @@ -385,3 +389,68 @@ const reorder_chapter = (e) => { }, }); }; + +const open_class_dialog = (e) => { + this.class_dialog = new frappe.ui.Dialog({ + title: __("New Class"), + fields: [ + { + fieldtype: "Data", + 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"), + primary_action: (values) => { + create_class(values); + }, + }); + this.class_dialog.show(); +}; + +const create_class = (values) => { + frappe.call({ + method: "lms.lms.doctype.lms_class.lms_class.create_class", + args: { + title: values.title, + 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_info + ? __("Class Updated") + : __("Class Created"), + indicator: "green", + }); + 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 29ce41d4..1df30575 100644 --- a/lms/www/classes/class.html +++ b/lms/www/classes/class.html @@ -61,6 +61,11 @@ {% macro ClassSections(class_info, class_courses, class_students, published_courses) %}
+ + +