diff --git a/community/community/doctype/discussion_reply/__init__.py b/community/community/doctype/discussion_reply/__init__.py
deleted file mode 100644
index e69de29b..00000000
diff --git a/community/community/doctype/discussion_reply/discussion_reply.js b/community/community/doctype/discussion_reply/discussion_reply.js
deleted file mode 100644
index 1c72808d..00000000
--- a/community/community/doctype/discussion_reply/discussion_reply.js
+++ /dev/null
@@ -1,8 +0,0 @@
-// Copyright (c) 2021, FOSS United and contributors
-// For license information, please see license.txt
-
-frappe.ui.form.on('Discussion Reply', {
- // refresh: function(frm) {
-
- // }
-});
diff --git a/community/community/doctype/discussion_reply/discussion_reply.json b/community/community/doctype/discussion_reply/discussion_reply.json
deleted file mode 100644
index f8eb7632..00000000
--- a/community/community/doctype/discussion_reply/discussion_reply.json
+++ /dev/null
@@ -1,51 +0,0 @@
-{
- "actions": [],
- "creation": "2021-08-11 10:59:38.597046",
- "doctype": "DocType",
- "editable_grid": 1,
- "engine": "InnoDB",
- "field_order": [
- "topic",
- "reply"
- ],
- "fields": [
- {
- "fieldname": "reply",
- "fieldtype": "Long Text",
- "in_list_view": 1,
- "label": "Reply"
- },
- {
- "fieldname": "topic",
- "fieldtype": "Link",
- "in_list_view": 1,
- "in_standard_filter": 1,
- "label": "Topic",
- "options": "Discussion Topic"
- }
- ],
- "index_web_pages_for_search": 1,
- "links": [],
- "modified": "2021-08-27 15:06:51.362714",
- "modified_by": "Administrator",
- "module": "Community",
- "name": "Discussion Reply",
- "owner": "Administrator",
- "permissions": [
- {
- "create": 1,
- "delete": 1,
- "email": 1,
- "export": 1,
- "print": 1,
- "read": 1,
- "report": 1,
- "role": "System Manager",
- "share": 1,
- "write": 1
- }
- ],
- "sort_field": "modified",
- "sort_order": "DESC",
- "track_changes": 1
-}
\ No newline at end of file
diff --git a/community/community/doctype/discussion_reply/discussion_reply.py b/community/community/doctype/discussion_reply/discussion_reply.py
deleted file mode 100644
index 973a3a7b..00000000
--- a/community/community/doctype/discussion_reply/discussion_reply.py
+++ /dev/null
@@ -1,29 +0,0 @@
-# Copyright (c) 2021, FOSS United and contributors
-# For license information, please see license.txt
-
-import frappe
-from frappe.model.document import Document
-from community.widgets import Widgets
-
-class DiscussionReply(Document):
- def after_insert(self):
- data = {
- "reply": self,
- "topic": {
- "name": self.topic
- },
- "widgets": Widgets()
- }
- template = frappe.render_template("community/templates/discussions/reply_card.html", data)
- topic_info = frappe.get_all("Discussion Topic", {"name": self.topic}, ["reference_doctype", "reference_docname", "name", "title", "owner", "creation"])
- sidebar = frappe.render_template("community/templates/discussions/sidebar.html", { "topic": topic_info[0], "widgets": Widgets() })
- new_topic_template = frappe.render_template("community/templates/discussions/reply_section.html", { "topics": topic_info, "widgets": Widgets() })
-
- frappe.publish_realtime(event="publish_message",
- message = {
- "template": template,
- "topic_info": topic_info[0],
- "sidebar": sidebar,
- "new_topic_template": new_topic_template
- },
- after_commit=True)
diff --git a/community/community/doctype/discussion_reply/test_discussion_reply.py b/community/community/doctype/discussion_reply/test_discussion_reply.py
deleted file mode 100644
index 45485242..00000000
--- a/community/community/doctype/discussion_reply/test_discussion_reply.py
+++ /dev/null
@@ -1,8 +0,0 @@
-# Copyright (c) 2021, FOSS United and Contributors
-# See license.txt
-
-# import frappe
-import unittest
-
-class TestDiscussionReply(unittest.TestCase):
- pass
diff --git a/community/community/doctype/discussion_topic/__init__.py b/community/community/doctype/discussion_topic/__init__.py
deleted file mode 100644
index e69de29b..00000000
diff --git a/community/community/doctype/discussion_topic/discussion_topic.js b/community/community/doctype/discussion_topic/discussion_topic.js
deleted file mode 100644
index 2eebd44c..00000000
--- a/community/community/doctype/discussion_topic/discussion_topic.js
+++ /dev/null
@@ -1,8 +0,0 @@
-// Copyright (c) 2021, FOSS United and contributors
-// For license information, please see license.txt
-
-frappe.ui.form.on('Discussion Topic', {
- // refresh: function(frm) {
-
- // }
-});
diff --git a/community/community/doctype/discussion_topic/discussion_topic.json b/community/community/doctype/discussion_topic/discussion_topic.json
deleted file mode 100644
index c82eca04..00000000
--- a/community/community/doctype/discussion_topic/discussion_topic.json
+++ /dev/null
@@ -1,57 +0,0 @@
-{
- "actions": [],
- "creation": "2021-08-11 10:55:29.341674",
- "doctype": "DocType",
- "editable_grid": 1,
- "engine": "InnoDB",
- "field_order": [
- "title",
- "reference_doctype",
- "reference_docname"
- ],
- "fields": [
- {
- "fieldname": "title",
- "fieldtype": "Data",
- "label": "Title"
- },
- {
- "fieldname": "reference_doctype",
- "fieldtype": "Link",
- "label": "Reference Doctype",
- "options": "DocType"
- },
- {
- "fieldname": "reference_docname",
- "fieldtype": "Dynamic Link",
- "label": "Reference Docname",
- "options": "reference_doctype"
- }
- ],
- "index_web_pages_for_search": 1,
- "links": [],
- "modified": "2021-08-11 12:29:43.564123",
- "modified_by": "Administrator",
- "module": "Community",
- "name": "Discussion Topic",
- "owner": "Administrator",
- "permissions": [
- {
- "create": 1,
- "delete": 1,
- "email": 1,
- "export": 1,
- "print": 1,
- "read": 1,
- "report": 1,
- "role": "System Manager",
- "share": 1,
- "write": 1
- }
- ],
- "search_fields": "title",
- "sort_field": "modified",
- "sort_order": "DESC",
- "title_field": "title",
- "track_changes": 1
-}
diff --git a/community/community/doctype/discussion_topic/discussion_topic.py b/community/community/doctype/discussion_topic/discussion_topic.py
deleted file mode 100644
index 4ab8558f..00000000
--- a/community/community/doctype/discussion_topic/discussion_topic.py
+++ /dev/null
@@ -1,35 +0,0 @@
-# Copyright (c) 2021, FOSS United and contributors
-# For license information, please see license.txt
-
-import frappe
-from frappe.model.document import Document
-
-class DiscussionTopic(Document):
- pass
-
-@frappe.whitelist()
-def submit_discussion(doctype, docname, reply, title, topic_name=None):
- if topic_name:
- save_message(reply, topic_name)
- return topic_name
-
- topic = frappe.get_doc({
- "doctype": "Discussion Topic",
- "title": title,
- "reference_doctype": doctype,
- "reference_docname": docname
- })
- topic.save(ignore_permissions=True)
- save_message(reply, topic.name)
- return topic.name
-
-def save_message(reply, topic):
- frappe.get_doc({
- "doctype": "Discussion Reply",
- "reply": reply,
- "topic": topic
- }).save(ignore_permissions=True)
-
-@frappe.whitelist()
-def get_docname(route):
- return frappe.db.get_value("Web Page", {"route": route}, ["name"])
diff --git a/community/community/doctype/discussion_topic/test_discussion_topic.py b/community/community/doctype/discussion_topic/test_discussion_topic.py
deleted file mode 100644
index 56eaec14..00000000
--- a/community/community/doctype/discussion_topic/test_discussion_topic.py
+++ /dev/null
@@ -1,8 +0,0 @@
-# Copyright (c) 2021, FOSS United and Contributors
-# See license.txt
-
-# import frappe
-import unittest
-
-class TestDiscussionTopic(unittest.TestCase):
- pass
diff --git a/community/community/web_template/discussions/__init__.py b/community/community/web_template/discussions/__init__.py
deleted file mode 100644
index e69de29b..00000000
diff --git a/community/community/web_template/discussions/discussions.html b/community/community/web_template/discussions/discussions.html
deleted file mode 100644
index 4e4fd0bc..00000000
--- a/community/community/web_template/discussions/discussions.html
+++ /dev/null
@@ -1,2 +0,0 @@
-{% set docname = frappe.db.get_value("Web Page", {"route": ""}, ["name"])%}
-{{ widgets.DiscussionMessage(doctype="Web Page", docname=docname) }}
diff --git a/community/community/web_template/discussions/discussions.json b/community/community/web_template/discussions/discussions.json
deleted file mode 100644
index d87fa90d..00000000
--- a/community/community/web_template/discussions/discussions.json
+++ /dev/null
@@ -1,17 +0,0 @@
-{
- "__islocal": true,
- "__unsaved": 1,
- "creation": "2021-08-30 12:42:31.550200",
- "docstatus": 0,
- "doctype": "Web Template",
- "fields": [],
- "idx": 0,
- "modified": "2021-08-30 12:42:31.550200",
- "modified_by": "Administrator",
- "module": "Community",
- "name": "Discussions",
- "owner": "Administrator",
- "standard": 1,
- "template": "",
- "type": "Section"
-}
\ No newline at end of file
diff --git a/community/community/widgets/CommentBox.html b/community/community/widgets/CommentBox.html
deleted file mode 100644
index 04926a56..00000000
--- a/community/community/widgets/CommentBox.html
+++ /dev/null
@@ -1,28 +0,0 @@
-
diff --git a/community/community/widgets/DiscussionMessage.html b/community/community/widgets/DiscussionMessage.html
deleted file mode 100644
index e5bb3552..00000000
--- a/community/community/widgets/DiscussionMessage.html
+++ /dev/null
@@ -1,54 +0,0 @@
-{% set topics = frappe.get_all("Discussion Topic",
-{"reference_doctype": doctype, "reference_docname": docname}, ["name", "title", "owner", "creation"]) %}
-
-{% include "community/templates/discussions/topic_modal.html" %}
-
-
-
-
- {% if topics %}
-
-
-
-
-
- {% include "community/templates/discussions/reply_section.html" %}
-
-
- {% else %}
-
-
-
-
No Discussions
-
There are no discussions for this {{ doctype | lower }}, why don't you start
- one!
- {% if frappe.session.user == "Guest" %}
-
Log In
- {% elif not condition %}
-
- {{ button_name }}
-
- {% else %}
- {% include "community/templates/discussions/button.html" %}
- {% endif %}
-
-
-
-{% endif %}
-
-
-{% block script %}
-
-{% endblock %}
diff --git a/community/lms/widgets/BreadCrumb.html b/community/lms/widgets/BreadCrumb.html
index cd4bafa0..f0f9dec6 100644
--- a/community/lms/widgets/BreadCrumb.html
+++ b/community/lms/widgets/BreadCrumb.html
@@ -1,6 +1,4 @@
-
-
{% if course %}
All Courses
@@ -12,10 +10,4 @@
{{ course.title }}
{% endif %}
{% endif %}
-
- {% if thread %}
-
Discussions
-
-
{{ thread.title }}
- {% endif %}
diff --git a/community/public/css/style.css b/community/public/css/style.css
index 9372b350..7c19512c 100644
--- a/community/public/css/style.css
+++ b/community/public/css/style.css
@@ -1290,106 +1290,6 @@ pre {
object-fit: contain;
}
-.thread-card {
- flex-direction: column;
- padding: 1rem;
-}
-
-.discussions-parent .form-control {
- background-color: #FFFFFF;
- font-size: inherit;
- color: inherit;
- padding: 0.75rem 1rem;
-}
-
-.discussion-on-page .comment-field {
- height: 48px;
- box-shadow: inset 0px 0px 4px rgba(0, 0, 0, 0.2);
- border-radius: 4px;
-}
-
-.modal .comment-field {
- height: 300px;
-}
-
-.no-discussions {
- width: 250px;
- margin: 0 auto;
- text-align: center;
-}
-
-.no-discussions .button {
- margin: auto;
-}
-
-.discussions-header {
- margin: 2.5rem 0 1.25rem;
-}
-
-.discussions-header .button {
- float: right;
-}
-
-.discussions-parent .search-field {
- background-color: #E2E6E9;
- background-image: url(/assets/community/icons/search.svg);
- background-repeat: no-repeat;
- text-indent: 1.5rem;
- background-position: 1rem 0.7rem;
- height: 36px;
- font-size: 12px;
- padding: 0.65rem 0.9rem;
-}
-
-.discussions-sidebar {
- background-color: #F4F5F6;
- padding: 0.75rem;
- border-radius: 4px;
- max-height: 700px;
- overflow-y: auto;
-}
-
-#discussion-group {
- max-height: 700px;
- overflow-y: auto;
-}
-
-.sidebar-topic {
- padding: 0.75rem;
- margin: 0.75rem 0;
- cursor: pointer;
-}
-
-.sidebar-topic[aria-expanded="true"] {
- background: #FFFFFF;
- border-radius: 4px;
-}
-
-.comment-footer {
- display: flex;
- justify-content: flex-end;
-}
-
-.reply-card {
- margin-bottom: 40px;
-}
-
-.discussions-parent .collapsing {
- transition: height 0s;
-}
-
-.discussion-topic-title {
- color: var(--text-color);
-}
-
-.discussion-on-page .topic-title {
- display: none;
-}
-
-.discussions-sidebar .sidebar-parent:last-child .card-divider {
- display: none;
-}
-
.certificate-content {
padding: 2.5rem 3rem;
}
diff --git a/community/templates/discussions/button.html b/community/templates/discussions/button.html
deleted file mode 100644
index 9148f770..00000000
--- a/community/templates/discussions/button.html
+++ /dev/null
@@ -1,7 +0,0 @@
-{% if frappe.session.user != "Guest" and
-(condition is not defined or (condition is defined and condition )) %}
-
- New Discussion
-
-
-{% endif %}
diff --git a/community/templates/discussions/discussions.js b/community/templates/discussions/discussions.js
deleted file mode 100644
index 818b6096..00000000
--- a/community/templates/discussions/discussions.js
+++ /dev/null
@@ -1,198 +0,0 @@
-frappe.ready(() => {
- setup_socket_io();
-
- set_docname_if_missing();
-
- expand_first_discussion();
-
- $(".search-field").keyup((e) => {
- search_topic(e);
- });
-
- $(".reply").click((e) => {
- show_new_topic_modal(e);
- });
-
- $("#login-from-discussion").click((e) => {
- login_from_discussion(e);
- });
-
- $(".sidebar-topic").click((e) => {
- if ($(e.currentTarget).attr("aria-expanded") == "true") {
- e.stopPropagation();
- }
- });
-
- $(document).on("click", ".submit-discussion", (e) => {
- submit_discussion(e);
- });
-})
-
-var show_new_topic_modal = (e) => {
- e.preventDefault();
- $("#discussion-modal").modal("show");
- var topic = $(e.currentTarget).attr("data-topic");
- $(".modal-headings").text(topic ? "Reply" : "Start a Discussion");
- topic ? $(".topic-title").addClass("hide") : $(".topic-title").removeClass("hide");
- $("#submit-discussion").attr("data-topic", topic ? topic : "");
-}
-
-var setup_socket_io = () => {
- const assets = [
- "/assets/frappe/js/lib/socket.io.min.js",
- "/assets/frappe/js/frappe/socketio_client.js",
- ]
-
- frappe.require(assets, () => {
- if (window.dev_server) {
- frappe.boot.socketio_port = "9000";
- }
- frappe.socketio.init(9000);
- frappe.socketio.socket.on("publish_message", (data) => {
- publish_message(data);
- })
- })
-}
-
-var publish_message = (data) => {
- post_message_cleanup();
-
- if ($(`.discussion-on-page[data-topic=${data.topic_info.name}]`).length) {
- if ($(`.discussion-on-page[data-topic=${data.topic_info.name}] .card-divider-dark`).length) {
- $(data.template).insertAfter(`.discussion-on-page[data-topic=${data.topic_info.name}] .card-divider-dark`);
- }
- else {
-
- $('
' + data.template).insertAfter(`.discussion-on-page[data-topic=${data.topic_info.name}] .discussion-form`);
- }
- }
- else if ((decodeURIComponent($(".discussions-parent .course-content-parent").attr("data-doctype")) == data.topic_info.reference_doctype
- && decodeURIComponent($(".discussions-parent .course-content-parent").attr("data-docname")) == data.topic_info.reference_docname)) {
- $(data.sidebar).insertAfter(`.discussions-sidebar .form-group`);
- $(`#discussion-group`).prepend(data.new_topic_template);
-
- if (data.topic_info.owner == frappe.session.user) {
- $(".discussion-on-page").collapse();
- $(".sidebar-topic").first().click();
- }
-
- }
- else {
- window.location.reload();
- }
-
- update_reply_count(data.topic_info.name);
-}
-
-var post_message_cleanup = () => {
- $(".comment-field").val("");
- $("#discussion-modal").modal("hide");
- $("#no-discussions").addClass("hide");
-}
-
-var update_reply_count = (topic) => {
- var reply_count = $(`[data-target='#t${topic}']`).find(".reply-count").text();
- reply_count = parseInt(reply_count) + 1;
- $(`[data-target='#t${topic}']`).find(".reply-count").text(reply_count);
-}
-
-var set_docname_if_missing = () => {
- if ($("[data-docname='None']").length) {
- frappe.call({
- method: "community.community.doctype.discussion_topic.discussion_topic.get_docname",
- args: {
- "route": window.location.href.split("/").slice(-1)[0]
- },
- callback: (data) => {
- $("[data-docname='None']").attr("data-docname", data.message);
- }
- })
- }
-}
-
-var expand_first_discussion = () => {
- $($(".discussions-parent .collapse")[0]).addClass("show");
- $($(".discussions-sidebar [data-toggle='collapse']")[0]).attr("aria-expanded", true);
-}
-
-var search_topic = (e) => {
- var input = $(e.currentTarget).val();
-
- var topics = $(".discussions-parent .discussion-topic-title");
- if (input.length < 3 || input.trim() == "") {
- topics.closest(".sidebar-parent").removeClass("hide");
- return
- }
-
- topics.each((i, elem) => {
- var topic_id = $(elem).parent().attr("data-target");
-
- /* Check match in replies */
- var match_in_reply = false;
- var replies = $(`${topic_id}`);
- for (var reply of replies.find(".reply-text")) {
- if (has_common_substring($(reply).text(), input)) {
- match_in_reply = true;
- break;
- }
- }
-
- /* Match found in title or replies, then show */
- if (has_common_substring($(elem).text(), input) || match_in_reply) {
- $(elem).closest(".sidebar-parent").removeClass("hide")
- }
- else {
- $(elem).closest(".sidebar-parent").addClass("hide");
- }
-
- })
-}
-
-var has_common_substring = (str1, str2) => {
- var str1_arr = str1.toLowerCase().split(" ");
- var str2_arr = str2.toLowerCase().split(" ");
-
- var substring_found = false;
- for (var first_word of str1_arr) {
- for (var second_word of str2_arr) {
- if (first_word.indexOf(second_word) > -1) {
- substring_found = true;
- break;
- }
- }
- }
- return substring_found;
-}
-
-var submit_discussion = (e) => {
- e.preventDefault();
- e.stopImmediatePropagation();
-
- var title = $(".topic-title:visible").length ? $(".topic-title:visible").val().trim() : "";
- var reply = $(".comment-field:visible").val().trim();
-
- if (reply) {
- var doctype = $(e.currentTarget).attr("data-doctype");
- doctype = doctype ? decodeURIComponent(doctype) : doctype;
-
- var docname = $(e.currentTarget).attr("data-docname");
- docname = docname ? decodeURIComponent(docname) : docname;
-
- frappe.call({
- method: "community.community.doctype.discussion_topic.discussion_topic.submit_discussion",
- args: {
- "doctype": doctype ? doctype : "",
- "docname": docname ? docname : "",
- "reply": reply,
- "title": title,
- "topic_name": $(e.currentTarget).closest(".discussion-on-page").attr("data-topic")
- }
- })
-
- }
-}
-
-var login_from_discussion = (e) => {
- var redirect = $(e.currentTarget).attr("data-redirect") || window.location.href;
- window.location.href = `/login?redirect-to=${redirect}`;
-}
diff --git a/community/templates/discussions/reply_card.html b/community/templates/discussions/reply_card.html
deleted file mode 100644
index 4a5439d7..00000000
--- a/community/templates/discussions/reply_card.html
+++ /dev/null
@@ -1,13 +0,0 @@
-
- {% set member = frappe.get_doc("User", reply.owner) %}
-
- {% set member = frappe.get_doc("User", reply.owner) %}
- {{ widgets.Avatar(member=member, avatar_class="avatar-small")}}
-
- {{ member.full_name }}
-
-
just now
-
-
-
{{ reply.reply }}
-
diff --git a/community/templates/discussions/reply_section.html b/community/templates/discussions/reply_section.html
deleted file mode 100644
index 9db944a4..00000000
--- a/community/templates/discussions/reply_section.html
+++ /dev/null
@@ -1,41 +0,0 @@
-{% for topic in topics %}
-{% set replies = frappe.get_all("Discussion Reply", {"topic": topic.name},
-["reply", "owner", "creation"], order_by="creation desc")%}
-
-
-{% if replies.insert(0, replies.pop()) %}{% endif %}
-
-{% if replies %}
-
-
{{ topic.title }}
- {% for reply in replies %}
-
- {% if loop.index == 2 %}
-
- {% endif %}
-
- {% include "community/templates/discussions/reply_card.html" %}
-
- {% if loop.index == 1 %}
-
- {% if frappe.session.user == "Guest" or (condition is defined and not condition) %}
-
- Want to join the discussion?
- {% if frappe.session.user == "Guest" %}
-
Log In
- {% elif not condition %}
-
{{ button_name }}
-
- {% endif %}
-
- {% else %}
- {{ widgets.CommentBox(doctype=doctype, docname=docname) }}
- {% endif %}
-
- {% endif %}
-
- {% endfor %}
-
-{% endif %}
-{% endfor %}
diff --git a/community/templates/discussions/search.html b/community/templates/discussions/search.html
deleted file mode 100644
index 2b4b6785..00000000
--- a/community/templates/discussions/search.html
+++ /dev/null
@@ -1,9 +0,0 @@
-
diff --git a/community/templates/discussions/sidebar.html b/community/templates/discussions/sidebar.html
deleted file mode 100644
index ea74fb08..00000000
--- a/community/templates/discussions/sidebar.html
+++ /dev/null
@@ -1,20 +0,0 @@
-
diff --git a/community/templates/discussions/topic_modal.html b/community/templates/discussions/topic_modal.html
deleted file mode 100644
index 98682d6f..00000000
--- a/community/templates/discussions/topic_modal.html
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
-
-
-
- {{ widgets.CommentBox(doctype=doctype, docname=docname) }}
-
-
-
-
diff --git a/community/templates/message.html b/community/templates/message.html
deleted file mode 100644
index 5826409a..00000000
--- a/community/templates/message.html
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
- {{ message.author_name }}
-
-
- {{ message.message_time }}
-
-
-
- {{ message.message }}
-
-
diff --git a/community/www/batch/learn.html b/community/www/batch/learn.html
index 650e8a2c..485f34c9 100644
--- a/community/www/batch/learn.html
+++ b/community/www/batch/learn.html
@@ -3,8 +3,6 @@
{% block title %} {{ lesson.title }} - {{ course.title }} {% endblock %}
{% block head_include %}
-
-
{% for ext in page_extensions %}
@@ -103,11 +101,12 @@
{% macro Discussions() %}
{% set is_instructor = frappe.session.user == course.instructor %}
-{% set title = lesson.title + " - " + course.title %}
{% set condition = is_instructor if is_instructor else membership %}
-{{ widgets.DiscussionMessage(doctype="Lesson", docname=lesson.name,
- condition=condition, button_name="Start Learning",
- redirect_to="/courses/" + course.name) }}
+{% set doctype, docname = "Lesson", lesson.name %}
+{% set title = "Questions" %}
+{% set cta_title = "New Question" %}
+
+{% include "frappe/templates/discussions/discussions_section.html" %}
{% endmacro %}
{%- block script %}