diff --git a/lms/hooks.py b/lms/hooks.py
index fc70e0e6..85ac2ded 100644
--- a/lms/hooks.py
+++ b/lms/hooks.py
@@ -85,8 +85,8 @@ web_include_js = ["website.bundle.js", "controls.bundle.js"]
# Override standard doctype classes
override_doctype_class = {
- "User": "lms.overrides.user.CustomUser",
- "Web Template": "lms.overrides.web_template.CustomWebTemplate"
+ "User": "lms.overrides.user.CustomUser",
+ "Web Template": "lms.overrides.web_template.CustomWebTemplate"
}
# Document Events
@@ -94,7 +94,9 @@ override_doctype_class = {
# Hook on document methods and events
doc_events = {
-
+ "Discussion Reply": {
+ "after_insert": "lms.lms.utils.create_notification_log"
+ }
}
# Scheduled Tasks
diff --git a/lms/lms/utils.py b/lms/lms/utils.py
index a36f8438..abc197c3 100644
--- a/lms/lms/utils.py
+++ b/lms/lms/utils.py
@@ -4,6 +4,7 @@ from frappe.utils import flt, cint, cstr, getdate, add_months, fmt_money
from lms.lms.md import markdown_to_html, find_macros
import string
from frappe import _
+from frappe.desk.doctype.notification_log.notification_log import make_notification_logs
RE_SLUG_NOTALLOWED = re.compile("[^a-z0-9]+")
@@ -469,3 +470,35 @@ def validate_image(path):
file.save(ignore_permissions=True)
return file.file_url
return path
+
+
+def create_notification_log(doc, method):
+ topic = frappe.db.get_value("Discussion Topic", doc.topic,
+ ["reference_doctype", "reference_docname", "owner", "title"], as_dict=1)
+
+ if topic.reference_doctype != "Course Lesson":
+ return
+
+ course = frappe.db.get_value("Course Lesson", topic.reference_docname, "course")
+ instructors = frappe.db.get_all("Course Instructor", { "parent": course }, pluck="instructor")
+
+ notification = frappe._dict({
+ "subject": _("New reply on the topic {0}").format(topic.title),
+ "email_content": doc.reply,
+ "document_type": topic.reference_doctype,
+ "document_name": topic.reference_docname,
+ "for_user": topic.owner,
+ "from_user": doc.owner,
+ "type": "Alert"
+ })
+
+ users = []
+ if doc.owner != topic.owner:
+ users.append(topic.owner)
+
+ if doc.owner not in instructors:
+ users += instructors
+ make_notification_logs(notification, users)
+
+
+
diff --git a/lms/lms/widgets/Avatar.html b/lms/lms/widgets/Avatar.html
index f4b7194c..063b2c79 100644
--- a/lms/lms/widgets/Avatar.html
+++ b/lms/lms/widgets/Avatar.html
@@ -1,14 +1,14 @@
{% set color = get_palette(member.full_name) %}
-
- {% if member.user_image %}
-
-
- {% else %}
-
- {{ frappe.utils.get_abbr(member.full_name) }}
-
- {% endif %}
-
+
+ {% if member.user_image %}
+
+ {% else %}
+
+ {{ frappe.utils.get_abbr(member.full_name) }}
+
+ {% endif %}
+
diff --git a/lms/lms/widgets/Reviews.html b/lms/lms/widgets/Reviews.html
index db871e54..1e79dbd3 100644
--- a/lms/lms/widgets/Reviews.html
+++ b/lms/lms/widgets/Reviews.html
@@ -8,7 +8,7 @@
{{ _("Write a review") }}
{% elif not is_instructor(course.name) and frappe.session.user == "Guest" %}
- {{ _("Login") }}
+ {{ _("Login") }}
{% elif not is_instructor(course.name) and not membership and course.status == "Approved" %}