mirror of
https://github.com/frappe/erpnext.git
synced 2026-08-29 14:48:26 +00:00
Server side onload functionality in multiple docs
This commit is contained in:
@@ -22,25 +22,25 @@ cur_frm.cscript.refresh = function(doc) {
|
||||
});
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
cur_frm.cscript.setup_dashboard();
|
||||
|
||||
if(doc.__islocal && !doc.send_from) {
|
||||
cur_frm.set_value("send_from",
|
||||
cur_frm.set_value("send_from",
|
||||
repl("%(fullname)s <%(email)s>", frappe.user_info(doc.owner)));
|
||||
}
|
||||
}
|
||||
|
||||
cur_frm.cscript.setup_dashboard = function() {
|
||||
cur_frm.dashboard.reset();
|
||||
if(!cur_frm.doc.__islocal && cint(cur_frm.doc.email_sent) && cur_frm.doc.__status_count) {
|
||||
var stat = cur_frm.doc.__status_count;
|
||||
if(!cur_frm.doc.__islocal && cint(cur_frm.doc.email_sent) && cur_frm.doc.__onload && cur_frm.doc.__onload.status_count) {
|
||||
var stat = cur_frm.doc.__onload.status_count;
|
||||
var total = frappe.utils.sum($.map(stat, function(v) { return v; }));
|
||||
if(total) {
|
||||
$.each(stat, function(k, v) {
|
||||
stat[k] = flt(v * 100 / total, 2);
|
||||
});
|
||||
|
||||
|
||||
cur_frm.dashboard.add_progress("Status", [
|
||||
{
|
||||
title: stat["Sent"] + "% Sent",
|
||||
@@ -60,4 +60,4 @@ cur_frm.cscript.setup_dashboard = function() {
|
||||
]);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -12,16 +12,9 @@ from frappe.model.document import Document
|
||||
class Newsletter(Document):
|
||||
def onload(self):
|
||||
if self.email_sent:
|
||||
self.set("__status_count", dict(frappe.db.sql("""select status, count(*)
|
||||
self.get("__onload").status_count = dict(frappe.db.sql("""select status, count(*)
|
||||
from `tabBulk Email` where ref_doctype=%s and ref_docname=%s
|
||||
group by status""", (self.doctype, self.name))) or None)
|
||||
|
||||
def as_dict(self, no_nulls=False):
|
||||
doc = super(Newsletter, self).as_dict(no_nulls)
|
||||
if self.get("__status_count"):
|
||||
doc["__status_count"] = self.get("__status_count")
|
||||
|
||||
return doc
|
||||
group by status""", (self.doctype, self.name))) or None
|
||||
|
||||
def test_send(self, doctype="Lead"):
|
||||
self.recipients = self.test_email_id.split(",")
|
||||
|
||||
Reference in New Issue
Block a user