diff --git a/frappe/core/doctype/feedback_request/feedback_request.py b/frappe/core/doctype/feedback_request/feedback_request.py
index dd590a97ea..6dcf84caae 100644
--- a/frappe/core/doctype/feedback_request/feedback_request.py
+++ b/frappe/core/doctype/feedback_request/feedback_request.py
@@ -27,7 +27,7 @@ def is_valid_feedback_request(key=None):
if not key:
return False
- is_feedback_submitted = frappe.db.get_value("Feedback Request", {"key": key}, "is_feedback_submitted")
+ is_feedback_submitted = frappe.db.get_value("Feedback Request", { "key": key }, "is_feedback_submitted")
if is_feedback_submitted:
return False
else:
diff --git a/frappe/core/doctype/feedback_trigger/feedback_trigger.json b/frappe/core/doctype/feedback_trigger/feedback_trigger.json
index ef9075844c..ca6a81e359 100644
--- a/frappe/core/doctype/feedback_trigger/feedback_trigger.json
+++ b/frappe/core/doctype/feedback_trigger/feedback_trigger.json
@@ -22,6 +22,8 @@
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Enabled",
@@ -49,6 +51,8 @@
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"length": 0,
@@ -75,6 +79,8 @@
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Document Type",
@@ -104,6 +110,8 @@
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Email Field",
@@ -131,6 +139,8 @@
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Email Fieldname",
@@ -158,6 +168,8 @@
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"length": 0,
@@ -185,6 +197,8 @@
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Subject",
@@ -212,6 +226,8 @@
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"length": 0,
@@ -228,6 +244,37 @@
"set_only_once": 0,
"unique": 0
},
+ {
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "default": "1",
+ "description": "Send Feedback Request only if there is at least one communication is available for the document.",
+ "fieldname": "check_communication",
+ "fieldtype": "Check",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Check Communication",
+ "length": 0,
+ "no_copy": 0,
+ "permlevel": 0,
+ "precision": "",
+ "print_hide": 0,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
+ "unique": 0
+ },
{
"allow_on_submit": 0,
"bold": 0,
@@ -239,6 +286,8 @@
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Condition",
@@ -266,6 +315,8 @@
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"length": 0,
@@ -292,6 +343,8 @@
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"length": 0,
@@ -319,6 +372,8 @@
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Message",
@@ -346,6 +401,8 @@
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Message",
@@ -373,6 +430,8 @@
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Example",
@@ -402,7 +461,7 @@
"issingle": 0,
"istable": 0,
"max_attachments": 0,
- "modified": "2017-02-10 11:25:41.643832",
+ "modified": "2017-02-17 05:19:08.819230",
"modified_by": "Administrator",
"module": "Core",
"name": "Feedback Trigger",
@@ -433,6 +492,7 @@
"quick_entry": 0,
"read_only": 0,
"read_only_onload": 0,
+ "show_name_in_global_search": 0,
"sort_field": "modified",
"sort_order": "DESC",
"title_field": "document_type",
diff --git a/frappe/core/doctype/feedback_trigger/feedback_trigger.py b/frappe/core/doctype/feedback_trigger/feedback_trigger.py
index fd8cbb87ec..55ed2f801b 100644
--- a/frappe/core/doctype/feedback_trigger/feedback_trigger.py
+++ b/frappe/core/doctype/feedback_trigger/feedback_trigger.py
@@ -36,7 +36,7 @@ def send_feedback_request(reference_doctype, reference_name, trigger=None, detai
feedback_request, url = get_feedback_request_url(reference_doctype,
reference_name, details.get("recipients"), trigger)
- feedback_url = "Please click here to submit your feedback.".format(url=url)
+ 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(
@@ -80,13 +80,17 @@ def get_feedback_request_details(reference_doctype, reference_name, trigger=None
context = get_context(doc)
recipients = doc.get(feedback_trigger.email_fieldname, None)
- communications = frappe.get_all("Communication", filters={
- "reference_doctype": reference_doctype,
- "reference_name": reference_name,
- "communication_type": "Communication"
- }, fields=["name"])
+ if feedback_trigger.check_communication:
+ communications = frappe.get_all("Communication", filters={
+ "reference_doctype": reference_doctype,
+ "reference_name": reference_name,
+ "communication_type": "Communication"
+ }, fields=["name"])
- if recipients and eval(feedback_trigger.condition, context) and len(communications) >= 1:
+ if len(communications) < 1:
+ frappe.throw(_("No communication found for the document"))
+
+ if recipients and eval(feedback_trigger.condition, context):
subject = feedback_trigger.subject
context.update({ "feedback_trigger": feedback_trigger })
@@ -118,7 +122,7 @@ def get_feedback_request_url(reference_doctype, reference_name, recipients, trig
doctype=reference_doctype,
docname=reference_name,
email_id=recipients,
- nonce=feedback_request.name
+ nonce=feedback_request.key
)
return [ feedback_request.name, feedback_url ]
diff --git a/frappe/public/images/star.png b/frappe/public/images/star.png
new file mode 100644
index 0000000000..3f2c6a5365
Binary files /dev/null and b/frappe/public/images/star.png differ
diff --git a/frappe/public/js/frappe/form/templates/form_sidebar.html b/frappe/public/js/frappe/form/templates/form_sidebar.html
index b546bba820..08c297af8a 100644
--- a/frappe/public/js/frappe/form/templates/form_sidebar.html
+++ b/frappe/public/js/frappe/form/templates/form_sidebar.html
@@ -16,7 +16,7 @@