summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xpatchwork/bin/parsemail.py16
1 files changed, 10 insertions, 6 deletions
diff --git a/patchwork/bin/parsemail.py b/patchwork/bin/parsemail.py
index 97189a3..f2b10bd 100755
--- a/patchwork/bin/parsemail.py
+++ b/patchwork/bin/parsemail.py
@@ -220,15 +220,20 @@ def find_content(project, mail):
date = mail_date(mail), headers = mail_headers(mail))
if commentbuf:
+ # If this is a new patch, we defer setting comment.patch until
+ # patch has been saved by the caller
if patch:
- cpatch = patch
+ comment = Comment(date = mail_date(mail),
+ content = clean_content(commentbuf),
+ headers = mail_headers(mail))
+
else:
cpatch = find_patch_for_comment(project, mail)
if not cpatch:
return (None, None)
- comment = Comment(patch = cpatch, date = mail_date(mail),
- content = clean_content(commentbuf),
- headers = mail_headers(mail))
+ comment = Comment(patch = cpatch, date = mail_date(mail),
+ content = clean_content(commentbuf),
+ headers = mail_headers(mail))
return (patch, comment)
@@ -389,8 +394,7 @@ def parse_mail(mail):
if comment:
if save_required:
author.save()
- # looks like the original constructor for Comment takes the pk
- # when the Comment is created. reset it here.
+ # we defer this assignment until we know that we have a saved patch
if patch:
comment.patch = patch
comment.submitter = author