From 09957b61c8ab8f35716de0c4dd37676dfd9269ba Mon Sep 17 00:00:00 2001 From: Akhilesh Darjee Date: Wed, 20 Mar 2013 10:21:51 +0530 Subject: [PATCH 1/8] Dropbox upload chunked fixed. --- setup/doctype/backup_manager/backup_dropbox.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup/doctype/backup_manager/backup_dropbox.py b/setup/doctype/backup_manager/backup_dropbox.py index 2c7fda6ca9..eb31a96c99 100644 --- a/setup/doctype/backup_manager/backup_dropbox.py +++ b/setup/doctype/backup_manager/backup_dropbox.py @@ -112,7 +112,7 @@ def upload_file_to_dropbox(filename, folder, dropbox_client): while uploader.offset < size: try: uploader.upload_chunked() - finish(folder + '/' + os.path.basename(filename), overwrite='True') + uploader.finish(folder + '/' + os.path.basename(filename), overwrite='True') except rest.ErrorResponse, e: pass else: From 4ff94e389e45c712a52bde1cac325b62e22d3541 Mon Sep 17 00:00:00 2001 From: Akhilesh Darjee Date: Wed, 20 Mar 2013 11:20:47 +0530 Subject: [PATCH 2/8] dropbox chunked uploader fixed. --- setup/doctype/backup_manager/backup_dropbox.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/setup/doctype/backup_manager/backup_dropbox.py b/setup/doctype/backup_manager/backup_dropbox.py index eb31a96c99..8cefebfce8 100644 --- a/setup/doctype/backup_manager/backup_dropbox.py +++ b/setup/doctype/backup_manager/backup_dropbox.py @@ -64,6 +64,7 @@ def backup_to_dropbox(): from dropbox import client, session, rest from conf import dropbox_access_key, dropbox_secret_key from webnotes.utils.backups import new_backup + found = False if not webnotes.conn: webnotes.connect() @@ -81,15 +82,14 @@ def backup_to_dropbox(): upload_file_to_dropbox(filename, "database", dropbox_client) response = dropbox_client.metadata("/files") - # upload files to files folder - filename = os.path.join(get_base_path(), "public", "files") - for filename in os.listdir(filename): - found = False + path = os.path.join(get_base_path(), "public", "files") + for files in os.listdir(path): + filename = path + "/" + files for file_metadata in response["contents"]: - if filename==os.path.basename(file_metadata["path"]): - if os.stat(filename).st_size==file_metadata["bytes"]: - found=True + if os.path.basename(filename)==os.path.basename(file_metadata["path"]) and os.stat(filename).st_size==int(file_metadata["bytes"]): + found=True + break if not found: upload_file_to_dropbox(os.path.join(get_base_path(),"public", "files", filename), "files", dropbox_client) From 3abf67cf5e1839fb5bb66f8fa868741e4ea2f154 Mon Sep 17 00:00:00 2001 From: Akhilesh Darjee Date: Wed, 20 Mar 2013 13:25:28 +0530 Subject: [PATCH 3/8] dropbox and googledrive problems fixed --- .../doctype/backup_manager/backup_dropbox.py | 15 ++++++------- .../backup_manager/backup_googledrive.py | 22 +++++++++---------- 2 files changed, 17 insertions(+), 20 deletions(-) diff --git a/setup/doctype/backup_manager/backup_dropbox.py b/setup/doctype/backup_manager/backup_dropbox.py index 8cefebfce8..fc73d87452 100644 --- a/setup/doctype/backup_manager/backup_dropbox.py +++ b/setup/doctype/backup_manager/backup_dropbox.py @@ -64,7 +64,6 @@ def backup_to_dropbox(): from dropbox import client, session, rest from conf import dropbox_access_key, dropbox_secret_key from webnotes.utils.backups import new_backup - found = False if not webnotes.conn: webnotes.connect() @@ -84,15 +83,15 @@ def backup_to_dropbox(): response = dropbox_client.metadata("/files") # upload files to files folder path = os.path.join(get_base_path(), "public", "files") - for files in os.listdir(path): - filename = path + "/" + files + for filename in os.listdir(path): + found = False + filepath = os.path.join(path, filename) for file_metadata in response["contents"]: - if os.path.basename(filename)==os.path.basename(file_metadata["path"]) and os.stat(filename).st_size==int(file_metadata["bytes"]): - found=True + if os.path.basename(filepath) == os.path.basename(file_metadata["path"]) and os.stat(filepath).st_size == int(file_metadata["bytes"]): + found = True break - if not found: - upload_file_to_dropbox(os.path.join(get_base_path(),"public", "files", filename), "files", dropbox_client) + upload_file_to_dropbox(filepath, "files", dropbox_client) def get_dropbox_session(): from dropbox import session @@ -112,7 +111,7 @@ def upload_file_to_dropbox(filename, folder, dropbox_client): while uploader.offset < size: try: uploader.upload_chunked() - uploader.finish(folder + '/' + os.path.basename(filename), overwrite='True') + uploader.finish(os.path.join(folder, os.path.basename(filename)), overwrite='True') except rest.ErrorResponse, e: pass else: diff --git a/setup/doctype/backup_manager/backup_googledrive.py b/setup/doctype/backup_manager/backup_googledrive.py index c794672de5..c2c081c147 100644 --- a/setup/doctype/backup_manager/backup_googledrive.py +++ b/setup/doctype/backup_manager/backup_googledrive.py @@ -51,8 +51,6 @@ def upload_files(name, mimetype, service, folder_id): def backup_to_gdrive(): from webnotes.utils.backups import new_backup - found_database = False - found_files = False if not webnotes.conn: webnotes.connect() flow = get_gdrive_flow() @@ -73,10 +71,11 @@ def backup_to_gdrive(): # upload files to files folder path = os.path.join(get_base_path(), "public", "files") - for files in os.listdir(path): - filename = path + "/" + files - ext = filename.split('.')[-1] - size = os.path.getsize(filename) + for filename in os.listdir(path): + found = False + filepath = os.path.join(path, filename) + ext = filepath.split('.')[-1] + size = os.path.getsize(filepath) if ext == 'gz' or ext == 'gzip': mimetype = 'application/x-gzip' else: @@ -88,11 +87,11 @@ def backup_to_gdrive(): **param).execute() for child in children.get('items', []): file = drive_service.files().get(fileId=child['id']).execute() - if files == file['title'] and size == int(file['fileSize']): - found_files = True + if filename == file['title'] and size == int(file['fileSize']): + found = True break - if not found_files: - upload_files(filename, mimetype, drive_service, webnotes.conn.get_value("Backup Manager", None, "files_folder_id")) + if not found: + upload_files(filepath, mimetype, drive_service, webnotes.conn.get_value("Backup Manager", None, "files_folder_id")) def get_gdrive_flow(): from oauth2client.client import OAuth2WebServerFlow @@ -106,10 +105,9 @@ def get_gdrive_flow(): # + "?cmd=setup.doctype.backup_manager.backup_googledrive.googledrive_callback" # for installed apps since google does not support subdomains - redirect_uri = "urn:ietf:wg:oauth:2.0:oob" flow = OAuth2WebServerFlow(conf.gdrive_client_id, conf.gdrive_client_secret, - "https://www.googleapis.com/auth/drive", redirect_uri) + "https://www.googleapis.com/auth/drive", conf.gdrive_redirect_url) return flow @webnotes.whitelist() From ba9ecaeef791e8e03ce565b63c7248c85c993803 Mon Sep 17 00:00:00 2001 From: Akhilesh Darjee Date: Wed, 20 Mar 2013 13:47:17 +0530 Subject: [PATCH 4/8] backup dropbox and googledrive problems fixed. --- setup/doctype/backup_manager/backup_dropbox.py | 2 +- setup/doctype/backup_manager/backup_googledrive.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/setup/doctype/backup_manager/backup_dropbox.py b/setup/doctype/backup_manager/backup_dropbox.py index fc73d87452..659af68aa6 100644 --- a/setup/doctype/backup_manager/backup_dropbox.py +++ b/setup/doctype/backup_manager/backup_dropbox.py @@ -115,7 +115,7 @@ def upload_file_to_dropbox(filename, folder, dropbox_client): except rest.ErrorResponse, e: pass else: - response = dropbox_client.put_file(folder + "/" + os.path.basename(filename), f, overwrite=True) + response = dropbox_client.put_file(os.path.join(folder, os.path.basename(filename)), f, overwrite=True) if __name__=="__main__": backup_to_dropbox() \ No newline at end of file diff --git a/setup/doctype/backup_manager/backup_googledrive.py b/setup/doctype/backup_manager/backup_googledrive.py index c2c081c147..0e8d52a108 100644 --- a/setup/doctype/backup_manager/backup_googledrive.py +++ b/setup/doctype/backup_manager/backup_googledrive.py @@ -74,7 +74,7 @@ def backup_to_gdrive(): for filename in os.listdir(path): found = False filepath = os.path.join(path, filename) - ext = filepath.split('.')[-1] + ext = filename.split('.')[-1] size = os.path.getsize(filepath) if ext == 'gz' or ext == 'gzip': mimetype = 'application/x-gzip' From 4e7a58608ffa55dcf75021a2daa99eba3ae0b087 Mon Sep 17 00:00:00 2001 From: Akhilesh Darjee Date: Wed, 20 Mar 2013 16:33:02 +0530 Subject: [PATCH 5/8] google drive redirect url fixed. --- setup/doctype/backup_manager/backup_googledrive.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup/doctype/backup_manager/backup_googledrive.py b/setup/doctype/backup_manager/backup_googledrive.py index 0e8d52a108..a767b3ae4e 100644 --- a/setup/doctype/backup_manager/backup_googledrive.py +++ b/setup/doctype/backup_manager/backup_googledrive.py @@ -107,7 +107,7 @@ def get_gdrive_flow(): # for installed apps since google does not support subdomains flow = OAuth2WebServerFlow(conf.gdrive_client_id, conf.gdrive_client_secret, - "https://www.googleapis.com/auth/drive", conf.gdrive_redirect_url) + "https://www.googleapis.com/auth/drive", 'urn:ietf:wg:oauth:2.0:oob') return flow @webnotes.whitelist() From fadffcf5281ae75e2ef199daeedcec91c3d82208 Mon Sep 17 00:00:00 2001 From: Akhilesh Darjee Date: Thu, 21 Mar 2013 13:06:41 +0530 Subject: [PATCH 6/8] description added to 'Is Opening' and 'Aging Date' field --- .../journal_voucher/journal_voucher.txt | 37 ++++------ .../purchase_invoice/purchase_invoice.txt | 68 ++++++++++++------- .../doctype/sales_invoice/sales_invoice.txt | 41 +++++++++-- 3 files changed, 93 insertions(+), 53 deletions(-) diff --git a/accounts/doctype/journal_voucher/journal_voucher.txt b/accounts/doctype/journal_voucher/journal_voucher.txt index b36008e134..dc857c8ce1 100644 --- a/accounts/doctype/journal_voucher/journal_voucher.txt +++ b/accounts/doctype/journal_voucher/journal_voucher.txt @@ -1,8 +1,8 @@ [ { - "creation": "2013-01-30 12:49:46", + "creation": "2013-03-07 12:35:57", "docstatus": 0, - "modified": "2013-02-01 10:50:16", + "modified": "2013-03-21 13:02:27", "modified_by": "Administrator", "owner": "Administrator" }, @@ -24,6 +24,9 @@ "permlevel": 0 }, { + "amend": 1, + "cancel": 1, + "create": 1, "doctype": "DocPerm", "name": "__common__", "parent": "Journal Voucher", @@ -31,7 +34,9 @@ "parenttype": "DocType", "permlevel": 0, "read": 1, - "report": 1 + "report": 1, + "submit": 1, + "write": 1 }, { "doctype": "DocType", @@ -278,6 +283,7 @@ }, { "default": "No", + "description": "Considered as Opening Balance", "doctype": "DocField", "fieldname": "is_opening", "fieldtype": "Select", @@ -290,7 +296,7 @@ "search_index": 1 }, { - "description": "For opening invoice entry, this date will reflect in the period-wise aging report.", + "description": "Actual Posting Date", "doctype": "DocField", "fieldname": "aging_date", "fieldtype": "Date", @@ -444,30 +450,11 @@ "read_only": 1 }, { - "amend": 1, - "cancel": 1, - "create": 1, "doctype": "DocPerm", - "role": "Accounts User", - "submit": 1, - "write": 1 + "role": "Accounts Manager" }, { - "amend": 1, - "cancel": 1, - "create": 1, "doctype": "DocPerm", - "role": "Accounts Manager", - "submit": 1, - "write": 1 - }, - { - "amend": 0, - "cancel": 0, - "create": 0, - "doctype": "DocPerm", - "role": "Auditor", - "submit": 0, - "write": 0 + "role": "Accounts User" } ] \ No newline at end of file diff --git a/accounts/doctype/purchase_invoice/purchase_invoice.txt b/accounts/doctype/purchase_invoice/purchase_invoice.txt index 0c921b1a16..90af60f5f2 100755 --- a/accounts/doctype/purchase_invoice/purchase_invoice.txt +++ b/accounts/doctype/purchase_invoice/purchase_invoice.txt @@ -1,8 +1,8 @@ [ { - "creation": "2013-01-29 17:54:09", + "creation": "2013-03-07 13:16:13", "docstatus": 0, - "modified": "2013-01-29 18:25:24", + "modified": "2013-03-21 12:16:35", "modified_by": "Administrator", "owner": "Administrator" }, @@ -30,7 +30,6 @@ "parent": "Purchase Invoice", "parentfield": "permissions", "parenttype": "DocType", - "permlevel": 0, "read": 1, "report": 1 }, @@ -636,6 +635,7 @@ }, { "default": "No", + "description": "Considered as Opening Balance", "doctype": "DocField", "fieldname": "is_opening", "fieldtype": "Select", @@ -648,6 +648,7 @@ "search_index": 1 }, { + "description": "Actual Invoice Date", "doctype": "DocField", "fieldname": "aging_date", "fieldtype": "Date", @@ -764,31 +765,13 @@ "no_copy": 1, "print_hide": 1 }, - { - "amend": 1, - "cancel": 1, - "create": 1, - "doctype": "DocPerm", - "role": "Accounts User", - "submit": 1, - "write": 1 - }, - { - "amend": 0, - "cancel": 0, - "create": 1, - "doctype": "DocPerm", - "role": "Purchase User", - "submit": 0, - "write": 1 - }, { "amend": 0, "cancel": 0, "create": 0, "doctype": "DocPerm", - "match": "supplier", - "role": "Supplier", + "permlevel": 1, + "role": "Accounts Manager", "submit": 0, "write": 0 }, @@ -797,6 +780,7 @@ "cancel": 1, "create": 1, "doctype": "DocPerm", + "permlevel": 0, "role": "Accounts Manager", "submit": 1, "write": 1 @@ -806,8 +790,44 @@ "cancel": 0, "create": 0, "doctype": "DocPerm", - "role": "Auditor", + "permlevel": 1, + "role": "Accounts User", "submit": 0, "write": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "doctype": "DocPerm", + "permlevel": 1, + "role": "Purchase User", + "submit": 0 + }, + { + "amend": 0, + "cancel": 0, + "create": 1, + "doctype": "DocPerm", + "permlevel": 0, + "role": "Purchase User", + "submit": 0, + "write": 1 + }, + { + "amend": 1, + "cancel": 1, + "create": 1, + "doctype": "DocPerm", + "permlevel": 0, + "role": "Accounts User", + "submit": 1, + "write": 1 + }, + { + "doctype": "DocPerm", + "match": "supplier", + "permlevel": 0, + "role": "Supplier" } ] \ No newline at end of file diff --git a/accounts/doctype/sales_invoice/sales_invoice.txt b/accounts/doctype/sales_invoice/sales_invoice.txt index 35710b4d49..41a66b82e9 100644 --- a/accounts/doctype/sales_invoice/sales_invoice.txt +++ b/accounts/doctype/sales_invoice/sales_invoice.txt @@ -1,8 +1,8 @@ [ { - "creation": "2013-03-12 11:56:25", + "creation": "2013-03-19 17:03:01", "docstatus": 0, - "modified": "2013-03-12 14:31:24", + "modified": "2013-03-21 12:14:57", "modified_by": "Administrator", "owner": "Administrator" }, @@ -30,7 +30,6 @@ "parent": "Sales Invoice", "parentfield": "permissions", "parenttype": "DocType", - "permlevel": 0, "read": 1, "report": 1 }, @@ -750,11 +749,12 @@ }, { "default": "No", + "description": "Considered as an Opening Balance", "doctype": "DocField", "fieldname": "is_opening", "fieldtype": "Select", "in_filter": 1, - "label": "Is Opening", + "label": "Is Opening Entry", "oldfieldname": "is_opening", "oldfieldtype": "Select", "options": "No\nYes", @@ -762,6 +762,7 @@ "search_index": 0 }, { + "description": "Actual Invoice Date", "doctype": "DocField", "fieldname": "aging_date", "fieldtype": "Date", @@ -1193,18 +1194,50 @@ "no_copy": 1, "print_hide": 1 }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "doctype": "DocPerm", + "permlevel": 1, + "role": "Accounts Manager", + "submit": 0, + "write": 0 + }, { "amend": 1, "cancel": 1, "create": 1, "doctype": "DocPerm", + "permlevel": 0, + "role": "Accounts Manager", + "submit": 1, + "write": 1 + }, + { + "amend": 1, + "cancel": 1, + "create": 1, + "doctype": "DocPerm", + "permlevel": 0, "role": "Accounts User", "submit": 1, "write": 1 }, + { + "amend": 0, + "cancel": 0, + "create": 0, + "doctype": "DocPerm", + "permlevel": 1, + "role": "Accounts User", + "submit": 0, + "write": 0 + }, { "doctype": "DocPerm", "match": "customer", + "permlevel": 0, "role": "Customer" } ] \ No newline at end of file From c3fde66f2c7e0063be174fe6c9ecede2fa3e5374 Mon Sep 17 00:00:00 2001 From: Akhilesh Darjee Date: Fri, 22 Mar 2013 18:05:22 +0530 Subject: [PATCH 7/8] contact us page problem fixed. --- website/doctype/contact_us_settings/contact_us_settings.py | 4 ++-- website/templates/pages/contact.html | 2 +- website/utils.py | 1 + 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/website/doctype/contact_us_settings/contact_us_settings.py b/website/doctype/contact_us_settings/contact_us_settings.py index 740b651a17..8716e60724 100644 --- a/website/doctype/contact_us_settings/contact_us_settings.py +++ b/website/doctype/contact_us_settings/contact_us_settings.py @@ -10,9 +10,9 @@ class DocType: def onload(self): """load address""" if self.doc.query_options: - self.doc.query_options = filter(None, self.doc.query_options.replace(",", "\n").split()) + self.query_options = filter(None, self.doc.query_options.replace(",", "\n").split()) else: - self.doc.query_options = ["Sales", "Support", "General"] + self.query_options = ["Sales", "Support", "General"] if self.doc.address: self.address = webnotes.bean("Address", self.doc.address).doc diff --git a/website/templates/pages/contact.html b/website/templates/pages/contact.html index 204b6df317..79bcb04407 100644 --- a/website/templates/pages/contact.html +++ b/website/templates/pages/contact.html @@ -19,7 +19,7 @@

diff --git a/website/utils.py b/website/utils.py index 443bde0b66..97cec72dca 100644 --- a/website/utils.py +++ b/website/utils.py @@ -166,6 +166,7 @@ def prepare_args(page_name): args.update(webnotes.get_method(target)()) else: args.obj = webnotes.bean(page_settings_map[page_name]).obj + else: args = get_doc_fields(page_name) From ac61ec3a5b3643f85a7e2195d377d07400988026 Mon Sep 17 00:00:00 2001 From: Akhilesh Darjee Date: Fri, 22 Mar 2013 18:20:11 +0530 Subject: [PATCH 8/8] Permissions problem in invoice fixed. --- .../purchase_invoice/purchase_invoice.txt | 54 +------------------ .../doctype/sales_invoice/sales_invoice.txt | 37 ++----------- 2 files changed, 5 insertions(+), 86 deletions(-) diff --git a/accounts/doctype/purchase_invoice/purchase_invoice.txt b/accounts/doctype/purchase_invoice/purchase_invoice.txt index 90af60f5f2..4228264f68 100755 --- a/accounts/doctype/purchase_invoice/purchase_invoice.txt +++ b/accounts/doctype/purchase_invoice/purchase_invoice.txt @@ -2,7 +2,7 @@ { "creation": "2013-03-07 13:16:13", "docstatus": 0, - "modified": "2013-03-21 12:16:35", + "modified": "2013-03-22 18:17:14", "modified_by": "Administrator", "owner": "Administrator" }, @@ -30,6 +30,7 @@ "parent": "Purchase Invoice", "parentfield": "permissions", "parenttype": "DocType", + "permlevel": 0, "read": 1, "report": 1 }, @@ -765,61 +766,11 @@ "no_copy": 1, "print_hide": 1 }, - { - "amend": 0, - "cancel": 0, - "create": 0, - "doctype": "DocPerm", - "permlevel": 1, - "role": "Accounts Manager", - "submit": 0, - "write": 0 - }, { "amend": 1, "cancel": 1, "create": 1, "doctype": "DocPerm", - "permlevel": 0, - "role": "Accounts Manager", - "submit": 1, - "write": 1 - }, - { - "amend": 0, - "cancel": 0, - "create": 0, - "doctype": "DocPerm", - "permlevel": 1, - "role": "Accounts User", - "submit": 0, - "write": 0 - }, - { - "amend": 0, - "cancel": 0, - "create": 0, - "doctype": "DocPerm", - "permlevel": 1, - "role": "Purchase User", - "submit": 0 - }, - { - "amend": 0, - "cancel": 0, - "create": 1, - "doctype": "DocPerm", - "permlevel": 0, - "role": "Purchase User", - "submit": 0, - "write": 1 - }, - { - "amend": 1, - "cancel": 1, - "create": 1, - "doctype": "DocPerm", - "permlevel": 0, "role": "Accounts User", "submit": 1, "write": 1 @@ -827,7 +778,6 @@ { "doctype": "DocPerm", "match": "supplier", - "permlevel": 0, "role": "Supplier" } ] \ No newline at end of file diff --git a/accounts/doctype/sales_invoice/sales_invoice.txt b/accounts/doctype/sales_invoice/sales_invoice.txt index fe05d84a79..a17d09148b 100644 --- a/accounts/doctype/sales_invoice/sales_invoice.txt +++ b/accounts/doctype/sales_invoice/sales_invoice.txt @@ -2,7 +2,7 @@ { "creation": "2013-03-19 17:03:01", "docstatus": 0, - "modified": "2013-03-21 12:14:57", + "modified": "2013-03-22 18:16:45", "modified_by": "Administrator", "owner": "Administrator" }, @@ -30,6 +30,7 @@ "parent": "Sales Invoice", "parentfield": "permissions", "parenttype": "DocType", + "permlevel": 0, "read": 1, "report": 1 }, @@ -1094,7 +1095,7 @@ "description": "The day of the month on which auto invoice will be generated e.g. 05, 28 etc ", "doctype": "DocField", "fieldname": "repeat_on_day_of_month", - "fieldtype": "Int", + "fieldtype": "Data", "label": "Repeat on Day of Month", "no_copy": 1, "print_hide": 1 @@ -1194,50 +1195,18 @@ "no_copy": 1, "print_hide": 1 }, - { - "amend": 0, - "cancel": 0, - "create": 0, - "doctype": "DocPerm", - "permlevel": 1, - "role": "Accounts Manager", - "submit": 0, - "write": 0 - }, { "amend": 1, "cancel": 1, "create": 1, "doctype": "DocPerm", - "permlevel": 0, - "role": "Accounts Manager", - "submit": 1, - "write": 1 - }, - { - "amend": 1, - "cancel": 1, - "create": 1, - "doctype": "DocPerm", - "permlevel": 0, "role": "Accounts User", "submit": 1, "write": 1 }, - { - "amend": 0, - "cancel": 0, - "create": 0, - "doctype": "DocPerm", - "permlevel": 1, - "role": "Accounts User", - "submit": 0, - "write": 0 - }, { "doctype": "DocPerm", "match": "customer", - "permlevel": 0, "role": "Customer" } ] \ No newline at end of file