feat: send email to batch students

This commit is contained in:
Jannat Patel
2023-10-05 16:12:02 +05:30
parent 8ad0e99b3c
commit 6c4d3ea37e
4 changed files with 68 additions and 0 deletions

View File

@@ -335,3 +335,14 @@ def get_timetable_details(timetable):
timetable = sorted(timetable, key=lambda k: k["date"])
return timetable
@frappe.whitelist()
def send_email_to_students(batch, subject, message):
frappe.only_for("Moderator")
students = frappe.get_all("Batch Student", {"parent": batch}, pluck="student")
frappe.sendmail(
recipients=students,
subject=subject,
message=message,
)

View File

@@ -2470,3 +2470,7 @@ select {
-moz-transform: rotate(180deg);
transform: rotate(180deg);
}
.modal-body .ql-container {
max-height: unset !important;
}

View File

@@ -75,6 +75,11 @@
</div>
</div>
<div class="mt-4">
<button class="btn btn-secondary btn-sm btn-email">
{{ _("Email to Students") }}
</button>
</div>
{% if batch_info.custom_component %}
<div class="mt-4">

View File

@@ -63,6 +63,10 @@ frappe.ready(() => {
$(document).on("click", ".slot", (e) => {
mark_active_slot(e);
});
$(".btn-email").click((e) => {
email_to_students();
});
});
const create_live_class = (e) => {
@@ -765,3 +769,47 @@ const get_background_color = (doctype) => {
if (doctype == "LMS Assignment") return "var(--orange-400)";
if (doctype == "LMS Live Class") return "var(--purple-400)";
};
const email_to_students = () => {
this.email_dialog = new frappe.ui.Dialog({
title: __("Email to Students"),
fields: [
{
fieldtype: "Data",
fieldname: "subject",
label: __("Subject"),
reqd: 1,
},
{
fieldtype: "Text Editor",
fieldname: "message",
label: __("Message"),
reqd: 1,
max_height: 100,
min_lines: 5,
},
],
primary_action: (values) => {
send_email(values);
},
});
this.email_dialog.show();
};
const send_email = (values) => {
frappe.call({
method: "lms.lms.doctype.lms_batch.lms_batch.send_email_to_students",
args: {
batch: $(".class-details").data("batch"),
subject: values.subject,
message: values.message,
},
callback: (r) => {
this.email_dialog.hide();
frappe.show_alert({
message: __("Email sent successfully"),
indicator: "green",
});
},
});
};