diff --git a/frappe/__version__.py b/frappe/__version__.py index 0b66a2e203..b37c4e5e1a 100644 --- a/frappe/__version__.py +++ b/frappe/__version__.py @@ -1,2 +1,2 @@ from __future__ import unicode_literals -__version__ = "5.0.21" +__version__ = "5.0.22" diff --git a/frappe/desk/doctype/todo/todo.py b/frappe/desk/doctype/todo/todo.py index 1a62f3b851..5bc1e797cd 100644 --- a/frappe/desk/doctype/todo/todo.py +++ b/frappe/desk/doctype/todo/todo.py @@ -14,7 +14,7 @@ sender_field = "sender" class ToDo(Document): def validate(self): if self.is_new(): - self.add_assign_comment(frappe._("Assigned to {0}").format(get_fullname(self.owner)), "Assigned") + self.add_assign_comment(frappe._("Assigned to {0}: {1}").format(get_fullname(self.owner), self.description), "Assigned") else: cur_status = frappe.db.get_value("ToDo", self.name, "status") if cur_status != self.status: diff --git a/frappe/email/bulk.py b/frappe/email/bulk.py index 1ee93f754b..280e2d6d60 100644 --- a/frappe/email/bulk.py +++ b/frappe/email/bulk.py @@ -112,7 +112,8 @@ def check_bulk_limit(recipients): # No limit for own email settings smtp_server = SMTPServer() - if smtp_server.email_account and not getattr(smtp_server.email_account, + + if smtp_server.email_account and getattr(smtp_server.email_account, "from_site_config", False) or frappe.flags.in_test: monthly_bulk_mail_limit = frappe.conf.get('monthly_bulk_mail_limit') or 500 diff --git a/frappe/email/receive.py b/frappe/email/receive.py index 36cc2287fb..5078cfeea9 100644 --- a/frappe/email/receive.py +++ b/frappe/email/receive.py @@ -148,7 +148,14 @@ class POP3Server: return "-ERR Exceeded the login limit" in strip(cstr(e.message)) def is_temporary_system_problem(self, e): - return "-ERR [SYS/TEMP] Temporary system problem. Please try again later." in strip(cstr(e.message)) + messages = ( + "-ERR [SYS/TEMP] Temporary system problem. Please try again later.", + "Connection timed out", + ) + for message in messages: + if message in strip(cstr(e.message)): + return True + return False def validate_pop(self, pop_meta): # throttle based on email size diff --git a/frappe/hooks.py b/frappe/hooks.py index 19f9710db9..09cf4feb39 100644 --- a/frappe/hooks.py +++ b/frappe/hooks.py @@ -4,7 +4,7 @@ app_title = "Frappe Framework" app_publisher = "Frappe Technologies Pvt. Ltd." app_description = "Full Stack Web Application Framework in Python" app_icon = "octicon octicon-circuit-board" -app_version = "5.0.21" +app_version = "5.0.22" app_color = "orange" app_email = "support@frappe.io" diff --git a/frappe/utils/backups.py b/frappe/utils/backups.py index 6b0b4e183f..1f41f2b3e2 100644 --- a/frappe/utils/backups.py +++ b/frappe/utils/backups.py @@ -85,6 +85,7 @@ class BackupGenerator: files_path = frappe.get_site_path("public", "files") cmd_string = """tar -cf %s %s""" % (self.backup_path_files, files_path) err, out = frappe.utils.execute_in_shell(cmd_string) + print 'Backed up files', os.path.abspath(self.backup_path_files) def take_dump(self): import frappe.utils @@ -94,6 +95,7 @@ class BackupGenerator: for item in self.__dict__.copy().items()) cmd_string = """mysqldump --single-transaction --quick --lock-tables=false -u %(user)s -p%(password)s %(db_name)s -h %(db_host)s | gzip -c > %(backup_path_db)s""" % args err, out = frappe.utils.execute_in_shell(cmd_string) + print 'Database backed up', os.path.abspath(self.backup_path_db) def send_email(self): """ diff --git a/setup.py b/setup.py index 31fa07471c..c9ac4e3415 100644 --- a/setup.py +++ b/setup.py @@ -1,6 +1,6 @@ from setuptools import setup, find_packages -version = "5.0.21" +version = "5.0.22" with open("requirements.txt", "r") as f: install_requires = f.readlines()