From 4d7b247378625e58caf02cadfffdce300fa95d30 Mon Sep 17 00:00:00 2001 From: Jannat Patel Date: Tue, 7 Nov 2023 11:31:58 +0530 Subject: [PATCH] fix: assignment submission email --- .../lms_assignment_submission.py | 34 +++++++++++++++++++ .../doctype/lms_settings/lms_settings.json | 26 +++++++++++--- .../__init__.py | 0 .../assignment_submission_notification.json | 27 --------------- .../assignment_submission_notification.md | 11 ------ .../assignment_submission_notification.py | 6 ---- lms/patches.txt | 3 +- .../emails/assignment_submission.html | 10 ++++++ 8 files changed, 68 insertions(+), 49 deletions(-) delete mode 100644 lms/lms/notification/assignment_submission_notification/__init__.py delete mode 100644 lms/lms/notification/assignment_submission_notification/assignment_submission_notification.json delete mode 100644 lms/lms/notification/assignment_submission_notification/assignment_submission_notification.md delete mode 100644 lms/lms/notification/assignment_submission_notification/assignment_submission_notification.py create mode 100644 lms/templates/emails/assignment_submission.html diff --git a/lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py b/lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py index 4db88eeb..68463a73 100644 --- a/lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py +++ b/lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.py @@ -5,12 +5,17 @@ import frappe from frappe import _ from frappe.model.document import Document from frappe.utils import validate_url +from frappe.email.doctype.email_template.email_template import get_email_template class LMSAssignmentSubmission(Document): def validate(self): self.validate_duplicates() + def after_insert(self): + if not frappe.flags.in_test: + self.send_mail() + def validate_duplicates(self): if frappe.db.exists( "LMS Assignment Submission", @@ -23,6 +28,35 @@ class LMSAssignmentSubmission(Document): ) ) + def send_mail(self): + subject = _("New Assignment Submission") + template = "assignment_submission" + custom_template = frappe.db.get_single_value( + "LMS Settings", "assignment_submission_template" + ) + + args = { + "member_name": self.member_name, + "assignment_name": self.assignment, + "assignment_title": self.assignment_title, + "submission_name": self.name, + } + + moderators = frappe.get_all("Has Role", {"role": "Moderator"}, pluck="parent") + print(moderators) + if custom_template: + email_template = get_email_template(custom_template, args) + subject = email_template.get("subject") + content = email_template.get("message") + frappe.sendmail( + recipients="jannat@frappe.io", + subject=subject, + template=template if not custom_template else None, + content=content if custom_template else None, + args=args, + header=[subject, "green"], + ) + @frappe.whitelist() def upload_assignment( diff --git a/lms/lms/doctype/lms_settings/lms_settings.json b/lms/lms/doctype/lms_settings/lms_settings.json index 2791f044..c69e4d8f 100644 --- a/lms/lms/doctype/lms_settings/lms_settings.json +++ b/lms/lms/doctype/lms_settings/lms_settings.json @@ -10,14 +10,12 @@ "is_onboarding_complete", "column_break_zdel", "livecode_url", - "certification_template", "course_settings_section", "search_placeholder", "column_break_iqxy", "portal_course_creation", "section_break_szgq", "send_calendar_invite_for_evaluations", - "batch_confirmation_template", "allow_student_progress", "column_break_2", "show_dashboard", @@ -51,7 +49,12 @@ "default_currency", "show_usd_equivalent", "apply_rounding", - "exception_country" + "exception_country", + "email_templates_tab", + "certification_template", + "batch_confirmation_template", + "column_break_uwsp", + "assignment_submission_template" ], "fields": [ { @@ -323,12 +326,27 @@ "fieldtype": "Link", "label": "Certificate Email Template", "options": "Email Template" + }, + { + "fieldname": "email_templates_tab", + "fieldtype": "Tab Break", + "label": "Email Templates" + }, + { + "fieldname": "assignment_submission_template", + "fieldtype": "Link", + "label": "Assignment Submission Template", + "options": "Email Template" + }, + { + "fieldname": "column_break_uwsp", + "fieldtype": "Column Break" } ], "index_web_pages_for_search": 1, "issingle": 1, "links": [], - "modified": "2023-11-01 22:38:38.380325", + "modified": "2023-11-07 11:23:14.257687", "modified_by": "Administrator", "module": "LMS", "name": "LMS Settings", diff --git a/lms/lms/notification/assignment_submission_notification/__init__.py b/lms/lms/notification/assignment_submission_notification/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/lms/lms/notification/assignment_submission_notification/assignment_submission_notification.json b/lms/lms/notification/assignment_submission_notification/assignment_submission_notification.json deleted file mode 100644 index 03a91be8..00000000 --- a/lms/lms/notification/assignment_submission_notification/assignment_submission_notification.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "attach_print": 0, - "channel": "Email", - "creation": "2023-03-27 16:34:03.505647", - "days_in_advance": 0, - "docstatus": 0, - "doctype": "Notification", - "document_type": "LMS Assignment Submission", - "enabled": 1, - "event": "New", - "idx": 0, - "is_standard": 1, - "message": "

