diff --git a/frappe/core/doctype/feedback_trigger/feedback_trigger.py b/frappe/core/doctype/feedback_trigger/feedback_trigger.py
index 55ed2f801b..ba2d885c74 100644
--- a/frappe/core/doctype/feedback_trigger/feedback_trigger.py
+++ b/frappe/core/doctype/feedback_trigger/feedback_trigger.py
@@ -39,7 +39,7 @@ def send_feedback_request(reference_doctype, reference_name, trigger=None, detai
feedback_url = frappe.render_template("templates/emails/feedback_request_url.html", { "url": url })
# appending feedback url to message body
- details.update({ "message": "{message}
{feedback_url}".format(
+ details.update({ "message": "{message}{feedback_url}".format(
message=details.get("message"),
feedback_url=feedback_url)
})
@@ -51,10 +51,14 @@ def send_feedback_request(reference_doctype, reference_name, trigger=None, detai
def trigger_feedback_request(doc, method):
""" trigger the feedback alert"""
- feedback_trigger = frappe.db.get_value("Feedback Trigger", { "enabled": 1, "document_type": doc.doctype })
- if feedback_trigger:
- frappe.enqueue('frappe.core.doctype.feedback_trigger.feedback_trigger.send_feedback_request',
- trigger=feedback_trigger, reference_doctype=doc.doctype, reference_name=doc.name, now=frappe.flags.in_test)
+ if doc.flags.in_delete:
+ frappe.enqueue('frappe.core.doctype.feedback_trigger.feedback_trigger.delete_feedback_request_and_feedback',
+ reference_doctype=doc.doctype, reference_name=doc.name, now=frappe.flags.in_test)
+ else:
+ feedback_trigger = frappe.db.get_value("Feedback Trigger", { "enabled": 1, "document_type": doc.doctype })
+ if feedback_trigger:
+ frappe.enqueue('frappe.core.doctype.feedback_trigger.feedback_trigger.send_feedback_request',
+ trigger=feedback_trigger, reference_doctype=doc.doctype, reference_name=doc.name, now=frappe.flags.in_test)
@frappe.whitelist()
def get_feedback_request_details(reference_doctype, reference_name, trigger=None, request=None):
@@ -149,3 +153,26 @@ def get_enabled_feedback_trigger():
def get_context(doc):
return { "doc": doc }
+
+def delete_feedback_request_and_feedback(reference_doctype, reference_name):
+ """ delete all the feedback request and feedback communication """
+ if not all([reference_doctype, reference_name]):
+ return
+
+ feedback_requests = frappe.get_all("Feedback Request", filters={
+ "is_feedback_submitted": 0,
+ "reference_doctype": reference_doctype,
+ "reference_name": reference_name
+ })
+
+ communications = frappe.get_all("Communication", {
+ "communication_type": "Feedback",
+ "reference_doctype": reference_doctype,
+ "reference_name": reference_name
+ })
+
+ for request in feedback_requests:
+ frappe.delete_doc("Feedback Request", request.get("name"), ignore_permissions=True)
+
+ for communication in communications:
+ frappe.delete_doc("Communication", communication.get("name"), ignore_permissions=True)
\ No newline at end of file
diff --git a/frappe/core/doctype/feedback_trigger/test_feedback_trigger.py b/frappe/core/doctype/feedback_trigger/test_feedback_trigger.py
index 2bb30aba08..4f3046d83b 100644
--- a/frappe/core/doctype/feedback_trigger/test_feedback_trigger.py
+++ b/frappe/core/doctype/feedback_trigger/test_feedback_trigger.py
@@ -111,3 +111,19 @@ class TestFeedbackTrigger(unittest.TestCase):
reference_doctype="ToDo", reference_name=todo.name, feedback="Thank You !!", rating=4)
frappe.delete_doc("ToDo", todo.name)
+
+ # test if feedback requests and feedback communications are deleted?
+ communications = frappe.get_all("Communication", {
+ "reference_doctype": "ToDo",
+ "reference_name": todo.name,
+ "communication_type": "Feedback"
+ })
+ self.assertFalse(communications)
+
+ feedback_requests = frappe.get_all("Feedback Request", {
+ "reference_doctype": "ToDo",
+ "reference_name": todo.name,
+ "is_feedback_submitted": 0
+ })
+ self.assertFalse(feedback_requests)
+
\ No newline at end of file
diff --git a/frappe/model/delete_doc.py b/frappe/model/delete_doc.py
index 6676dd591c..5125f9d5e0 100644
--- a/frappe/model/delete_doc.py
+++ b/frappe/model/delete_doc.py
@@ -71,6 +71,7 @@ def delete_doc(doctype=None, name=None, force=0, ignore_doctypes=None, for_reloa
if not ignore_on_trash:
doc.run_method("on_trash")
+ doc.flags.in_delete = True
doc.run_method('on_change')
frappe.enqueue('frappe.model.delete_doc.delete_dynamic_links', doctype=doc.doctype, name=doc.name,
diff --git a/frappe/public/images/star.png b/frappe/public/images/star.png
deleted file mode 100644
index 3f2c6a5365..0000000000
Binary files a/frappe/public/images/star.png and /dev/null differ
diff --git a/frappe/templates/emails/feedback_request_url.html b/frappe/templates/emails/feedback_request_url.html
index 87988171e1..0b9bebb9c3 100644
--- a/frappe/templates/emails/feedback_request_url.html
+++ b/frappe/templates/emails/feedback_request_url.html
@@ -1,25 +1,12 @@
-
-
Please take a few minute to leave a feedback - we would really appreciate it!
+ Rating (select a star)