Merge branch 'master' of github.com:webnotes/erpnext
diff --git a/accounts/doctype/bank_reconciliation/bank_reconciliation.py b/accounts/doctype/bank_reconciliation/bank_reconciliation.py
index def2525..f912779 100644
--- a/accounts/doctype/bank_reconciliation/bank_reconciliation.py
+++ b/accounts/doctype/bank_reconciliation/bank_reconciliation.py
@@ -62,12 +62,14 @@
def update_details(self):
vouchers = []
for d in getlist(self.doclist, 'entries'):
- if d.clearance_date and d.cheque_date:
- if getdate(d.clearance_date) < getdate(d.cheque_date):
+ if d.clearance_date:
+ if d.cheque_date and getdate(d.clearance_date) < getdate(d.cheque_date):
msgprint("Clearance Date can not be before Cheque Date (Row #%s)" %
d.idx, raise_exception=1)
- sql("update `tabJournal Voucher` set clearance_date = %s, modified = %s where name=%s", (d.clearance_date, nowdate(), d.voucher_id))
+ sql("""update `tabJournal Voucher`
+ set clearance_date = %s, modified = %s where name=%s""",
+ (d.clearance_date, nowdate(), d.voucher_id))
vouchers.append(d.voucher_id)
if vouchers:
diff --git a/accounts/doctype/gl_control/gl_control.py b/accounts/doctype/gl_control/gl_control.py
index 005567e..f0c76eb 100644
--- a/accounts/doctype/gl_control/gl_control.py
+++ b/accounts/doctype/gl_control/gl_control.py
@@ -438,14 +438,17 @@
def notify_errors(inv, owner):
+ import webnotes
+ import website
+
exception_msg = """
Dear User,
- An error occured while creating recurring invoice from %s.
+ An error occured while creating recurring invoice from %s (at %s).
May be there are some invalid email ids mentioned in the invoice.
- To stop sending repetitive error notifications from the system, we have unchecked \
+ To stop sending repetitive error notifications from the system, we have unchecked
"Convert into Recurring" field in the invoice %s.
@@ -458,11 +461,15 @@
Regards,
Administrator
- """ % (inv, inv)
+ """ % (inv, website.get_site_address(), inv)
subj = "[Urgent] Error while creating recurring invoice from %s" % inv
- import webnotes.utils
- recipients = webnotes.utils.get_system_managers_list()
- recipients += ['support@erpnext.com', owner]
+
+ from webnotes.profile import get_system_managers
+ recipients = get_system_managers()
+ owner_email = webnotes.conn.get_value("Profile", owner, "email")
+ if not owner_email in recipients:
+ recipients.append(owner_email)
+
assign_task_to_owner(inv, exception_msg, recipients)
sendmail(recipients, subject=subj, msg = exception_msg)
diff --git a/accounts/doctype/journal_voucher/journal_voucher.txt b/accounts/doctype/journal_voucher/journal_voucher.txt
index be102a0..7c1fa78 100644
--- a/accounts/doctype/journal_voucher/journal_voucher.txt
+++ b/accounts/doctype/journal_voucher/journal_voucher.txt
@@ -3,9 +3,9 @@
# These values are common in all dictionaries
{
- u'creation': '2012-05-04 10:21:24',
+ u'creation': '2012-10-02 18:51:46',
u'docstatus': 0,
- u'modified': '2012-10-02 16:43:51',
+ u'modified': '2012-10-15 12:38:42',
u'modified_by': u'Administrator',
u'owner': u'Administrator'
},
@@ -235,11 +235,13 @@
# DocField
{
+ 'colour': u'White:FFF',
+ 'description': u'eg. Cheque Number',
u'doctype': u'DocField',
'fieldname': u'cheque_no',
'fieldtype': u'Data',
'in_filter': 1,
- 'label': u'Cheque No',
+ 'label': u'Reference Number',
'no_copy': 1,
'oldfieldname': u'cheque_no',
'oldfieldtype': u'Data',
@@ -252,7 +254,7 @@
u'doctype': u'DocField',
'fieldname': u'cheque_date',
'fieldtype': u'Date',
- 'label': u'Cheque Date',
+ 'label': u'Reference Date',
'no_copy': 1,
'oldfieldname': u'cheque_date',
'oldfieldtype': u'Date',
@@ -745,6 +747,30 @@
# DocPerm
{
+ 'amend': 1,
+ 'cancel': 1,
+ 'create': 1,
+ u'doctype': u'DocPerm',
+ 'permlevel': 0,
+ 'role': u'Accounts User',
+ 'submit': 1,
+ 'write': 1
+ },
+
+ # DocPerm
+ {
+ 'amend': 0,
+ 'cancel': 0,
+ 'create': 0,
+ u'doctype': u'DocPerm',
+ 'permlevel': 1,
+ 'role': u'Accounts User',
+ 'submit': 0,
+ 'write': 0
+ },
+
+ # DocPerm
+ {
'amend': 0,
'cancel': 0,
'create': 0,
@@ -769,14 +795,14 @@
# DocPerm
{
- 'amend': 1,
- 'cancel': 1,
- 'create': 1,
+ 'amend': 0,
+ 'cancel': 0,
+ 'create': 0,
u'doctype': u'DocPerm',
'permlevel': 0,
- 'role': u'Accounts User',
- 'submit': 1,
- 'write': 1
+ 'role': u'Auditor',
+ 'submit': 0,
+ 'write': 0
},
# DocPerm
@@ -786,7 +812,7 @@
'create': 0,
u'doctype': u'DocPerm',
'permlevel': 1,
- 'role': u'Accounts User',
+ 'role': u'Auditor',
'submit': 0,
'write': 0
}
diff --git a/home/doctype/feed/feed.txt b/home/doctype/feed/feed.txt
index 2c33fcf..57471bd 100644
--- a/home/doctype/feed/feed.txt
+++ b/home/doctype/feed/feed.txt
@@ -3,11 +3,11 @@
# These values are common in all dictionaries
{
- 'creation': '2012-03-27 14:35:52',
- 'docstatus': 0,
- 'modified': '2012-03-27 14:35:52',
- 'modified_by': u'Administrator',
- 'owner': u'Administrator'
+ u'creation': '2012-07-03 13:29:42',
+ u'docstatus': 0,
+ u'modified': '2012-10-15 15:23:02',
+ u'modified_by': u'Administrator',
+ u'owner': u'Administrator'
},
# These values are common for all DocType
@@ -15,33 +15,45 @@
'autoname': u'_FEED.#####',
'colour': u'White:FFF',
'default_print_format': u'Standard',
- 'doctype': 'DocType',
+ u'doctype': u'DocType',
'module': u'Home',
- 'name': '__common__',
+ u'name': u'__common__',
'section_style': u'Simple',
'show_in_menu': 0,
- 'version': 3
+ 'version': 1
},
# These values are common for all DocField
{
- 'doctype': u'DocField',
- 'name': '__common__',
+ u'doctype': u'DocField',
+ u'name': u'__common__',
'parent': u'Feed',
'parentfield': u'fields',
'parenttype': u'DocType',
'permlevel': 0
},
+ # These values are common for all DocPerm
+ {
+ u'doctype': u'DocPerm',
+ u'name': u'__common__',
+ 'parent': u'Feed',
+ 'parentfield': u'permissions',
+ 'parenttype': u'DocType',
+ 'permlevel': 0,
+ 'read': 1,
+ 'role': u'System Manager'
+ },
+
# DocType, Feed
{
- 'doctype': 'DocType',
- 'name': u'Feed'
+ u'doctype': u'DocType',
+ u'name': u'Feed'
},
# DocField
{
- 'doctype': u'DocField',
+ u'doctype': u'DocField',
'fieldname': u'feed_type',
'fieldtype': u'Select',
'label': u'Feed Type'
@@ -49,7 +61,7 @@
# DocField
{
- 'doctype': u'DocField',
+ u'doctype': u'DocField',
'fieldname': u'doc_type',
'fieldtype': u'Data',
'label': u'Doc Type'
@@ -57,7 +69,7 @@
# DocField
{
- 'doctype': u'DocField',
+ u'doctype': u'DocField',
'fieldname': u'doc_name',
'fieldtype': u'Data',
'label': u'Doc Name'
@@ -65,7 +77,7 @@
# DocField
{
- 'doctype': u'DocField',
+ u'doctype': u'DocField',
'fieldname': u'subject',
'fieldtype': u'Data',
'label': u'Subject'
@@ -73,7 +85,7 @@
# DocField
{
- 'doctype': u'DocField',
+ u'doctype': u'DocField',
'fieldname': u'color',
'fieldtype': u'Data',
'label': u'Color'
@@ -81,9 +93,14 @@
# DocField
{
- 'doctype': u'DocField',
+ u'doctype': u'DocField',
'fieldname': u'full_name',
'fieldtype': u'Data',
'label': u'Full Name'
+ },
+
+ # DocPerm
+ {
+ u'doctype': u'DocPerm'
}
]
\ No newline at end of file
diff --git a/home/page/activity/activity.js b/home/page/activity/activity.js
index 47900ec..807a5d0 100644
--- a/home/page/activity/activity.js
+++ b/home/page/activity/activity.js
@@ -1,6 +1,7 @@
wn.pages['activity'].onload = function(wrapper) {
wrapper.appframe = new wn.ui.AppFrame($(wrapper).find('.layout-appframe'));
wrapper.appframe.title('Activity');
+
var list = new wn.ui.Listing({
appframe: wrapper.appframe,
method: 'home.page.activity.activity.get_feed',
@@ -10,6 +11,13 @@
}
});
list.run();
+
+ // Build Report Button
+ if(wn.boot.profile.can_get_report.indexOf("Feed")!=-1) {
+ wrapper.appframe.add_button('Build Report', function() {
+ wn.set_route('Report2', "Feed");
+ }, 'icon-th')
+ }
}
erpnext.last_feed_date = false;
diff --git a/setup/doctype/sales_partner/sales_partner.py b/setup/doctype/sales_partner/sales_partner.py
index 1754b4e..75d998a 100644
--- a/setup/doctype/sales_partner/sales_partner.py
+++ b/setup/doctype/sales_partner/sales_partner.py
@@ -38,7 +38,6 @@
def __init__(self, doc, doclist=[]):
self.doc = doc
self.doclist = doclist
- self.prefix = is_testing and 'test' or 'tab'
def validate(self):
import string
diff --git a/setup/doctype/setup_control/setup_control.py b/setup/doctype/setup_control/setup_control.py
index b5207c2..a71fde9 100644
--- a/setup/doctype/setup_control/setup_control.py
+++ b/setup/doctype/setup_control/setup_control.py
@@ -140,8 +140,8 @@
import webnotes
companies_list = webnotes.conn.sql("SELECT company_name FROM `tabCompany`", as_list=1)
- import webnotes.utils
- system_managers = webnotes.utils.get_system_managers_list()
+ from webnotes.profile import get_system_managers
+ system_managers = get_system_managers()
if not system_managers: return
from webnotes.model.doc import Document
diff --git a/startup/event_handlers.py b/startup/event_handlers.py
index 472d5d1..573bcc6 100644
--- a/startup/event_handlers.py
+++ b/startup/event_handlers.py
@@ -43,7 +43,7 @@
from webnotes.utils import nowtime
from webnotes.profile import get_user_fullname
home.make_feed('Login', 'Profile', login_manager.user, login_manager.user,
- '%s logged in at %s' % (get_user_fullname, nowtime()),
+ '%s logged in at %s' % (get_user_fullname(login_manager.user), nowtime()),
login_manager.user=='Administrator' and '#8CA2B3' or '#1B750D')
diff --git a/website/__init__.py b/website/__init__.py
index dbf65dd..0796fb4 100644
--- a/website/__init__.py
+++ b/website/__init__.py
@@ -23,4 +23,16 @@
webnotes.msgprint('Please give us your email id so that we can write back to you', raise_exception=True)
d.save()
- webnotes.msgprint('Thank you!')
\ No newline at end of file
+ webnotes.msgprint('Thank you!')
+
+def get_site_address():
+ from webnotes.utils import get_request_site_address
+ url = get_request_site_address()
+
+ if not url or url=='http://localhost':
+ new_url = webnotes.conn.get_value('Website Settings', 'Website Settings',
+ 'subdomain')
+ if new_url:
+ url = "http://" + new_url
+
+ return url
\ No newline at end of file