Server side onload functionality in multiple docs

This commit is contained in:
Nabin Hait
2014-05-19 18:15:05 +05:30
parent f87c72646c
commit 2e0620e370
20 changed files with 52 additions and 59 deletions

View File

@@ -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() {
]);
}
}
}
}

View File

@@ -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(",")