mirror of
https://github.com/frappe/erpnext.git
synced 2026-05-13 02:01:21 +00:00
added email chain on blog comment and number of comments
This commit is contained in:
@@ -17,7 +17,8 @@ def get_blog_list(args=None):
|
|||||||
select
|
select
|
||||||
cache.name as name, cache.html as content,
|
cache.name as name, cache.html as content,
|
||||||
blog.owner as owner, blog.creation as published,
|
blog.owner as owner, blog.creation as published,
|
||||||
blog.title as title
|
blog.title as title, (select count(name) from `tabComment` where
|
||||||
|
comment_doctype='Blog' and comment_docname=blog.name) as comments
|
||||||
from `tabWeb Cache` cache, `tabBlog` blog
|
from `tabWeb Cache` cache, `tabBlog` blog
|
||||||
where cache.doc_type = 'Blog' and blog.page_name = cache.name
|
where cache.doc_type = 'Blog' and blog.page_name = cache.name
|
||||||
order by published desc, name asc"""
|
order by published desc, name asc"""
|
||||||
@@ -105,6 +106,23 @@ def add_comment(args=None):
|
|||||||
# get html of comment row
|
# get html of comment row
|
||||||
comment_html = website.web_cache.build_html(template_args)
|
comment_html = website.web_cache.build_html(template_args)
|
||||||
|
|
||||||
|
# notify commentors
|
||||||
|
commentors = [d[0] for d in webnotes.conn.sql("""select comment_by from tabComment where
|
||||||
|
comment_doctype='Blog' and comment_docname=%s and
|
||||||
|
ifnull(unsubscribed, 0)=0""", args.get('comment_docname'))]
|
||||||
|
|
||||||
|
blog = webnotes.conn.sql("""select * from tabBlog where name=%s""",
|
||||||
|
args.get('comment_docname'), as_dict=1)[0]
|
||||||
|
|
||||||
|
from webnotes.utils.email_lib.bulk import send
|
||||||
|
send(recipients=commentors + [blog['owner']],
|
||||||
|
doctype='Comment',
|
||||||
|
email_field='comment_by',
|
||||||
|
first_name_field="comment_by_fullname",
|
||||||
|
last_name_field="NA",
|
||||||
|
subject='New Comment on Blog: ' + blog['title'],
|
||||||
|
message='<p>%(comment)s</p><p>By %(comment_by_fullname)s</p>' % args)
|
||||||
|
|
||||||
return comment_html
|
return comment_html
|
||||||
|
|
||||||
@webnotes.whitelist(allow_guest=True)
|
@webnotes.whitelist(allow_guest=True)
|
||||||
@@ -120,6 +138,7 @@ def add_subscriber():
|
|||||||
else:
|
else:
|
||||||
lead = Document('Lead')
|
lead = Document('Lead')
|
||||||
|
|
||||||
|
if not lead.source: lead.source = 'Blog'
|
||||||
lead.unsubscribed = 0
|
lead.unsubscribed = 0
|
||||||
lead.blog_subscriber = 1
|
lead.blog_subscriber = 1
|
||||||
lead.lead_name = full_name
|
lead.lead_name = full_name
|
||||||
|
|||||||
@@ -22,10 +22,19 @@ wn.pages['{{ name }}'].onload = function(wrapper) {
|
|||||||
hide_refresh: true,
|
hide_refresh: true,
|
||||||
no_toolbar: true,
|
no_toolbar: true,
|
||||||
render_row: function(parent, data) {
|
render_row: function(parent, data) {
|
||||||
|
if(!data.comments) {
|
||||||
|
data.comment_text = 'No comments yet.'
|
||||||
|
} else if (data.comments=1) {
|
||||||
|
data.comment_text = '1 comment.'
|
||||||
|
} else {
|
||||||
|
data.comment_text = data.comments + ' comments.'
|
||||||
|
}
|
||||||
|
|
||||||
if(data.content && data.content.length==1000) {
|
if(data.content && data.content.length==1000) {
|
||||||
data.content += repl('... <a href="%(name)s.html">(read on)</a>', data);
|
data.content += repl('... <a href="%(name)s.html">(read on)</a>', data);
|
||||||
}
|
}
|
||||||
parent.innerHTML = repl('<h2><a href="%(name)s.html">%(title)s</a></h2>\
|
parent.innerHTML = repl('<h2><a href="%(name)s.html">%(title)s</a></h2>\
|
||||||
|
<div class="help">%(comment_text)s</div>\
|
||||||
%(content)s<br /><br />', data);
|
%(content)s<br /><br />', data);
|
||||||
},
|
},
|
||||||
page_length: 10
|
page_length: 10
|
||||||
|
|||||||
@@ -2265,9 +2265,7 @@ if(wn.boot.expires_on&&in_list(user_roles,'System Manager')){var today=dateutil.
|
|||||||
This ERPNext subscription <b>has expired</b>. \
|
This ERPNext subscription <b>has expired</b>. \
|
||||||
</div>',{expiry_string:expiry_string}));}}
|
</div>',{expiry_string:expiry_string}));}}
|
||||||
erpnext.set_about();if(wn.control_panel.custom_startup_code)
|
erpnext.set_about();if(wn.control_panel.custom_startup_code)
|
||||||
eval(wn.control_panel.custom_startup_code);}
|
eval(wn.control_panel.custom_startup_code);}}
|
||||||
$('body').append('<a class="erpnext-logo" title="Powered by ERPNext" \
|
|
||||||
href="http://erpnext.com" target="_blank"></a>')}
|
|
||||||
erpnext.update_messages=function(reset){if(inList(['Guest'],user)||!wn.session_alive){return;}
|
erpnext.update_messages=function(reset){if(inList(['Guest'],user)||!wn.session_alive){return;}
|
||||||
if(!reset){var set_messages=function(r){if(!r.exc){erpnext.toolbar.set_new_comments(r.message.unread_messages);var show_in_circle=function(parent_id,msg){var parent=$('#'+parent_id);if(parent){if(msg){parent.find('span:first').text(msg);parent.toggle(true);}else{parent.toggle(false);}}}
|
if(!reset){var set_messages=function(r){if(!r.exc){erpnext.toolbar.set_new_comments(r.message.unread_messages);var show_in_circle=function(parent_id,msg){var parent=$('#'+parent_id);if(parent){if(msg){parent.find('span:first').text(msg);parent.toggle(true);}else{parent.toggle(false);}}}
|
||||||
show_in_circle('unread_messages',r.message.unread_messages.length);show_in_circle('open_support_tickets',r.message.open_support_tickets);show_in_circle('things_todo',r.message.things_todo);show_in_circle('todays_events',r.message.todays_events);show_in_circle('open_tasks',r.message.open_tasks);}else{clearInterval(wn.updates.id);}}
|
show_in_circle('unread_messages',r.message.unread_messages.length);show_in_circle('open_support_tickets',r.message.open_support_tickets);show_in_circle('things_todo',r.message.things_todo);show_in_circle('todays_events',r.message.todays_events);show_in_circle('open_tasks',r.message.open_tasks);}else{clearInterval(wn.updates.id);}}
|
||||||
|
|||||||
@@ -725,9 +725,7 @@ if(wn.boot.expires_on&&in_list(user_roles,'System Manager')){var today=dateutil.
|
|||||||
This ERPNext subscription <b>has expired</b>. \
|
This ERPNext subscription <b>has expired</b>. \
|
||||||
</div>',{expiry_string:expiry_string}));}}
|
</div>',{expiry_string:expiry_string}));}}
|
||||||
erpnext.set_about();if(wn.control_panel.custom_startup_code)
|
erpnext.set_about();if(wn.control_panel.custom_startup_code)
|
||||||
eval(wn.control_panel.custom_startup_code);}
|
eval(wn.control_panel.custom_startup_code);}}
|
||||||
$('body').append('<a class="erpnext-logo" title="Powered by ERPNext" \
|
|
||||||
href="http://erpnext.com" target="_blank"></a>')}
|
|
||||||
erpnext.update_messages=function(reset){if(inList(['Guest'],user)||!wn.session_alive){return;}
|
erpnext.update_messages=function(reset){if(inList(['Guest'],user)||!wn.session_alive){return;}
|
||||||
if(!reset){var set_messages=function(r){if(!r.exc){erpnext.toolbar.set_new_comments(r.message.unread_messages);var show_in_circle=function(parent_id,msg){var parent=$('#'+parent_id);if(parent){if(msg){parent.find('span:first').text(msg);parent.toggle(true);}else{parent.toggle(false);}}}
|
if(!reset){var set_messages=function(r){if(!r.exc){erpnext.toolbar.set_new_comments(r.message.unread_messages);var show_in_circle=function(parent_id,msg){var parent=$('#'+parent_id);if(parent){if(msg){parent.find('span:first').text(msg);parent.toggle(true);}else{parent.toggle(false);}}}
|
||||||
show_in_circle('unread_messages',r.message.unread_messages.length);show_in_circle('open_support_tickets',r.message.open_support_tickets);show_in_circle('things_todo',r.message.things_todo);show_in_circle('todays_events',r.message.todays_events);show_in_circle('open_tasks',r.message.open_tasks);}else{clearInterval(wn.updates.id);}}
|
show_in_circle('unread_messages',r.message.unread_messages.length);show_in_circle('open_support_tickets',r.message.open_support_tickets);show_in_circle('things_todo',r.message.things_todo);show_in_circle('todays_events',r.message.todays_events);show_in_circle('open_tasks',r.message.open_tasks);}else{clearInterval(wn.updates.id);}}
|
||||||
|
|||||||
Reference in New Issue
Block a user