Skip to content

Commit e0479d8

Browse files
committed
Changed the call signature of docevent_from_submission() to take an optional Person object, rather than person name. Added a type hint for the signature.
- Legacy-Id: 16764
1 parent a1db2d5 commit e0479d8

2 files changed

Lines changed: 11 additions & 7 deletions

File tree

ietf/submit/utils.py

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,12 @@
1010
import re
1111
import six # pyflakes:ignore
1212
import xml2rfc
13+
if six.PY3:
14+
from typing import Callable, Optional
1315

1416
from django.conf import settings
1517
from django.core.validators import validate_email, ValidationError
18+
from django.http import HttpRequest
1619
from django.utils.module_loading import import_string
1720

1821
import debug # pyflakes:ignore
@@ -161,23 +164,23 @@ def create_submission_event(request, submission, desc):
161164

162165
SubmissionEvent.objects.create(submission=submission, by=by, desc=desc)
163166

164-
def docevent_from_submission(request, submission, desc, who=None):
165-
system = Person.objects.get(name="(System)")
167+
def docevent_from_submission(request, submission, desc, who=None): # type: (HttpRequest, Submission, str, Optional[Person]) -> Optional[DocEvent]
168+
log.assertion('who is None or isinstance(who, Person)')
166169

167170
try:
168171
draft = Document.objects.get(name=submission.name)
169172
except Document.DoesNotExist:
170173
# Assume this is revision 00 - we'll do this later
171-
return
174+
return None
172175

173176
if who:
174-
by = Person.objects.get(name=who)
177+
by = who
175178
else:
176179
submitter_parsed = submission.submitter_parsed()
177180
if submitter_parsed["name"] and submitter_parsed["email"]:
178181
by, _ = ensure_person_email_info_exists(submitter_parsed["name"], submitter_parsed["email"], submission.name)
179182
else:
180-
by = system
183+
by = Person.objects.get(name="(System)")
181184

182185
e = SubmissionDocEvent.objects.create(
183186
doc=draft,

ietf/submit/views.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
from ietf.ietfauth.utils import has_role, role_required
2727
from ietf.mailtrigger.utils import gather_address_lists
2828
from ietf.message.models import Message, MessageAttachment
29+
from ietf.person.models import Person
2930
from ietf.submit.forms import ( SubmissionManualUploadForm, SubmissionAutoUploadForm, AuthorForm,
3031
SubmitterForm, EditSubmissionForm, PreapprovalForm, ReplacesForm, SubmissionEmailForm, MessageModelForm )
3132
from ietf.submit.mail import ( send_full_url, send_manual_post_request, add_submission_email, get_reply_to )
@@ -142,7 +143,7 @@ def err(code, text):
142143
sent_to, desc, docDesc = send_confirmation_emails(request, submission, requires_group_approval, requires_prev_authors_approval)
143144
msg = "Set submitter to \"%s\" and %s" % (submission.submitter, desc)
144145
create_submission_event(request, submission, msg)
145-
docevent_from_submission(request, submission, docDesc, who="(System)")
146+
docevent_from_submission(request, submission, docDesc, who=Person.objects.get(name="(System)"))
146147

147148
return HttpResponse(
148149
"Upload of %s OK, confirmation requests sent to:\n %s" % (submission.name, ',\n '.join(sent_to)),
@@ -298,7 +299,7 @@ def submission_status(request, submission_id, access_token=None):
298299
", ".join(prettify_std_name(r.name) for r in replaces) if replaces else "(none)",
299300
desc)
300301
create_submission_event(request, submission, msg)
301-
docevent_from_submission(request, submission, docDesc, who="(System)")
302+
docevent_from_submission(request, submission, docDesc, who=Person.objects.get(name="(System)"))
302303

303304
if access_token:
304305
return redirect("ietf.submit.views.submission_status", submission_id=submission.pk, access_token=access_token)

0 commit comments

Comments
 (0)