@@ -1,2 +1,2 @@ | |||||
from __future__ import unicode_literals | from __future__ import unicode_literals | ||||
__version__ = "5.0.21" | |||||
__version__ = "5.0.22" |
@@ -14,7 +14,7 @@ sender_field = "sender" | |||||
class ToDo(Document): | class ToDo(Document): | ||||
def validate(self): | def validate(self): | ||||
if self.is_new(): | 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: | else: | ||||
cur_status = frappe.db.get_value("ToDo", self.name, "status") | cur_status = frappe.db.get_value("ToDo", self.name, "status") | ||||
if cur_status != self.status: | if cur_status != self.status: | ||||
@@ -112,7 +112,8 @@ def check_bulk_limit(recipients): | |||||
# No limit for own email settings | # No limit for own email settings | ||||
smtp_server = SMTPServer() | 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: | "from_site_config", False) or frappe.flags.in_test: | ||||
monthly_bulk_mail_limit = frappe.conf.get('monthly_bulk_mail_limit') or 500 | monthly_bulk_mail_limit = frappe.conf.get('monthly_bulk_mail_limit') or 500 | ||||
@@ -148,7 +148,14 @@ class POP3Server: | |||||
return "-ERR Exceeded the login limit" in strip(cstr(e.message)) | return "-ERR Exceeded the login limit" in strip(cstr(e.message)) | ||||
def is_temporary_system_problem(self, e): | 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): | def validate_pop(self, pop_meta): | ||||
# throttle based on email size | # throttle based on email size | ||||
@@ -4,7 +4,7 @@ app_title = "Frappe Framework" | |||||
app_publisher = "Frappe Technologies Pvt. Ltd." | app_publisher = "Frappe Technologies Pvt. Ltd." | ||||
app_description = "Full Stack Web Application Framework in Python" | app_description = "Full Stack Web Application Framework in Python" | ||||
app_icon = "octicon octicon-circuit-board" | app_icon = "octicon octicon-circuit-board" | ||||
app_version = "5.0.21" | |||||
app_version = "5.0.22" | |||||
app_color = "orange" | app_color = "orange" | ||||
app_email = "support@frappe.io" | app_email = "support@frappe.io" | ||||
@@ -85,6 +85,7 @@ class BackupGenerator: | |||||
files_path = frappe.get_site_path("public", "files") | files_path = frappe.get_site_path("public", "files") | ||||
cmd_string = """tar -cf %s %s""" % (self.backup_path_files, files_path) | cmd_string = """tar -cf %s %s""" % (self.backup_path_files, files_path) | ||||
err, out = frappe.utils.execute_in_shell(cmd_string) | err, out = frappe.utils.execute_in_shell(cmd_string) | ||||
print 'Backed up files', os.path.abspath(self.backup_path_files) | |||||
def take_dump(self): | def take_dump(self): | ||||
import frappe.utils | import frappe.utils | ||||
@@ -94,6 +95,7 @@ class BackupGenerator: | |||||
for item in self.__dict__.copy().items()) | 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 | 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) | err, out = frappe.utils.execute_in_shell(cmd_string) | ||||
print 'Database backed up', os.path.abspath(self.backup_path_db) | |||||
def send_email(self): | def send_email(self): | ||||
""" | """ | ||||
@@ -1,6 +1,6 @@ | |||||
from setuptools import setup, find_packages | from setuptools import setup, find_packages | ||||
version = "5.0.21" | |||||
version = "5.0.22" | |||||
with open("requirements.txt", "r") as f: | with open("requirements.txt", "r") as f: | ||||
install_requires = f.readlines() | install_requires = f.readlines() | ||||