The license.txt file has been replaced with LICENSE for quite a while now. INAL but it didn't seem accurate to say "hey, checkout license.txt although there's no such file". Apart from this, there were inconsistencies in the headers altogether...this change brings consistency.
75 lines
2.2 KiB
Python
75 lines
2.2 KiB
Python
# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
|
|
# License: MIT. See LICENSE
|
|
from __future__ import unicode_literals
|
|
|
|
import frappe
|
|
from frappe.utils import add_to_date, now
|
|
|
|
from frappe import _
|
|
|
|
@frappe.whitelist(allow_guest=True)
|
|
def add_feedback(reference_doctype, reference_name, rating, feedback):
|
|
doc = frappe.get_doc(reference_doctype, reference_name)
|
|
if doc.disable_feedback == 1:
|
|
return
|
|
|
|
feedback_count = frappe.db.count("Feedback", {
|
|
"reference_doctype": reference_doctype,
|
|
"reference_name": reference_name,
|
|
"ip_address": frappe.local.request_ip,
|
|
"creation": (">", add_to_date(now(), hours=-1))
|
|
})
|
|
|
|
if feedback_count > 20:
|
|
frappe.msgprint(_('Hourly feedback limit reached'))
|
|
return
|
|
|
|
doc = frappe.new_doc('Feedback')
|
|
doc.reference_doctype = reference_doctype
|
|
doc.reference_name = reference_name
|
|
doc.rating = rating
|
|
doc.feedback = feedback
|
|
doc.ip_address = frappe.local.request_ip
|
|
doc.save(ignore_permissions=True)
|
|
|
|
subject = _('New Feedback on {0}: {1}').format(reference_doctype, reference_name)
|
|
send_mail(doc, subject)
|
|
return doc
|
|
|
|
@frappe.whitelist()
|
|
def update_feedback(reference_doctype, reference_name, rating, feedback):
|
|
doc = frappe.get_doc(reference_doctype, reference_name)
|
|
if doc.disable_feedback == 1:
|
|
return
|
|
|
|
filters = {
|
|
"owner": frappe.session.user,
|
|
"reference_doctype": reference_doctype,
|
|
"reference_name": reference_name
|
|
}
|
|
d = frappe.get_all('Feedback', filters=filters, limit=1)
|
|
doc = frappe.get_doc('Feedback', d[0].name)
|
|
doc.rating = rating
|
|
doc.feedback = feedback
|
|
doc.save(ignore_permissions=True)
|
|
|
|
subject = _('Feedback updated on {0}: {1}').format(reference_doctype, reference_name)
|
|
send_mail(doc, subject)
|
|
return doc
|
|
|
|
def send_mail(feedback, subject):
|
|
doc = frappe.get_doc(feedback.reference_doctype, feedback.reference_name)
|
|
|
|
message = ("<p>{0} ({1})</p>".format(feedback.feedback, feedback.rating)
|
|
+ "<p><a href='{0}/app/feedback/{1}' style='font-size: 80%'>{2}</a></p>".format(frappe.utils.get_request_site_address(),
|
|
feedback.name,
|
|
_("View Feedback")))
|
|
|
|
# notify creator
|
|
frappe.sendmail(
|
|
recipients=frappe.db.get_value('User', doc.owner, 'email') or doc.owner,
|
|
subject=subject,
|
|
message=message,
|
|
reference_doctype=doc.doctype,
|
|
reference_name=doc.name
|
|
)
|