From c15786801e81624e4bd5769bf951c6553ee92c4f Mon Sep 17 00:00:00 2001 From: Rushabh Mehta Date: Thu, 3 May 2012 14:48:41 +0530 Subject: [PATCH 1/3] updated readme --- README.md | 37 +++++++++---------------------------- 1 file changed, 9 insertions(+), 28 deletions(-) diff --git a/README.md b/README.md index 4ed8f0d936..98514f3da7 100644 --- a/README.md +++ b/README.md @@ -1,46 +1,27 @@ -# ERPNext - Open Source + SAAS ERP +# ERPNext - Open Source ERP for small, medium sized businesses -Version 2.0 +[https://erpnext.com](https://erpnext.com) -Includes Accounting, Inventory, CRM, Sales, Purchase, Projects, HRMS - -Built on Python / MySQL / wnframework - -- [Download](http://erpnext.org) -- [Use now as SAAS @ $7/user/month](https://erpnext.com) +Includes Accounting, Inventory, CRM, Sales, Purchase, Projects, HRMS. Built on Python / MySQL. ## Platform ERPNext is built on [wnframework](https://github.com/webnotes/wnframework) (Version 2.0) +## User Guide + +[See wiki](https://github.com/webnotes/erpnext/wiki/User-Guide) + ## Download and Install -For download and install details, please go to [erpnext.org](http://erpnext.org) +[See installation notes](https://github.com/webnotes/erpnext/wiki/How-to-Install-ERPNext) ## Forums - [User / Functional](http://groups.google.com/group/erpnext-user-forum) - [Technical](http://groups.google.com/group/wnframework) -## Changes from wnframework version 1.7 - -To update from wnframework version 1. - -1. set your html folder to the root of erpnext (rather than wnframework) -2. create a symlink in erpnext: - - ln -s path/to/wnframework lib - -3. to setup the versions db, run: - - python lib/wnf.py setup - -4. copy defs.py from cgi-bin/webnotes to py/webnotes -5. change module_path (point to erpnext/erpnext) in defs.py -6. delete cgi-bin directory -7. delete all old module directories from erpnext - ## License -ERPNext is available under the GNU/GPL license. +GNU/General Public License From 4b6c1f8de58dc93da141f17addcc2f517e7e2094 Mon Sep 17 00:00:00 2001 From: Anand Doshi Date: Thu, 3 May 2012 16:26:38 +0530 Subject: [PATCH 2/3] fixes in notification control due to renaming of doctype --- .../may_2012/cleanup_notification_control.py | 28 ++++++++++ erpnext/patches/patch_list.py | 5 ++ .../notification_control.js | 3 +- .../notification_control.txt | 55 +++---------------- 4 files changed, 43 insertions(+), 48 deletions(-) create mode 100644 erpnext/patches/may_2012/cleanup_notification_control.py diff --git a/erpnext/patches/may_2012/cleanup_notification_control.py b/erpnext/patches/may_2012/cleanup_notification_control.py new file mode 100644 index 0000000000..ef652509ea --- /dev/null +++ b/erpnext/patches/may_2012/cleanup_notification_control.py @@ -0,0 +1,28 @@ +def execute(): + import webnotes + webnotes.conn.sql(""" + delete from `tabSingles` + where doctype='Notification Control' + and field in ( + 'payable_voucher', + 'payment_received_message', + 'payment_sent_message', + 'enquiry') + """) + ren_list = [ + ['expense_voucher', 'expense_claim'], + ['receivable_voucher', 'sales_invoice'], + ['enquiry', 'opportunity'], + ] + for r in ren_list: + webnotes.conn.sql(""" + update `tabSingles` + set field=%s + where field=%s + and doctype='Notification Control' + """, (r[1], r[0])) + + webnotes.conn.commit() + webnotes.conn.begin() + import webnotes.model.sync + webnotes.model.sync.sync('setup', 'notification_control') \ No newline at end of file diff --git a/erpnext/patches/patch_list.py b/erpnext/patches/patch_list.py index f5c98bc737..d6d689f441 100644 --- a/erpnext/patches/patch_list.py +++ b/erpnext/patches/patch_list.py @@ -322,5 +322,10 @@ patch_list = [ 'patch_file': 'rename_prev_doctype', 'description': 'rename prev doctype fix' }, + { + 'patch_module': 'patches.may_2012', + 'patch_file': 'cleanup_notification_control', + 'description': 'cleanup notification control' + }, ] diff --git a/erpnext/setup/doctype/notification_control/notification_control.js b/erpnext/setup/doctype/notification_control/notification_control.js index 551269789e..958ed0b012 100644 --- a/erpnext/setup/doctype/notification_control/notification_control.js +++ b/erpnext/setup/doctype/notification_control/notification_control.js @@ -37,7 +37,8 @@ cur_frm.cscript.notify = function(doc, args) { if(user!='Administrator') { return user; } else { - return (wn.control_panel.auto_email_id || 'automail@erpnext.com'); + return (wn.control_panel.auto_email_id || + 'ERPNext Notification'); } })(); if(res.send) { diff --git a/erpnext/setup/doctype/notification_control/notification_control.txt b/erpnext/setup/doctype/notification_control/notification_control.txt index 49526caed4..000902e54b 100644 --- a/erpnext/setup/doctype/notification_control/notification_control.txt +++ b/erpnext/setup/doctype/notification_control/notification_control.txt @@ -3,9 +3,9 @@ # These values are common in all dictionaries { - 'creation': '2012-03-27 14:36:22', + 'creation': '2012-05-03 16:16:21', 'docstatus': 0, - 'modified': '2012-03-27 14:36:22', + 'modified': '2012-05-03 16:23:29', 'modified_by': u'Administrator', 'owner': u'Administrator' }, @@ -22,7 +22,7 @@ 'name': '__common__', 'section_style': u'Simple', 'server_code_error': u' ', - 'version': 79 + 'version': 1 }, # These values are common for all DocField @@ -85,16 +85,6 @@ 'width': u'50%' }, - # DocField - { - 'doctype': u'DocField', - 'fieldname': u'enquiry', - 'fieldtype': u'Check', - 'hidden': 1, - 'label': u'Opportunity', - 'print_hide': 1 - }, - # DocField { 'doctype': u'DocField', @@ -122,7 +112,7 @@ # DocField { 'doctype': u'DocField', - 'fieldname': u'receivable_voucher', + 'fieldname': u'sales_invoice', 'fieldtype': u'Check', 'label': u'Sales Invoice' }, @@ -155,16 +145,7 @@ # DocField { 'doctype': u'DocField', - 'fieldname': u'payable_voucher', - 'fieldtype': u'Check', - 'label': u'Purchase Invoice', - 'print_hide': 1 - }, - - # DocField - { - 'doctype': u'DocField', - 'fieldname': u'expense_voucher', + 'fieldname': u'expense_claim', 'fieldtype': u'Check', 'label': u'Expense Claim' }, @@ -184,7 +165,7 @@ 'fieldname': u'select_transaction', 'fieldtype': u'Select', 'label': u'Select Transaction', - 'options': u'\nQuotation\nSales Order\nDelivery Note\nSales Invoice\nPayment Received\nPurchase Order\nPurchase Receipt\nPayment Sent', + 'options': u'\nQuotation\nSales Order\nDelivery Note\nSales Invoice\nPurchase Order\nPurchase Receipt\nExpense Claim\nExpense Claim Approved\nExpense Claim Rejected', 'trigger': u'Client' }, @@ -245,16 +226,6 @@ 'print_hide': 1 }, - # DocField - { - 'doctype': u'DocField', - 'fieldname': u'payment_received_message', - 'fieldtype': u'Text', - 'hidden': 1, - 'label': u'Payment Received Message', - 'print_hide': 1 - }, - # DocField { 'doctype': u'DocField', @@ -278,17 +249,7 @@ # DocField { 'doctype': u'DocField', - 'fieldname': u'payment_sent_message', - 'fieldtype': u'Text', - 'hidden': 1, - 'label': u'Payment Sent Message', - 'print_hide': 1 - }, - - # DocField - { - 'doctype': u'DocField', - 'fieldname': u'expense_voucher_approved_message', + 'fieldname': u'expense_claim_approved_message', 'fieldtype': u'Text', 'hidden': 1, 'label': u'Expense Claim Approved Message', @@ -298,7 +259,7 @@ # DocField { 'doctype': u'DocField', - 'fieldname': u'expense_voucher_rejected_message', + 'fieldname': u'expense_claim_rejected_message', 'fieldtype': u'Text', 'hidden': 1, 'label': u'Expense Claim Rejected Message', From f09bd67e53b237ae0921a0b9a9237584cc5d7be2 Mon Sep 17 00:00:00 2001 From: Anand Doshi Date: Thu, 3 May 2012 16:44:54 +0530 Subject: [PATCH 3/3] fix in security settings --- erpnext/utilities/page/users/users.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/erpnext/utilities/page/users/users.py b/erpnext/utilities/page/users/users.py index 7da8003a3d..5b76a2a4c7 100644 --- a/erpnext/utilities/page/users/users.py +++ b/erpnext/utilities/page/users/users.py @@ -77,9 +77,9 @@ def update_roles(arg=None): @webnotes.whitelist() def update_security(args=''): args = json.loads(args) - webnotes.conn.set_value('Profile', args['user'], 'restrict_ip', args.get('restrict_ip')) - webnotes.conn.set_value('Profile', args['user'], 'login_after', args.get('login_after')) - webnotes.conn.set_value('Profile', args['user'], 'login_before', args.get('login_before')) + webnotes.conn.set_value('Profile', args['user'], 'restrict_ip', args.get('restrict_ip') or '') + webnotes.conn.set_value('Profile', args['user'], 'login_after', args.get('login_after') or None) + webnotes.conn.set_value('Profile', args['user'], 'login_before', args.get('login_before') or None) webnotes.conn.set_value('Profile', args['user'], 'enabled', int(args.get('enabled',0)) or 0) if args.get('new_password') and args.get('sys_admin_pwd'):