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" %} - -
-
- {{_('Discussions')}} - {% if topics %} - {% include "community/templates/discussions/button.html" %} - {% endif %} -
- - {% if topics %} -
- -
- {% include "community/templates/discussions/search.html" %} - {% for topic in topics %} - {% set replies = frappe.get_all("Discussion Reply", {"topic": topic.name})%} - {% include "community/templates/discussions/sidebar.html" %} - {% endfor %} -
- -
- {% 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 @@ 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 @@ - 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 %}