From 419a7e666ffee748c90f1fbbcfac2ece2e082c24 Mon Sep 17 00:00:00 2001 From: pateljannat Date: Sat, 22 May 2021 20:49:47 +0530 Subject: [PATCH] refactor: tests, mentor request, messages --- community/hooks.py | 9 +- .../invite_request/test_invite_request.py | 7 -- .../lms_batch_membership.py | 11 +-- .../lms/doctype/lms_course/test_lms_course.py | 1 - .../lms_mentor_request/lms_mentor_request.py | 3 +- .../lms/doctype/lms_message/lms_message.py | 87 ++++++++++--------- 6 files changed, 54 insertions(+), 64 deletions(-) diff --git a/community/hooks.py b/community/hooks.py index ebc19144..0c21b608 100644 --- a/community/hooks.py +++ b/community/hooks.py @@ -93,13 +93,8 @@ override_doctype_class = { # Hook on document methods and events doc_events = { - "User": { - "after_insert": "community.community.doctype.community_member.community_member.create_member_from_user" - }, - "LMS Message": { - "after_insert": "community.lms.doctype.lms_message.lms_message.publish_message" - } - } + +} # Scheduled Tasks # --------------- diff --git a/community/lms/doctype/invite_request/test_invite_request.py b/community/lms/doctype/invite_request/test_invite_request.py index e7ff5787..31bc7afe 100644 --- a/community/lms/doctype/invite_request/test_invite_request.py +++ b/community/lms/doctype/invite_request/test_invite_request.py @@ -52,15 +52,8 @@ class TestInviteRequest(unittest.TestCase): self.assertEqual(user.send_welcome_email, 0) self.assertEqual(user.user_type, "Website User") - member = frappe.db.get_value("Community Member", {"email": "test_invite@example.com"}) - self.assertTrue(member) - @classmethod def tearDownClass(self): - - if frappe.db.exists("Community Member", {"email": "test_invite@example.com"}): - frappe.delete_doc("Community Member", {"email": "test_invite@example.com"}) - if frappe.db.exists("User", "test_invite@example.com"): frappe.delete_doc("User", "test_invite@example.com") diff --git a/community/lms/doctype/lms_batch_membership/lms_batch_membership.py b/community/lms/doctype/lms_batch_membership/lms_batch_membership.py index ee98c743..3993eacd 100644 --- a/community/lms/doctype/lms_batch_membership/lms_batch_membership.py +++ b/community/lms/doctype/lms_batch_membership/lms_batch_membership.py @@ -29,11 +29,11 @@ class LMSBatchMembership(Document): def validate_membership_in_different_batch_same_course(self): course = frappe.db.get_value("LMS Batch", self.batch, "course") previous_membership = frappe.get_all("LMS Batch Membership", - filters={ - "member": self.member - }, - fieldname=["batch", "member_type"] - ) + filters={ + "member": self.member + }, + fields=["batch", "member_type"] + ) for membership in previous_membership: batch_course = frappe.db.get_value("LMS Batch", membership.batch, "course") @@ -41,6 +41,7 @@ class LMSBatchMembership(Document): member_name = frappe.db.get_value("User", self.member, "full_name") frappe.throw(_("{0} is already a {1} of {2} course through {3} batch").format(member_name, membership.member_type, course, membership.batch)) +@frappe.whitelist() def create_membership(batch, member=None, member_type="Student", role="Member"): frappe.get_doc({ "doctype": "LMS Batch Membership", diff --git a/community/lms/doctype/lms_course/test_lms_course.py b/community/lms/doctype/lms_course/test_lms_course.py index 61a3ecf8..69e78484 100644 --- a/community/lms/doctype/lms_course/test_lms_course.py +++ b/community/lms/doctype/lms_course/test_lms_course.py @@ -11,7 +11,6 @@ class TestLMSCourse(unittest.TestCase): def setUp(self): frappe.db.sql('delete from `tabLMS Course Mentor Mapping`') frappe.db.sql('delete from `tabLMS Course`') - frappe.db.sql('delete from `tabCommunity Member`') def new_course(self, title): doc = frappe.get_doc({ diff --git a/community/lms/doctype/lms_mentor_request/lms_mentor_request.py b/community/lms/doctype/lms_mentor_request/lms_mentor_request.py index 08e514e4..6091d192 100644 --- a/community/lms/doctype/lms_mentor_request/lms_mentor_request.py +++ b/community/lms/doctype/lms_mentor_request/lms_mentor_request.py @@ -111,8 +111,7 @@ def create_request(course): @frappe.whitelist() def cancel_request(course): - request = frappe.get_doc('LMS Mentor Request', - filters={ + request = frappe.get_doc('LMS Mentor Request',{ 'member': frappe.session.user, 'course': course, 'status': ['in', ('Pending', 'Approved')] diff --git a/community/lms/doctype/lms_message/lms_message.py b/community/lms/doctype/lms_message/lms_message.py index fb491880..f19d80ea 100644 --- a/community/lms/doctype/lms_message/lms_message.py +++ b/community/lms/doctype/lms_message/lms_message.py @@ -9,15 +9,57 @@ from frappe import _ from frappe.utils import add_days, nowdate class LMSMessage(Document): - """ def after_insert(self): - Todo: Adding email preference field for users - self.send_email() """ + def after_insert(self): + self.publish_message() + #Todo: Adding email preference field for users + #self.send_email() + + def publish_message(self): + template = self.get_message_template() + message = frappe._dict({ + "author_name": self.author_name, + "message_time": frappe.utils.pretty_date(self.creation), + "message": frappe.utils.md_to_html(self.message) + }) + + js = """ + $(".msger-input").val(""); + var template = `{0}`; + var message = {1}; + var session_user = ("{2}" == frappe.session.user) ? true : false; + message.author_name = session_user ? "You" : message.author_name + message.is_author = session_user; + template = frappe.render_template(template, {{ + "message": message + }}) + $(".message-section").append(template); + """.format(template, message, self.owner) + + frappe.publish_realtime(event="eval_js", message=js, after_commit=True) + + def get_message_template(self): + return """ +
+
+
+ {{ message.author_name }} +
+
+ {{ message.message_time }} +
+
+
+ {{ message.message }} +
+
+ """ def send_email(self): membership = frappe.get_all("LMS Batch Membership", {"batch": self.batch}, ["member"]) for entry in membership: member = frappe.get_doc("User", entry.member) if member.name != self.author: + #Todo: wrap sendmail in frappe.enqueue, else messages takes long to display. frappe.sendmail( recipients = member.email, subject = _("New Message on ") + self.batch, @@ -65,42 +107,3 @@ def send_daily_digest(): delayed = False ) -def publish_message(doc, method): - template = get_message_template() - message = frappe._dict({ - "author_name": doc.author_name, - "message_time": frappe.utils.pretty_date(doc.creation), - "message": frappe.utils.md_to_html(doc.message) - }) - - js = """ - $(".msger-input").val(""); - var template = `{0}`; - var message = {1}; - var session_user = ("{2}" == frappe.session.user) ? true : false; - message.author_name = session_user ? "You" : message.author_name - message.is_author = session_user; - template = frappe.render_template(template, {{ - "message": message - }}) - $(".message-section").append(template); - """.format(template, message, doc.owner) - - frappe.publish_realtime(event="eval_js", message=js, after_commit=True) - -def get_message_template(): - return """ -
-
-
- {{ message.author_name }} -
-
- {{ message.message_time }} -
-
-
- {{ message.message }} -
-
- """