feat: #27 discussion message publish realtime
This commit is contained in:
@@ -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)
|
||||
@@ -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
|
||||
Reference in New Issue
Block a user