mirror of
https://github.com/frappe/erpnext.git
synced 2026-05-25 16:04:46 +00:00
[newsletter] show send progess [issue] webnotes/erpnext#531
This commit is contained in:
@@ -1,6 +1,17 @@
|
||||
// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
|
||||
// License: GNU General Public License v3. See license.txt
|
||||
|
||||
cur_frm.cscript.onload = function(doc) {
|
||||
return wn.call({
|
||||
method: "support.doctype.newsletter.newsletter.get_lead_options",
|
||||
type: "GET",
|
||||
callback: function(r) {
|
||||
set_field_options("lead_source", r.message.sources.join("\n"))
|
||||
set_field_options("lead_status", r.message.statuses.join("\n"))
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
cur_frm.cscript.refresh = function(doc) {
|
||||
erpnext.hide_naming_series();
|
||||
if(!doc.__islocal && !cint(doc.email_sent) && !doc.__unsaved
|
||||
@@ -11,18 +22,42 @@ cur_frm.cscript.refresh = function(doc) {
|
||||
});
|
||||
})
|
||||
}
|
||||
|
||||
cur_frm.cscript.setup_dashboard();
|
||||
|
||||
if(doc.__islocal && !doc.send_from) {
|
||||
cur_frm.set_value("send_from",
|
||||
repl("%(fullname)s <%(email)s>", wn.user_info(doc.owner)));
|
||||
}
|
||||
|
||||
return wn.call({
|
||||
method: "support.doctype.newsletter.newsletter.get_lead_options",
|
||||
type: "GET",
|
||||
callback: function(r) {
|
||||
set_field_options("lead_source", r.message.sources.join("\n"))
|
||||
set_field_options("lead_status", r.message.statuses.join("\n"))
|
||||
}
|
||||
|
||||
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;
|
||||
var total = wn.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",
|
||||
width: stat["Sent"],
|
||||
progress_class: "progress-bar-success"
|
||||
},
|
||||
{
|
||||
title: stat["Sending"] + "% Sending",
|
||||
width: stat["Sending"],
|
||||
progress_class: "progress-bar-warning"
|
||||
},
|
||||
{
|
||||
title: stat["Error"] + "% Error",
|
||||
width: stat["Error"],
|
||||
progress_class: "progress-bar-danger"
|
||||
}
|
||||
]);
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
@@ -11,6 +11,12 @@ from webnotes import _
|
||||
class DocType():
|
||||
def __init__(self, d, dl):
|
||||
self.doc, self.doclist = d, dl
|
||||
|
||||
def onload(self):
|
||||
if self.doc.email_sent:
|
||||
self.doc.fields["__status_count"] = dict(webnotes.conn.sql("""select status, count(*)
|
||||
from `tabBulk Email` where ref_doctype=%s and ref_docname=%s
|
||||
group by status""", (self.doc.doctype, self.doc.name))) or None
|
||||
|
||||
def test_send(self, doctype="Lead"):
|
||||
self.recipients = self.doc.test_email_id.split(",")
|
||||
@@ -74,7 +80,8 @@ class DocType():
|
||||
|
||||
send(recipients = self.recipients, sender = sender,
|
||||
subject = self.doc.subject, message = self.doc.message,
|
||||
doctype = self.send_to_doctype, email_field = "email_id")
|
||||
doctype = self.send_to_doctype, email_field = "email_id",
|
||||
ref_doctype = self.doc.doctype, ref_docname = self.doc.name)
|
||||
|
||||
webnotes.conn.auto_commit_on_many_writes = False
|
||||
|
||||
@@ -91,8 +98,10 @@ class DocType():
|
||||
@webnotes.whitelist()
|
||||
def get_lead_options():
|
||||
return {
|
||||
"sources": ["All"] + webnotes.conn.sql_list("""select distinct source from tabLead"""),
|
||||
"statuses": ["All"]+ webnotes.conn.sql_list("""select distinct status from tabLead""")
|
||||
"sources": ["All"] + filter(None,
|
||||
webnotes.conn.sql_list("""select distinct source from tabLead""")),
|
||||
"statuses": ["All"] + filter(None,
|
||||
webnotes.conn.sql_list("""select distinct status from tabLead"""))
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user