{{ _(\"Assignment Submission\") }}\n\n{% set title = frappe.db.get_value(\"Course Lesson\", doc.lesson, \"title\") %}\n\n

{{ _(\"{0} has submitted their assignment for the lesson {1}\").format(doc.member_name, title) }}

\n\n

{{ _(\" Please evaluate and grade the assignment. \") }}

", - "modified": "2023-03-27 16:46:44.564007", - "modified_by": "Administrator", - "module": "LMS", - "name": "Assignment Submission Notification", - "owner": "Administrator", - "recipients": [ - { - "receiver_by_document_field": "evaluator" - } - ], - "send_system_notification": 0, - "send_to_all_assignees": 0, - "subject": "Assignment Submission" -} \ No newline at end of file diff --git a/lms/lms/notification/assignment_submission_notification/assignment_submission_notification.md b/lms/lms/notification/assignment_submission_notification/assignment_submission_notification.md deleted file mode 100644 index 02b2f997..00000000 --- a/lms/lms/notification/assignment_submission_notification/assignment_submission_notification.md +++ /dev/null @@ -1,11 +0,0 @@ -
-
-

{{ _("Assignment Submission") }}

- {% set title = frappe.db.get_value("Course Lesson", doc.lesson, "title") %} -
-

{{ _("{0} has submitted their assignment for the lesson {1}").format(frappe.bold(doc.member_name), frappe.bold(title)) }} -

-

{{ _(" Please evaluate and grade the assignment.") }}

-
-
- diff --git a/lms/lms/notification/assignment_submission_notification/assignment_submission_notification.py b/lms/lms/notification/assignment_submission_notification/assignment_submission_notification.py deleted file mode 100644 index 80b7b873..00000000 --- a/lms/lms/notification/assignment_submission_notification/assignment_submission_notification.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 7a6fba08..4e9db712 100644 --- a/lms/patches.txt +++ b/lms/patches.txt @@ -80,4 +80,5 @@ lms.patches.v1_0.add_certificate_template #26-10-2023 lms.patches.v1_0.create_batch_source [post_model_sync] -lms.patches.v1_0.batch_tabs_settings \ No newline at end of file +lms.patches.v1_0.batch_tabs_settings +execute:frappe.delete_doc("Notification", "Assignment Submission Notification") \ No newline at end of file diff --git a/lms/templates/emails/assignment_submission.html b/lms/templates/emails/assignment_submission.html new file mode 100644 index 00000000..2622a852 --- /dev/null +++ b/lms/templates/emails/assignment_submission.html @@ -0,0 +1,10 @@ +

+ {{ _("{0} has submitted the assignment {1}").format(frappe.bold(member_name), frappe.bold(assignment_title)) }} +

+
+

{{ _(" Please evaluate and grade it.") }}

+
` + + {{ _("Open Assignment") }} + +