feat: #27 discussion message publish realtime

This commit is contained in:
pateljannat
2021-04-27 16:32:34 +05:30
parent ffdc554106
commit d68f1de796
7 changed files with 48 additions and 58 deletions

View File

@@ -36,5 +36,4 @@ def save_message(message, batch):
"author": get_member_with_email(),
"message": message
})
doc.save(ignore_permissions=True)
return doc
doc.save(ignore_permissions=True)

View File

@@ -7,11 +7,11 @@ import frappe
from frappe.model.document import Document
from frappe import _
from frappe.utils import add_days, nowdate
class LMSMessage(Document):
def after_insert(self):
frappe.publish_realtime("new_lms_message", {"message":"JJannat"}, user="Administrator")
self.send_email()
def send_email(self):
membership = frappe.get_all("LMS Batch Membership", {"batch": self.batch}, ["member"])
for entry in membership:
@@ -60,4 +60,41 @@ def send_daily_digest():
"batches": group_by_batch
},
delayed = False
)
)
def publish_message(doc, method):
print(frappe.session.user)
email = frappe.db.get_value("Community Member", doc.author, "email")
session_user = True if email == frappe.session.user else False
message = get_message_template(doc, session_user)
js = """
$(".msger-input").val("");
$(".message-section").append(`{0}`);
""".format(message)
frappe.publish_realtime(event="eval_js", message=js, after_commit=True)
def get_message_template(message, session_user):
if session_user:
message.author_name = "You"
message.is_author = True
message.message_time = frappe.utils.pretty_date(message.creation)
template = """ <div class="discussion {% if message.is_author %} is-author {% endif %}">
<div class="d-flex justify-content-between">
<div class="font-weight-bold">
{{ message.author_name }}
</div>
<div class="text-muted">
{{ message.message_time }}
</div>
</div>
<div class="mt-5">
{{ message.message }}
</div>
</div>"""
template = frappe.render_template(template, {
"message": message
})
return template