From 35b77a890824af0b82f7120c3e9e61069649fe80 Mon Sep 17 00:00:00 2001 From: Jannat Patel Date: Wed, 15 Mar 2023 10:52:05 +0530 Subject: [PATCH] feat: timezone and recording --- lms/lms/doctype/lms_class/lms_class.py | 11 +- .../lms_live_class/lms_live_class.json | 10 +- lms/www/classes/class.js | 163 +++++++++++++++++- 3 files changed, 177 insertions(+), 7 deletions(-) diff --git a/lms/lms/doctype/lms_class/lms_class.py b/lms/lms/doctype/lms_class/lms_class.py index fd490dae..b2186d5d 100644 --- a/lms/lms/doctype/lms_class/lms_class.py +++ b/lms/lms/doctype/lms_class/lms_class.py @@ -91,15 +91,21 @@ def update_course(class_name, course, value): @frappe.whitelist() -def create_live_class(class_name, title, duration, date, time, description=None): +def create_live_class( + class_name, title, duration, date, time, timezone, auto_recording, description=None +): date = format_date(date, "yyyy-mm-dd", True) + payload = { "topic": title, "start_time": format_datetime(f"{date} {time}", "yyyy-MM-ddTHH:mm:ssZ"), "duration": duration, - "timezone": "IN", "agenda": description, "private_meeting": True, + "auto_recording": "none" + if auto_recording == "No Recording" + else auto_recording.lower(), + "timezone": timezone, } headers = { "Authorization": "Bearer " + authenticate(), @@ -123,6 +129,7 @@ def create_live_class(class_name, title, duration, date, time, description=None) "class_name": class_name, "password": data.get("password"), "description": description, + "auto_recording": auto_recording, } ) class_details = frappe.get_doc(payload) diff --git a/lms/lms/doctype/lms_live_class/lms_live_class.json b/lms/lms/doctype/lms_live_class/lms_live_class.json index b3ac10c1..814bc662 100644 --- a/lms/lms/doctype/lms_live_class/lms_live_class.json +++ b/lms/lms/doctype/lms_live_class/lms_live_class.json @@ -11,6 +11,7 @@ "host", "class_name", "password", + "auto_recording", "column_break_astv", "description", "section_break_glxh", @@ -114,11 +115,18 @@ "fieldtype": "Link", "label": "Class", "options": "LMS Class" + }, + { + "default": "No Recording", + "fieldname": "auto_recording", + "fieldtype": "Select", + "label": "Auto Recording", + "options": "No Recording\nLocal\nCloud" } ], "index_web_pages_for_search": 1, "links": [], - "modified": "2023-03-06 16:59:28.565587", + "modified": "2023-03-14 18:44:48.813102", "modified_by": "Administrator", "module": "LMS", "name": "LMS Live Class", diff --git a/lms/www/classes/class.js b/lms/www/classes/class.js index 7418f16f..ac266856 100644 --- a/lms/www/classes/class.js +++ b/lms/www/classes/class.js @@ -27,10 +27,6 @@ frappe.ready(() => { $("#create-live-class").click((e) => { create_live_class(e); }); - - setTimeout(() => { - console.log(locals.Doctype); - }, 10000); }); const submit_student = (e) => { @@ -102,6 +98,10 @@ const create_live_class = (e) => { duration: $("input[data-fieldname='meeting_duration']").val(), date: $("input[data-fieldname='meeting_date']").val(), time: $("input[data-fieldname='meeting_time']").val(), + timezone: $('select[data-fieldname="meeting_timezone"]').val(), + auto_recording: $( + 'select[data-fieldname="meeting_recording"]' + ).val(), description: $( "textarea[data-fieldname='meeting_description']" ).val(), @@ -139,6 +139,13 @@ const make_live_class_form = (e) => { label: "Time", reqd: 1, }, + { + fieldname: "meeting_timezone", + label: __("Time Zone"), + fieldtype: "Select", + options: get_timezones().join("\n"), + reqd: 1, + }, { fieldname: "meeting_col", fieldtype: "Column Break", @@ -158,6 +165,13 @@ const make_live_class_form = (e) => { label: "Duration (in Minutes)", reqd: 1, }, + { + fieldname: "meeting_recording", + fieldtype: "Select", + options: "No Recording\nLocal\nCloud", + label: "Auto Recording", + default: "No Recording", + }, { fieldname: "meeting_sec", fieldtype: "Section Break", @@ -174,11 +188,152 @@ const make_live_class_form = (e) => { ], body: $("#live-class-form").get(0), }); + this.field_group.make(); $("#live-class-form .form-section:last").removeClass("empty-section"); $("#live-class-form .frappe-control").removeClass("hide-control"); }; +const get_timezones = () => { + return [ + "Pacific/Midway", + "Pacific/Pago_Pago", + "Pacific/Honolulu", + "America/Anchorage", + "America/Vancouver", + "America/Los_Angeles", + "America/Tijuana", + "America/Edmonton", + "America/Denver", + "America/Phoenix", + "America/Mazatlan", + "America/Winnipeg", + "America/Regina", + "America/Chicago", + "America/Mexico_City", + "America/Guatemala", + "America/El_Salvador", + "America/Managua", + "America/Costa_Rica", + "America/Montreal", + "America/New_York", + "America/Indianapolis", + "America/Panama", + "America/Bogota", + "America/Lima", + "America/Halifax", + "America/Puerto_Rico", + "America/Caracas", + "America/Santiago", + "America/St_Johns", + "America/Montevideo", + "America/Araguaina", + "America/Argentina/Buenos_Aires", + "America/Godthab", + "America/Sao_Paulo", + "Atlantic/Azores", + "Canada/Atlantic", + "Atlantic/Cape_Verde", + "UTC", + "Etc/Greenwich", + "Europe/Belgrade", + "CET", + "Atlantic/Reykjavik", + "Europe/Dublin", + "Europe/London", + "Europe/Lisbon", + "Africa/Casablanca", + "Africa/Nouakchott", + "Europe/Oslo", + "Europe/Copenhagen", + "Europe/Brussels", + "Europe/Berlin", + "Europe/Helsinki", + "Europe/Amsterdam", + "Europe/Rome", + "Europe/Stockholm", + "Europe/Vienna", + "Europe/Luxembourg", + "Europe/Paris", + "Europe/Zurich", + "Europe/Madrid", + "Africa/Bangui", + "Africa/Algiers", + "Africa/Tunis", + "Africa/Harare", + "Africa/Nairobi", + "Europe/Warsaw", + "Europe/Prague", + "Europe/Budapest", + "Europe/Sofia", + "Europe/Istanbul", + "Europe/Athens", + "Europe/Bucharest", + "Asia/Nicosia", + "Asia/Beirut", + "Asia/Damascus", + "Asia/Jerusalem", + "Asia/Amman", + "Africa/Tripoli", + "Africa/Cairo", + "Africa/Johannesburg", + "Europe/Moscow", + "Asia/Baghdad", + "Asia/Kuwait", + "Asia/Riyadh", + "Asia/Bahrain", + "Asia/Qatar", + "Asia/Aden", + "Asia/Tehran", + "Africa/Khartoum", + "Africa/Djibouti", + "Africa/Mogadishu", + "Asia/Dubai", + "Asia/Muscat", + "Asia/Baku", + "Asia/Kabul", + "Asia/Yekaterinburg", + "Asia/Tashkent", + "Asia/Calcutta", + "Asia/Kathmandu", + "Asia/Novosibirsk", + "Asia/Almaty", + "Asia/Dacca", + "Asia/Krasnoyarsk", + "Asia/Dhaka", + "Asia/Bangkok", + "Asia/Saigon", + "Asia/Jakarta", + "Asia/Irkutsk", + "Asia/Shanghai", + "Asia/Hong_Kong", + "Asia/Taipei", + "Asia/Kuala_Lumpur", + "Asia/Singapore", + "Australia/Perth", + "Asia/Yakutsk", + "Asia/Seoul", + "Asia/Tokyo", + "Australia/Darwin", + "Australia/Adelaide", + "Asia/Vladivostok", + "Pacific/Port_Moresby", + "Australia/Brisbane", + "Australia/Sydney", + "Australia/Hobart", + "Asia/Magadan", + "SST", + "Pacific/Noumea", + "Asia/Kamchatka", + "Pacific/Fiji", + "Pacific/Auckland", + "Asia/Kolkata", + "Europe/Kiev", + "America/Tegucigalpa", + "Pacific/Apia", + ]; +}; + const make_add_students_section = () => { this.field_group = new frappe.ui.FieldGroup({ fields: [