seitime-frappe/frappe/patches/v7_2/update_feedback_request.py

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)