diff --git a/lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.js b/lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.js index d6aec59c..8a999c77 100644 --- a/lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.js +++ b/lms/lms/doctype/lms_assignment_submission/lms_assignment_submission.js @@ -2,6 +2,13 @@ // For license information, please see license.txt frappe.ui.form.on("LMS Assignment Submission", { - // refresh: function(frm) { - // } + onload: function (frm) { + frm.set_query("member", function (doc) { + return { + filters: { + ignore_user_type: 1, + }, + }; + }); + }, }); 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..a58f2207 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") + + if custom_template: + email_template = get_email_template(custom_template, args) + subject = email_template.get("subject") + content = email_template.get("message") + frappe.sendmail( + recipients=moderators, + 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": "
{{ _(\"{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 @@ -{{ _("{0} has submitted their assignment for the lesson {1}").format(frappe.bold(doc.member_name), frappe.bold(title)) }} -
-{{ _(" Please evaluate and grade the assignment.") }}
-+ {{ _("{0} has submitted the assignment {1}").format(frappe.bold(member_name), frappe.bold(assignment_title)) }} +
+{{ _(" Please evaluate and grade it.") }}
+