Merge branch 'unicode' of github.com:webnotes/erpnext into unicode
diff --git a/erpnext/selling/doctype/lead/lead.txt b/erpnext/selling/doctype/lead/lead.txt
index 056fc16..9c74de9 100644
--- a/erpnext/selling/doctype/lead/lead.txt
+++ b/erpnext/selling/doctype/lead/lead.txt
@@ -3,11 +3,11 @@
# These values are common in all dictionaries
{
- 'creation': '2012-06-05 20:03:20',
- 'docstatus': 0,
- 'modified': '2012-08-03 10:49:22',
- 'modified_by': u'Administrator',
- 'owner': u'Administrator'
+ u'creation': '2012-06-05 20:03:20',
+ u'docstatus': 0,
+ u'modified': '2012-08-06 14:49:48',
+ u'modified_by': u'Administrator',
+ u'owner': u'Administrator'
},
# These values are common for all DocType
@@ -16,10 +16,10 @@
'allow_trash': 1,
'colour': u'White:FFF',
'default_print_format': u'Standard',
- 'doctype': 'DocType',
+ u'doctype': u'DocType',
'document_type': u'Master',
'module': u'Selling',
- 'name': '__common__',
+ u'name': u'__common__',
'search_fields': u'lead_name,lead_owner,status',
'section_style': u'Tabbed',
'server_code_error': u' ',
@@ -31,8 +31,8 @@
# These values are common for all DocField
{
- 'doctype': u'DocField',
- 'name': '__common__',
+ u'doctype': u'DocField',
+ u'name': u'__common__',
'parent': u'Lead',
'parentfield': u'fields',
'parenttype': u'DocType'
@@ -40,8 +40,8 @@
# These values are common for all DocPerm
{
- 'doctype': u'DocPerm',
- 'name': '__common__',
+ u'doctype': u'DocPerm',
+ u'name': u'__common__',
'parent': u'Lead',
'parentfield': u'permissions',
'parenttype': u'DocType',
@@ -50,90 +50,14 @@
# DocType, Lead
{
- 'doctype': 'DocType',
- 'name': u'Lead'
- },
-
- # DocPerm
- {
- 'amend': 0,
- 'cancel': 0,
- 'create': 0,
- 'doctype': u'DocPerm',
- 'permlevel': 1,
- 'role': u'Sales User',
- 'submit': 0,
- 'write': 0
- },
-
- # DocPerm
- {
- 'amend': 0,
- 'cancel': 0,
- 'create': 0,
- 'doctype': u'DocPerm',
- 'permlevel': 1,
- 'role': u'Sales Manager',
- 'submit': 0,
- 'write': 0
- },
-
- # DocPerm
- {
- 'amend': 0,
- 'cancel': 1,
- 'create': 1,
- 'doctype': u'DocPerm',
- 'permlevel': 0,
- 'role': u'Sales Manager',
- 'submit': 0,
- 'write': 1
- },
-
- # DocPerm
- {
- 'amend': 0,
- 'cancel': 0,
- 'create': 1,
- 'doctype': u'DocPerm',
- 'permlevel': 0,
- 'role': u'Sales User',
- 'submit': 0,
- 'write': 1
- },
-
- # DocPerm
- {
- 'doctype': u'DocPerm',
- 'permlevel': 1,
- 'role': u'All'
- },
-
- # DocPerm
- {
- 'amend': 0,
- 'cancel': 0,
- 'create': 1,
- 'doctype': u'DocPerm',
- 'permlevel': 0,
- 'role': u'System Manager',
- 'submit': 0,
- 'write': 1
- },
-
- # DocPerm
- {
- 'create': 1,
- 'doctype': u'DocPerm',
- 'permlevel': 0,
- 'role': u'Guest',
- 'write': 1
+ u'doctype': u'DocType',
+ u'name': u'Lead'
},
# DocField
{
'colour': u'White:FFF',
- 'doctype': u'DocField',
+ u'doctype': u'DocField',
'fieldname': u'basic_info',
'fieldtype': u'Section Break',
'label': u'Basic Info',
@@ -143,7 +67,7 @@
# DocField
{
- 'doctype': u'DocField',
+ u'doctype': u'DocField',
'fieldname': u'column_break0',
'fieldtype': u'Column Break',
'oldfieldtype': u'Column Break',
@@ -155,7 +79,7 @@
{
'colour': u'White:FFF',
'description': u'To manage multiple series please go to Setup > Manage Series',
- 'doctype': u'DocField',
+ u'doctype': u'DocField',
'fieldname': u'naming_series',
'fieldtype': u'Select',
'label': u'Naming Series',
@@ -170,7 +94,7 @@
# DocField
{
'colour': u'White:FFF',
- 'doctype': u'DocField',
+ u'doctype': u'DocField',
'fieldname': u'lead_name',
'fieldtype': u'Data',
'in_filter': 1,
@@ -186,7 +110,7 @@
{
'colour': u'White:FFF',
'description': u'Name of organization from where lead has come',
- 'doctype': u'DocField',
+ u'doctype': u'DocField',
'fieldname': u'company_name',
'fieldtype': u'Data',
'in_filter': 1,
@@ -202,7 +126,8 @@
# DocField
{
'colour': u'White:FFF',
- 'doctype': u'DocField',
+ 'description': u'Source of the lead. If via a campaign, select "Campaign"',
+ u'doctype': u'DocField',
'fieldname': u'source',
'fieldtype': u'Select',
'in_filter': 1,
@@ -210,7 +135,7 @@
'no_copy': 1,
'oldfieldname': u'source',
'oldfieldtype': u'Select',
- 'options': u"\nExisting Customer\nReference\nAdvertisement\nCold Calling\nExhibition\nSupplier Reference\nMass Mailing\nCustomer's Vendor\nCampaign\nWebsite",
+ 'options': u'\nAdvertisement\nBlog\nCampaign\nCall\nCustomer\nExhibition\nSupplier\nWebsite',
'permlevel': 0,
'reqd': 1,
'search_index': 0,
@@ -221,7 +146,8 @@
{
'colour': u'White:FFF',
'depends_on': u"eval:doc.source == 'Existing Customer'",
- 'doctype': u'DocField',
+ 'description': u'Source of th',
+ u'doctype': u'DocField',
'fieldname': u'customer',
'fieldtype': u'Link',
'hidden': 0,
@@ -237,7 +163,7 @@
'colour': u'White:FFF',
'depends_on': u"eval:doc.source == 'Campaign'",
'description': u'Enter campaign name if the source of lead is campaign.',
- 'doctype': u'DocField',
+ u'doctype': u'DocField',
'fieldname': u'campaign_name',
'fieldtype': u'Link',
'hidden': 0,
@@ -250,7 +176,7 @@
# DocField
{
- 'doctype': u'DocField',
+ u'doctype': u'DocField',
'fieldname': u'column_break1',
'fieldtype': u'Column Break',
'permlevel': 0,
@@ -261,7 +187,7 @@
{
'colour': u'White:FFF',
'default': u'Open',
- 'doctype': u'DocField',
+ u'doctype': u'DocField',
'fieldname': u'status',
'fieldtype': u'Select',
'in_filter': 1,
@@ -279,7 +205,7 @@
# DocField
{
'colour': u'White:FFF',
- 'doctype': u'DocField',
+ u'doctype': u'DocField',
'fieldname': u'type',
'fieldtype': u'Select',
'in_filter': 1,
@@ -293,7 +219,7 @@
# DocField
{
'colour': u'White:FFF',
- 'doctype': u'DocField',
+ u'doctype': u'DocField',
'fieldname': u'remark',
'fieldtype': u'Small Text',
'label': u'Remark',
@@ -304,7 +230,7 @@
# DocField
{
- 'doctype': u'DocField',
+ u'doctype': u'DocField',
'fieldname': u'communication_history',
'fieldtype': u'Section Break',
'label': u'Communication History',
@@ -315,7 +241,7 @@
{
'allow_on_submit': 0,
'colour': u'White:FFF',
- 'doctype': u'DocField',
+ u'doctype': u'DocField',
'fieldname': u'communication_html',
'fieldtype': u'HTML',
'label': u'Communication HTML',
@@ -326,7 +252,7 @@
# DocField
{
- 'doctype': u'DocField',
+ u'doctype': u'DocField',
'fieldname': u'contact_info',
'fieldtype': u'Section Break',
'label': u'Contact Info',
@@ -337,7 +263,7 @@
# DocField
{
'colour': u'White:FFF',
- 'doctype': u'DocField',
+ u'doctype': u'DocField',
'fieldname': u'phone',
'fieldtype': u'Data',
'label': u'Phone',
@@ -349,7 +275,7 @@
# DocField
{
- 'doctype': u'DocField',
+ u'doctype': u'DocField',
'fieldname': u'mobile_no',
'fieldtype': u'Data',
'label': u'Mobile No.',
@@ -360,7 +286,7 @@
# DocField
{
- 'doctype': u'DocField',
+ u'doctype': u'DocField',
'fieldname': u'email_id',
'fieldtype': u'Data',
'label': u'Email Id',
@@ -372,7 +298,7 @@
# DocField
{
- 'doctype': u'DocField',
+ u'doctype': u'DocField',
'fieldname': u'fax',
'fieldtype': u'Data',
'label': u'Fax',
@@ -383,7 +309,7 @@
# DocField
{
- 'doctype': u'DocField',
+ u'doctype': u'DocField',
'fieldname': u'website',
'fieldtype': u'Data',
'label': u'Website',
@@ -396,7 +322,7 @@
{
'colour': u'White:FFF',
'description': u'<a href="javascript:cur_frm.cscript.TerritoryHelp();">To manage Territory, click here</a>',
- 'doctype': u'DocField',
+ u'doctype': u'DocField',
'fieldname': u'territory',
'fieldtype': u'Link',
'label': u'Territory',
@@ -409,7 +335,7 @@
# DocField
{
- 'doctype': u'DocField',
+ u'doctype': u'DocField',
'fieldname': u'column_break2',
'fieldtype': u'Column Break',
'permlevel': 0
@@ -417,7 +343,7 @@
# DocField
{
- 'doctype': u'DocField',
+ u'doctype': u'DocField',
'fieldname': u'address_line1',
'fieldtype': u'Data',
'label': u'Address Line 1',
@@ -430,7 +356,7 @@
# DocField
{
- 'doctype': u'DocField',
+ u'doctype': u'DocField',
'fieldname': u'address_line2',
'fieldtype': u'Data',
'label': u'Address Line 2',
@@ -442,7 +368,7 @@
# DocField
{
- 'doctype': u'DocField',
+ u'doctype': u'DocField',
'fieldname': u'city',
'fieldtype': u'Data',
'label': u'City',
@@ -455,7 +381,7 @@
# DocField
{
- 'doctype': u'DocField',
+ u'doctype': u'DocField',
'fieldname': u'country',
'fieldtype': u'Select',
'label': u'Country',
@@ -471,7 +397,7 @@
# DocField
{
'colour': u'White:FFF',
- 'doctype': u'DocField',
+ u'doctype': u'DocField',
'fieldname': u'state',
'fieldtype': u'Data',
'label': u'State',
@@ -484,7 +410,7 @@
# DocField
{
- 'doctype': u'DocField',
+ u'doctype': u'DocField',
'fieldname': u'pincode',
'fieldtype': u'Data',
'label': u'Pin Code',
@@ -497,7 +423,7 @@
# DocField
{
'colour': u'White:FFF',
- 'doctype': u'DocField',
+ u'doctype': u'DocField',
'fieldname': u'more_info',
'fieldtype': u'Section Break',
'label': u'More Info',
@@ -508,7 +434,7 @@
# DocField
{
'default': u'__user',
- 'doctype': u'DocField',
+ u'doctype': u'DocField',
'fieldname': u'lead_owner',
'fieldtype': u'Link',
'in_filter': 1,
@@ -522,7 +448,7 @@
# DocField
{
- 'doctype': u'DocField',
+ u'doctype': u'DocField',
'fieldname': u'market_segment',
'fieldtype': u'Select',
'hidden': 0,
@@ -538,7 +464,7 @@
# DocField
{
- 'doctype': u'DocField',
+ u'doctype': u'DocField',
'fieldname': u'industry',
'fieldtype': u'Link',
'label': u'Industry',
@@ -550,7 +476,7 @@
# DocField
{
- 'doctype': u'DocField',
+ u'doctype': u'DocField',
'fieldname': u'request_type',
'fieldtype': u'Select',
'label': u'Request Type',
@@ -562,7 +488,7 @@
# DocField
{
- 'doctype': u'DocField',
+ u'doctype': u'DocField',
'fieldname': u'fiscal_year',
'fieldtype': u'Select',
'hidden': 1,
@@ -576,7 +502,7 @@
# DocField
{
- 'doctype': u'DocField',
+ u'doctype': u'DocField',
'fieldname': u'column_break3',
'fieldtype': u'Column Break',
'oldfieldtype': u'Column Break',
@@ -588,7 +514,7 @@
{
'allow_on_submit': 0,
'depends_on': u"eval:doc.status == 'Lead Lost'",
- 'doctype': u'DocField',
+ u'doctype': u'DocField',
'fieldname': u'order_lost_reason',
'fieldtype': u'Link',
'hidden': 0,
@@ -604,7 +530,7 @@
'allow_on_submit': 0,
'colour': u'White:FFF',
'description': u'Your sales person who will contact the lead in future',
- 'doctype': u'DocField',
+ u'doctype': u'DocField',
'fieldname': u'contact_by',
'fieldtype': u'Link',
'hidden': 0,
@@ -624,7 +550,7 @@
'allow_on_submit': 0,
'colour': u'White:FFF',
'description': u'Your sales person will get a reminder on this date to contact the lead',
- 'doctype': u'DocField',
+ u'doctype': u'DocField',
'fieldname': u'contact_date',
'fieldtype': u'Date',
'in_filter': 1,
@@ -642,7 +568,7 @@
'colour': u'White:FFF',
'depends_on': u'eval:!doc.__islocal',
'description': u'Date on which the lead was last contacted',
- 'doctype': u'DocField',
+ u'doctype': u'DocField',
'fieldname': u'last_contact_date',
'fieldtype': u'Date',
'label': u'Last Contact Date',
@@ -655,7 +581,8 @@
# DocField
{
- 'doctype': u'DocField',
+ 'colour': u'White:FFF',
+ u'doctype': u'DocField',
'fieldname': u'company',
'fieldtype': u'Link',
'label': u'Company',
@@ -663,12 +590,12 @@
'oldfieldtype': u'Link',
'options': u'Company',
'permlevel': 0,
- 'reqd': 1
+ 'reqd': 0
},
# DocField
{
- 'doctype': u'DocField',
+ u'doctype': u'DocField',
'fieldname': u'trash_reason',
'fieldtype': u'Small Text',
'label': u'Trash Reason',
@@ -681,7 +608,7 @@
# DocField
{
- 'doctype': u'DocField',
+ u'doctype': u'DocField',
'fieldname': u'unsubscribed',
'fieldtype': u'Check',
'label': u'Unsubscribed',
@@ -690,10 +617,86 @@
# DocField
{
- 'doctype': u'DocField',
+ u'doctype': u'DocField',
'fieldname': u'blog_subscriber',
'fieldtype': u'Check',
'label': u'Blog Subscriber',
'permlevel': 0
+ },
+
+ # DocPerm
+ {
+ 'amend': 0,
+ 'cancel': 0,
+ 'create': 0,
+ u'doctype': u'DocPerm',
+ 'permlevel': 1,
+ 'role': u'Sales User',
+ 'submit': 0,
+ 'write': 0
+ },
+
+ # DocPerm
+ {
+ 'amend': 0,
+ 'cancel': 0,
+ 'create': 0,
+ u'doctype': u'DocPerm',
+ 'permlevel': 1,
+ 'role': u'Sales Manager',
+ 'submit': 0,
+ 'write': 0
+ },
+
+ # DocPerm
+ {
+ 'amend': 0,
+ 'cancel': 1,
+ 'create': 1,
+ u'doctype': u'DocPerm',
+ 'permlevel': 0,
+ 'role': u'Sales Manager',
+ 'submit': 0,
+ 'write': 1
+ },
+
+ # DocPerm
+ {
+ 'amend': 0,
+ 'cancel': 0,
+ 'create': 1,
+ u'doctype': u'DocPerm',
+ 'permlevel': 0,
+ 'role': u'Sales User',
+ 'submit': 0,
+ 'write': 1
+ },
+
+ # DocPerm
+ {
+ u'doctype': u'DocPerm',
+ 'permlevel': 1,
+ 'role': u'All'
+ },
+
+ # DocPerm
+ {
+ 'amend': 0,
+ 'cancel': 0,
+ 'create': 1,
+ u'doctype': u'DocPerm',
+ 'permlevel': 0,
+ 'role': u'System Manager',
+ 'submit': 0,
+ 'write': 1
+ },
+
+ # DocPerm
+ {
+ 'create': 1,
+ u'doctype': u'DocPerm',
+ 'permlevel': 0,
+ 'role': u'Guest',
+ 'write': 1
}
]
\ No newline at end of file
diff --git a/erpnext/startup/schedule_handlers.py b/erpnext/startup/schedule_handlers.py
index 424482b..f3eb05a 100644
--- a/erpnext/startup/schedule_handlers.py
+++ b/erpnext/startup/schedule_handlers.py
@@ -28,10 +28,6 @@
# pull emails
from support.doctype.support_ticket import get_support_mails
run_fn(get_support_mails)
-
- # run recurring invoices
- from accounts.doctype.gl_control.gl_control import manage_recurring_invoices
- run_fn(manage_recurring_invoices)
# bulk email
from webnotes.utils.email_lib.bulk import flush
@@ -42,6 +38,10 @@
from setup.doctype.email_digest.email_digest import send
run_fn(send)
+ # run recurring invoices
+ from accounts.doctype.gl_control.gl_control import manage_recurring_invoices
+ run_fn(manage_recurring_invoices)
+
# send bulk emails
from webnotes.utils.email_lib.bulk import clear_outbox
run_fn(clear_outbox)
diff --git a/erpnext/startup/startup.js b/erpnext/startup/startup.js
index 6010464..67a7486 100644
--- a/erpnext/startup/startup.js
+++ b/erpnext/startup/startup.js
@@ -100,10 +100,6 @@
if(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>')
}
diff --git a/erpnext/website/blog.py b/erpnext/website/blog.py
index 1ebea29..f0e9b71 100644
--- a/erpnext/website/blog.py
+++ b/erpnext/website/blog.py
@@ -17,7 +17,8 @@
select
cache.name as name, cache.html as content,
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
where cache.doc_type = 'Blog' and blog.page_name = cache.name
order by published desc, name asc"""
@@ -104,7 +105,24 @@
# get html of comment row
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
@webnotes.whitelist(allow_guest=True)
@@ -119,7 +137,8 @@
lead = Document('Lead', name[0][0])
else:
lead = Document('Lead')
-
+
+ if not lead.source: lead.source = 'Blog'
lead.unsubscribed = 0
lead.blog_subscriber = 1
lead.lead_name = full_name
diff --git a/erpnext/website/templates/js/blog.js b/erpnext/website/templates/js/blog.js
index 78dd3b7..76b9fb6 100644
--- a/erpnext/website/templates/js/blog.js
+++ b/erpnext/website/templates/js/blog.js
@@ -22,10 +22,19 @@
hide_refresh: true,
no_toolbar: true,
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) {
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>\
+ <div class="help">%(comment_text)s</div>\
%(content)s<br /><br />', data);
},
page_length: 10
diff --git a/public/js/all-app.js b/public/js/all-app.js
index bfd16e9..3f013bc 100644
--- a/public/js/all-app.js
+++ b/public/js/all-app.js
@@ -2265,9 +2265,7 @@
This ERPNext subscription <b>has expired</b>. \
</div>',{expiry_string:expiry_string}));}}
erpnext.set_about();if(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>')}
+eval(wn.control_panel.custom_startup_code);}}
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);}}}
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);show_in_circle('unanswered_questions',r.message.unanswered_questions);}else{clearInterval(wn.updates.id);}}
diff --git a/public/js/all-web.js b/public/js/all-web.js
index 979f8e9..e231046 100644
--- a/public/js/all-web.js
+++ b/public/js/all-web.js
@@ -725,9 +725,7 @@
This ERPNext subscription <b>has expired</b>. \
</div>',{expiry_string:expiry_string}));}}
erpnext.set_about();if(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>')}
+eval(wn.control_panel.custom_startup_code);}}
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);}}}
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);show_in_circle('unanswered_questions',r.message.unanswered_questions);}else{clearInterval(wn.updates.id);}}