feat: discussions in batches

This commit is contained in:
Jannat Patel
2024-01-19 17:44:47 +05:30
parent bf57a19e2c
commit 1f18ef4362
9 changed files with 137 additions and 24 deletions

View File

@@ -1619,7 +1619,17 @@ def get_batch_students(batch):
@frappe.whitelist()
def get_discussion_topics(doctype, docname):
def get_discussion_topics(doctype, docname, single_thread):
if single_thread:
filters = {
"reference_doctype": doctype,
"reference_docname": docname,
}
topic = frappe.db.exists("Discussion Topic", filters)
if topic:
return frappe.db.get_value("Discussion Topic", topic, ["name"], as_dict=1)
else:
return create_discussion_topic(doctype, docname)
topics = frappe.get_all(
"Discussion Topic",
{
@@ -1638,6 +1648,18 @@ def get_discussion_topics(doctype, docname):
return topics
def create_discussion_topic(doctype, docname):
doc = frappe.new_doc("Discussion Topic")
doc.update(
{
"reference_doctype": doctype,
"reference_docname": docname,
}
)
doc.insert()
return doc
@frappe.whitelist()
def get_discussion_replies(topic):
replies = frappe.get_all(

View File

@@ -82,4 +82,5 @@ lms.patches.v1_0.create_batch_source
[post_model_sync]
lms.patches.v1_0.batch_tabs_settings
execute:frappe.delete_doc("Notification", "Assignment Submission Notification")
lms.patches.v1_0.change_jobs_url #17-01-2024
lms.patches.v1_0.change_jobs_url #17-01-2024
lms.patches.v1_0.custom_perm_for_discussions #14-01-2024

View File

@@ -0,0 +1,42 @@
import frappe
def execute():
roles = ["LMS Student", "Moderator", "Course Creator", "Class Evaluator"]
for role in roles:
add_perm_for_discussion_topic(role)
add_perm_for_discussion_reply(role)
def add_perm_for_discussion_topic(role):
topic_roles = frappe.permissions.get_doctype_roles("Discussion Topic")
if role in topic_roles:
return
topic_perm = frappe.new_doc("Custom DocPerm")
topic_perm.parent = "Discussion Topic"
topic_perm.role = role
topic_perm.if_owner = 1
topic_perm.read = 1
topic_perm.write = 1
topic_perm.create = 1
topic_perm.delete = 1
topic_perm.insert()
frappe.db.commit()
def add_perm_for_discussion_reply(role):
reply_roles = frappe.permissions.get_doctype_roles("Discussion Reply")
if role in reply_roles:
return
reply_perm = frappe.new_doc("Custom DocPerm")
reply_perm.parent = "Discussion Reply"
reply_perm.role = role
reply_perm.if_owner = 1
reply_perm.read = 1
reply_perm.write = 1
reply_perm.create = 1
reply_perm.delete = 1
reply_perm.insert()
frappe.db.commit()