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, )