34 lines
No EOL
1.3 KiB
Python
34 lines
No EOL
1.3 KiB
Python
import frappe
|
|
|
|
def execute():
|
|
"""
|
|
rename feedback request documents,
|
|
update the feedback request and save the rating and communication
|
|
reference in Feedback Request document
|
|
"""
|
|
|
|
frappe.reload_doc("core", "doctype", "feedback_request")
|
|
feedback_requests = frappe.get_all("Feedback Request")
|
|
for request in feedback_requests:
|
|
communication, rating = frappe.db.get_value("Communication", { "feedback_request": request.get("name") },
|
|
["name", "rating"]) or [None, 0]
|
|
|
|
if communication:
|
|
frappe.db.sql("""update `tabFeedback Request` set reference_communication='{communication}',
|
|
rating={rating} where name='{feedback_request}'""".format(
|
|
communication=communication,
|
|
rating=rating or 0,
|
|
feedback_request=request.get("name")
|
|
))
|
|
|
|
if "Feedback" not in request.get("name"):
|
|
# rename the feedback request doc
|
|
reference_name, creation = frappe.db.get_value("Feedback Request", request.get("name"), ["name", "creation"])
|
|
oldname = request.get("name")
|
|
newname = "Feedback for {doctype} {docname} on {datetime}".format(
|
|
doctype="Feedback Request",
|
|
docname=reference_name,
|
|
datetime=creation
|
|
)
|
|
frappe.rename_doc("Feedback Request", oldname, newname, ignore_permissions=True)
|
|
if communication: frappe.db.set_value("Communication", communication, "feedback_request", newname) |