feat: discussions in batches
This commit is contained in:
@@ -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(
|
||||
|
||||
@@ -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
|
||||
42
lms/patches/v1_0/custom_perm_for_discussions.py
Normal file
42
lms/patches/v1_0/custom_perm_for_discussions.py
Normal 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()
|
||||
Reference in New Issue
Block a user