diff --git a/frappe/core/doctype/comment/test_comment.py b/frappe/core/doctype/comment/test_comment.py index 2f6583b7ba..2adc5eb899 100644 --- a/frappe/core/doctype/comment/test_comment.py +++ b/frappe/core/doctype/comment/test_comment.py @@ -48,10 +48,10 @@ class TestComment(unittest.TestCase): add_comment('pleez vizits my site http://mysite.com', 'test@test.com', 'bad commentor', 'Blog Post', test_blog.name, test_blog.route) - self.assertEqual(frappe.get_all('Comment', fields = ['*'], filters = dict( + self.assertEqual(len(frappe.get_all('Comment', fields = ['*'], filters = dict( reference_doctype = test_blog.doctype, reference_name = test_blog.name - ))[0].published, 0) + ))), 0) diff --git a/frappe/model/base_document.py b/frappe/model/base_document.py index cea939abdc..ae4bc07b1a 100644 --- a/frappe/model/base_document.py +++ b/frappe/model/base_document.py @@ -310,7 +310,7 @@ class BaseDocument(object): self.created_by = self.modified_by = frappe.session.user # if doctype is "DocType", don't insert null values as we don't know who is valid yet - d = self.get_valid_dict(convert_dates_to_str=True, ignore_nulls=self.doctype in ('DocType', 'DocField', 'DocPerm')) + d = self.get_valid_dict(convert_dates_to_str=True, ignore_nulls = self.doctype in ('DocType', 'DocField', 'DocPerm')) columns = list(d) try: @@ -345,7 +345,7 @@ class BaseDocument(object): self.db_insert() return - d = self.get_valid_dict(convert_dates_to_str=True) + d = self.get_valid_dict(convert_dates_to_str=True, ignore_nulls = self.doctype in ('DocType', 'DocField', 'DocPerm')) # don't update name, as case might've been changed name = d['name'] diff --git a/frappe/templates/includes/comments/comments.py b/frappe/templates/includes/comments/comments.py index 52abb60b4d..8874f59d86 100644 --- a/frappe/templates/includes/comments/comments.py +++ b/frappe/templates/includes/comments/comments.py @@ -16,16 +16,17 @@ def add_comment(comment, comment_email, comment_by, reference_doctype, reference frappe.msgprint(_('Comment Should be atleast 10 characters')) return '' + blacklist = ['http://', 'https://', '@gmail.com'] + + if any([b in comment.content for b in blacklist]): + frappe.msgprint(_('Comments cannot have links or email addresses')) + return '' + comment = doc.add_comment( text = comment, comment_email = comment_email, - comment_by = comment_by) - - blacklist = ['http://', 'https://', '@gmail.com'] - - if not any([b in comment.content for b in blacklist]): - # probably not spam! - comment.db_set('published', 1) + comment_by = comment_by, + published = 1) # since comments are embedded in the page, clear the web cache if route: