From 5cd22894b090f29b1c435ce5207bf34e5fa744a3 Mon Sep 17 00:00:00 2001
From: WebNotes
Date: Mon, 11 Mar 2013 10:58:42 +0530
Subject: [PATCH 1/4] it's done
---
.../doctype/backup_manager/backup_dropbox.py | 51 +++++++++----------
.../doctype/backup_manager/backup_manager.py | 5 +-
2 files changed, 29 insertions(+), 27 deletions(-)
diff --git a/setup/doctype/backup_manager/backup_dropbox.py b/setup/doctype/backup_manager/backup_dropbox.py
index 3b0857fdd9..e8eed3be19 100644
--- a/setup/doctype/backup_manager/backup_dropbox.py
+++ b/setup/doctype/backup_manager/backup_dropbox.py
@@ -1,6 +1,7 @@
import os
import webnotes
-from webnotes.utils import get_request_site_address
+from webnotes.utils import get_request_site_address, get_base_path
+from webnotes import _
@webnotes.whitelist()
def get_dropbox_authorize_url():
@@ -67,22 +68,23 @@ def backup_to_dropbox():
backup = new_backup()
filename = backup.backup_path_db
upload_file_to_dropbox(filename, "database", dropbox_client)
-
- # upload files
- response = dropbox_client.metadata("files")
-
+ path1 = os.path.join(get_base_path(), "public", "backups")
+ response = dropbox_client.metadata('/database')
- # add missing files
- for filename in os.listdir(os.path.join("public", "files")):
+ #add missing files
+ found = False
+ for filename in os.listdir(path1):
found = False
+ pth=path1+'/'+filename
+ size=os.stat(pth).st_size
for file_metadata in response["contents"]:
if filename==os.path.basename(file_metadata["path"]):
- if os.stat(os.path.join("public", "files", filename)).st_size==file_metadata["bytes"]:
+ if size==file_metadata["bytes"]:
found=True
-
if not found:
- upload_file_to_dropbox(os.path.join("public", "files", filename), "files", dropbox_client)
-
+ upload_file_to_dropbox(pth, "database", dropbox_client)
+ if found:
+ webnotes.msgprint("no backup required everything is upto date")
def get_dropbox_session():
from dropbox import session
@@ -96,20 +98,17 @@ def get_dropbox_session():
return sess
def upload_file_to_dropbox(filename, folder, dropbox_client):
- if __name__=="__main__":
- print "Uploading " + filename
- size = os.stat(filename).st_size
- f = open(filename,'r')
-
- if size > 4194304:
- uploader = dropbox_client.get_chunked_uploader(f, size)
- while uploader.offset < size:
- try:
- uploader.upload_chunked()
- except rest.ErrorResponse, e:
- pass
- else:
- response = dropbox_client.put_file(folder + "/" + os.path.basename(filename), f, overwrite=True)
+ size = os.stat(filename).st_size
+ f = open(filename,'r')
+ if size > 4194304:
+ uploader = dropbox_client.get_chunked_uploader(f, size)
+ while uploader.offset < size:
+ try:
+ uploader.upload_chunked()
+ except rest.ErrorResponse, e:
+ pass
+ else:
+ response = dropbox_client.put_file(folder + "/" + os.path.basename(filename), f, overwrite=True)
if __name__=="__main__":
- backup_to_dropbox()
\ No newline at end of file
+ backup_to_dropbox()
\ No newline at end of file
diff --git a/setup/doctype/backup_manager/backup_manager.py b/setup/doctype/backup_manager/backup_manager.py
index 48d48e817c..2b9cfca85a 100644
--- a/setup/doctype/backup_manager/backup_manager.py
+++ b/setup/doctype/backup_manager/backup_manager.py
@@ -3,6 +3,7 @@
from __future__ import unicode_literals
import webnotes
from webnotes import _
+from webnotes.utils import getTraceback
class DocType:
def __init__(self, d, dl):
@@ -25,6 +26,7 @@ def take_backups():
backup_to_dropbox()
send_email(True, "Dropbox")
except Exception, e:
+ webnotes.errprint(e)
send_email(False, "Dropbox", e)
def send_email(success, service_name, error_status=None):
@@ -40,7 +42,8 @@ def send_email(success, service_name, error_status=None):
failed.
Error message: %s
Please contact your system manager for more information.
- """ % (service_name, error_status)
+ Detailed Error Trace: %s
""" % \
+ (service_name, error_status, getTraceback().replace("\n", "
"))
# email system managers
from webnotes.utils.email_lib import sendmail
From 6f7531813411af3dfda736f06585dff2ef00d20c Mon Sep 17 00:00:00 2001
From: Saurabh
Date: Wed, 20 Mar 2013 12:55:28 +0530
Subject: [PATCH 2/4] no -ve balance accepted in sales and purchase invoice
---
controllers/accounts_controller.py | 4 ++++
controllers/buying_controller.py | 5 +++--
controllers/selling_controller.py | 1 +
3 files changed, 8 insertions(+), 2 deletions(-)
diff --git a/controllers/accounts_controller.py b/controllers/accounts_controller.py
index 576921a530..cd40d61956 100644
--- a/controllers/accounts_controller.py
+++ b/controllers/accounts_controller.py
@@ -21,6 +21,10 @@ from webnotes.utils import flt
from utilities.transaction_base import TransactionBase
class AccountsController(TransactionBase):
+ def validate(self):
+ if self.meta.get_field("grand_total"):
+ self.validate_value("grand_total", ">=", 0)
+
def get_gl_dict(self, args, cancel=None):
"""this method populates the common properties of a gl entry record"""
if cancel is None:
diff --git a/controllers/buying_controller.py b/controllers/buying_controller.py
index 2f3128c98c..0509de0074 100644
--- a/controllers/buying_controller.py
+++ b/controllers/buying_controller.py
@@ -27,7 +27,8 @@ from webnotes.model.utils import round_floats_in_doc
from controllers.accounts_controller import AccountsController
class BuyingController(AccountsController):
- def validate(self):
+ def validate(self):
+ super(BuyingController, self).validate()
if self.meta.get_field("currency"):
self.company_currency = get_company_currency(self.doc.company)
self.validate_conversion_rate("currency", "conversion_rate")
@@ -37,7 +38,7 @@ class BuyingController(AccountsController):
# IMPORTANT: enable this only when client side code is similar to this one
# self.calculate_taxes_and_totals()
-
+
# set total in words
self.set_total_in_words()
diff --git a/controllers/selling_controller.py b/controllers/selling_controller.py
index 40606c3198..9db8f4acad 100644
--- a/controllers/selling_controller.py
+++ b/controllers/selling_controller.py
@@ -23,6 +23,7 @@ from controllers.accounts_controller import AccountsController
class SellingController(AccountsController):
def validate(self):
+ super(SellingController, self).validate()
self.set_total_in_words()
def set_total_in_words(self):
From 9c02b81cdd02bb32b47b45f7d6821b9ef1dc930f Mon Sep 17 00:00:00 2001
From: Saurabh
Date: Wed, 20 Mar 2013 13:51:43 +0530
Subject: [PATCH 3/4] merged backup dropbox file
---
setup/doctype/backup_manager/backup_dropbox.py | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/setup/doctype/backup_manager/backup_dropbox.py b/setup/doctype/backup_manager/backup_dropbox.py
index b66880305e..2c7fda6ca9 100644
--- a/setup/doctype/backup_manager/backup_dropbox.py
+++ b/setup/doctype/backup_manager/backup_dropbox.py
@@ -86,8 +86,6 @@ def backup_to_dropbox():
filename = os.path.join(get_base_path(), "public", "files")
for filename in os.listdir(filename):
found = False
- pth=path1+'/'+filename
- size=os.stat(pth).st_size
for file_metadata in response["contents"]:
if filename==os.path.basename(file_metadata["path"]):
if os.stat(filename).st_size==file_metadata["bytes"]:
@@ -121,4 +119,4 @@ def upload_file_to_dropbox(filename, folder, dropbox_client):
response = dropbox_client.put_file(folder + "/" + os.path.basename(filename), f, overwrite=True)
if __name__=="__main__":
- backup_to_dropbox()
+ backup_to_dropbox()
\ No newline at end of file
From f848b8bafc07be0d5123014fff3bc8251f50010c Mon Sep 17 00:00:00 2001
From: Saurabh
Date: Wed, 20 Mar 2013 13:55:08 +0530
Subject: [PATCH 4/4] merged backup manager python file
---
setup/doctype/backup_manager/backup_manager.py | 6 ++----
1 file changed, 2 insertions(+), 4 deletions(-)
diff --git a/setup/doctype/backup_manager/backup_manager.py b/setup/doctype/backup_manager/backup_manager.py
index 69de823df1..213aa85500 100644
--- a/setup/doctype/backup_manager/backup_manager.py
+++ b/setup/doctype/backup_manager/backup_manager.py
@@ -30,7 +30,6 @@ def take_backups_dropbox():
backup_to_dropbox()
send_email(True, "Dropbox")
except Exception, e:
- webnotes.errprint(e)
send_email(False, "Dropbox", e)
#backup to gdrive
@@ -56,10 +55,9 @@ def send_email(success, service_name, error_status=None):
failed.
Error message: %s
Please contact your system manager for more information.
- Detailed Error Trace: %s
""" % \
- (service_name, error_status, getTraceback().replace("\n", "
"))
+ """ % (service_name, error_status)
# email system managers
from webnotes.utils.email_lib import sendmail
sendmail(webnotes.conn.get_value("Backup Manager", None, "send_notifications_to").split(","),
- subject=subject, msg=message)
+ subject=subject, msg=message)
\ No newline at end of file