From b47ff80e9de82efd552ab7373557b92a572d060f Mon Sep 17 00:00:00 2001 From: Jannat Patel Date: Wed, 3 May 2023 22:47:39 +0530 Subject: [PATCH] feat: seat count from class dialog --- lms/lms/doctype/lms_class/lms_class.py | 7 +++++-- lms/public/js/common_functions.js | 7 +++++++ lms/www/classes/class.py | 10 +++++++++- 3 files changed, 21 insertions(+), 3 deletions(-) diff --git a/lms/lms/doctype/lms_class/lms_class.py b/lms/lms/doctype/lms_class/lms_class.py index 3092eeee..e6b4b389 100644 --- a/lms/lms/doctype/lms_class/lms_class.py +++ b/lms/lms/doctype/lms_class/lms_class.py @@ -39,7 +39,7 @@ class LMSClass(Document): frappe.get_doc(filters).save() def validate_seats_left(self): - if self.seat_count < len(self.students): + if cint(self.seat_count) < len(self.students): frappe.throw(_("There are no seats available in this class.")) @@ -166,7 +166,9 @@ def authenticate(): @frappe.whitelist() -def create_class(title, start_date, end_date, description=None, name=None): +def create_class( + title, start_date, end_date, description=None, seat_count=0, name=None +): if name: class_details = frappe.get_doc("LMS Class", name) else: @@ -178,6 +180,7 @@ def create_class(title, start_date, end_date, description=None, name=None): "start_date": start_date, "end_date": end_date, "description": description, + "seat_count": seat_count, } ) class_details.save() diff --git a/lms/public/js/common_functions.js b/lms/public/js/common_functions.js index 56306d1a..a646621d 100644 --- a/lms/public/js/common_functions.js +++ b/lms/public/js/common_functions.js @@ -415,6 +415,12 @@ const open_class_dialog = (e) => { reqd: 1, default: class_info && class_info.end_date, }, + { + fieldtype: "Int", + label: __("Seat Count"), + fieldname: "seat_count", + default: class_info && class_info.seat_count, + }, { fieldtype: "Small Text", label: __("Description"), @@ -438,6 +444,7 @@ const create_class = (values) => { start_date: values.start_date, end_date: values.end_date, description: values.description, + seat_count: values.seat_count, name: class_info && class_info.name, }, callback: (r) => { diff --git a/lms/www/classes/class.py b/lms/www/classes/class.py index 09a98a9c..fa854ae2 100644 --- a/lms/www/classes/class.py +++ b/lms/www/classes/class.py @@ -13,7 +13,15 @@ def get_context(context): context.class_info = frappe.db.get_value( "LMS Class", class_name, - ["name", "title", "start_date", "end_date", "description", "custom_component"], + [ + "name", + "title", + "start_date", + "end_date", + "description", + "custom_component", + "seat_count", + ], as_dict=True, )