Selaa lähdekoodia

[fix] feedback trigger on delete #2988 (#3027)

version-14
Rushabh Mehta 8 vuotta sitten
committed by GitHub
vanhempi
commit
befb3a31f0
2 muutettua tiedostoa jossa 21 lisäystä ja 11 poistoa
  1. +20
    -10
      frappe/core/doctype/feedback_trigger/feedback_trigger.py
  2. +1
    -1
      frappe/utils/background_jobs.py

+ 20
- 10
frappe/core/doctype/feedback_trigger/feedback_trigger.py Näytä tiedosto

@@ -12,10 +12,14 @@ from frappe.utils.jinja import validate_template


class FeedbackTrigger(Document): class FeedbackTrigger(Document):
def validate(self): def validate(self):
frappe.cache().delete_value('feedback_triggers')
validate_template(self.subject) validate_template(self.subject)
validate_template(self.message) validate_template(self.message)
self.validate_condition() self.validate_condition()


def on_trash(self):
frappe.cache().delete_value('feedback_triggers')

def validate_condition(self): def validate_condition(self):
temp_doc = frappe.new_doc(self.document_type) temp_doc = frappe.new_doc(self.document_type)
if self.condition: if self.condition:
@@ -25,16 +29,24 @@ class FeedbackTrigger(Document):
frappe.throw(_("The condition '{0}' is invalid").format(self.condition)) frappe.throw(_("The condition '{0}' is invalid").format(self.condition))


def trigger_feedback_request(doc, method): def trigger_feedback_request(doc, method):
""" trigger the feedback alert"""
"""Trigger the feedback alert, or delete feedback requests on delete"""


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:
def _get():
triggers = {}
for d in frappe.get_all('Feedback Trigger', dict(enabled=1), ['name', 'document_type']):
triggers[d.document_type] = d.name

return triggers

feedback_triggers = frappe.cache().get_value('feedback_triggers', _get)
if doc.doctype in feedback_triggers:
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:
frappe.enqueue('frappe.core.doctype.feedback_trigger.feedback_trigger.send_feedback_request', 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)
trigger=feedback_triggers[doc.doctype], reference_doctype=doc.doctype,
reference_name=doc.name, now=frappe.flags.in_test)


@frappe.whitelist() @frappe.whitelist()
def send_feedback_request(reference_doctype, reference_name, trigger="Manual", details=None, is_manual=False): def send_feedback_request(reference_doctype, reference_name, trigger="Manual", details=None, is_manual=False):
@@ -68,8 +80,6 @@ def send_feedback_request(reference_doctype, reference_name, trigger="Manual", d


@frappe.whitelist() @frappe.whitelist()
def get_feedback_request_details(reference_doctype, reference_name, trigger="Manual", request=None): def get_feedback_request_details(reference_doctype, reference_name, trigger="Manual", request=None):
feedback_url = ""

if not frappe.db.get_value(reference_doctype, reference_name): if not frappe.db.get_value(reference_doctype, reference_name):
# reference document is either deleted or renamed # reference document is either deleted or renamed
return return


+ 1
- 1
frappe/utils/background_jobs.py Näytä tiedosto

@@ -28,7 +28,7 @@ def enqueue(method, queue='default', timeout=300, event=None,
:param now: if now=True, the method is executed via frappe.call :param now: if now=True, the method is executed via frappe.call
:param kwargs: keyword arguments to be passed to the method :param kwargs: keyword arguments to be passed to the method
''' '''
if now:
if now or frappe.flags.in_migrate:
return frappe.call(method, **kwargs) return frappe.call(method, **kwargs)


q = get_queue(queue, async=async) q = get_queue(queue, async=async)


Ladataan…
Peruuta
Tallenna