Skip to content

Commit 8153a1c

Browse files
committed
Patch up to pass request object to send mail in the instances where
it's possible (i.e. when not run in cron) in preparation for better mail test handling - Legacy-Id: 3711
1 parent 1a1476f commit 8153a1c

10 files changed

Lines changed: 50 additions & 41 deletions

File tree

ietf/idrfc/views_edit.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -366,7 +366,7 @@ def diff(obj, attr, name):
366366
doc.idinternal.status_date = date.today()
367367

368368

369-
update_stream(doc,
369+
update_stream(request, doc,
370370
"Setting stream while adding document to the tracker",
371371
person=request.user.get_profile().person(),
372372
to_stream = r['stream']

ietf/ietfauth/forms.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ class RegistrationForm(forms.Form):
2121
expire = 3
2222

2323
def save(self, *args, **kwargs):
24+
# why is there a save when it doesn't save?
2425
self.send_email()
2526
return True
2627

@@ -39,7 +40,7 @@ def send_email(self):
3940
'username': to_email,
4041
'expire': settings.DAYS_TO_EXPIRE_REGISTRATION_LINK,
4142
}
42-
send_mail(None, to_email, from_email, subject, 'registration/creation_email.txt', context)
43+
send_mail(self.request, to_email, from_email, subject, 'registration/creation_email.txt', context)
4344

4445
def clean_email(self):
4546
email = self.cleaned_data.get('email', '')
@@ -70,7 +71,7 @@ def send_email(self):
7071
'username': to_email,
7172
'expire': settings.DAYS_TO_EXPIRE_REGISTRATION_LINK,
7273
}
73-
send_mail(None, to_email, from_email, subject, 'registration/password_reset_email.txt', context)
74+
send_mail(self.request, to_email, from_email, subject, 'registration/password_reset_email.txt', context)
7475

7576

7677
class PasswordForm(forms.Form):
@@ -122,4 +123,4 @@ def save(self):
122123
stdout, stderr = p.communicate()
123124
debug.show('stdout')
124125
debug.show('stderr')
125-
return p.returncode
126+
return p.returncode

ietf/ietfauth/views.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,7 @@ def create_account(request):
107107
if request.method == 'POST':
108108
form = RegistrationForm(request.POST)
109109
if form.is_valid():
110+
form.request = request
110111
form.save()
111112
success = True
112113
else:
@@ -143,6 +144,7 @@ def password_reset_view(request):
143144
if request.method == 'POST':
144145
form = RecoverPasswordForm(request.POST)
145146
if form.is_valid():
147+
form.request = request
146148
form.save()
147149
success = True
148150
else:
@@ -178,4 +180,4 @@ def ajax_check_username(request):
178180
if User.objects.filter(username=username).count():
179181
error = _('This email is already in use')
180182
return HttpResponse(json.dumps({'error': error}), mimetype='text/plain')
181-
183+

ietf/ietfworkflows/forms.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -130,7 +130,7 @@ def save(self):
130130
to_state = State.objects.get(slug="c-adopt", type="draft-stream-%s" % self.draft.stream_id)
131131
else:
132132
to_state = get_state_by_name(CALL_FOR_ADOPTION)
133-
update_state(self.draft,
133+
update_state(self.request, self.draft,
134134
comment=comment,
135135
person=self.person,
136136
to_state=to_state,
@@ -252,7 +252,7 @@ def save_tags(self):
252252
pass
253253
if not set_tags and not reset_tags:
254254
return
255-
update_tags(self.draft,
255+
update_tags(self.request, self.draft,
256256
comment=comment,
257257
person=self.person,
258258
set_tags=set_tags,
@@ -270,7 +270,7 @@ def save_state(self):
270270
now = datetime.date.today()
271271
estimated_date = now + datetime.timedelta(weeks=weeks)
272272

273-
update_state(self.draft,
273+
update_state(self.request, self.draft,
274274
comment=comment,
275275
person=self.person,
276276
to_state=state,
@@ -313,7 +313,7 @@ def save(self):
313313
comment = self.cleaned_data.get('comment').strip()
314314
to_stream = self.cleaned_data.get('stream')
315315

316-
update_stream(self.draft,
316+
update_stream(self.request, self.draft,
317317
comment=comment,
318318
person=self.person,
319319
to_stream=to_stream)

ietf/ietfworkflows/utils.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -257,7 +257,7 @@ def get_notification_receivers(doc, extra_notify):
257257

258258
return res
259259

260-
def update_tags(obj, comment, person, set_tags=[], reset_tags=[], extra_notify=[]):
260+
def update_tags(request, obj, comment, person, set_tags=[], reset_tags=[], extra_notify=[]):
261261
if settings.USE_DB_REDESIGN_PROXY_CLASSES:
262262
doc = Document.objects.get(pk=obj.pk)
263263
save_document_in_history(doc)
@@ -277,7 +277,7 @@ def update_tags(obj, comment, person, set_tags=[], reset_tags=[], extra_notify=[
277277
e.save()
278278

279279
receivers = get_notification_receivers(doc, extra_notify)
280-
send_mail(None, receivers, settings.DEFAULT_FROM_EMAIL,
280+
send_mail(request, receivers, settings.DEFAULT_FROM_EMAIL,
281281
u"Annotations tags changed for draft %s" % doc.name,
282282
'ietfworkflows/annotation_tags_updated_mail.txt',
283283
dict(doc=doc,
@@ -316,7 +316,7 @@ def update_tags(obj, comment, person, set_tags=[], reset_tags=[], extra_notify=[
316316
notify_tag_entry(entry, extra_notify)
317317

318318

319-
def update_state(doc, comment, person, to_state, estimated_date=None, extra_notify=[]):
319+
def update_state(request, doc, comment, person, to_state, estimated_date=None, extra_notify=[]):
320320
if settings.USE_DB_REDESIGN_PROXY_CLASSES:
321321
doc = Document.objects.get(pk=doc.pk)
322322
save_document_in_history(doc)
@@ -350,7 +350,7 @@ def update_state(doc, comment, person, to_state, estimated_date=None, extra_noti
350350
reminder.save()
351351

352352
receivers = get_notification_receivers(doc, extra_notify)
353-
send_mail(None, receivers, settings.DEFAULT_FROM_EMAIL,
353+
send_mail(request, receivers, settings.DEFAULT_FROM_EMAIL,
354354
u"State changed for draft %s" % doc.name,
355355
'ietfworkflows/state_updated_mail.txt',
356356
dict(doc=doc,
@@ -378,7 +378,7 @@ def update_state(doc, comment, person, to_state, estimated_date=None, extra_noti
378378
notify_state_entry(entry, extra_notify)
379379

380380

381-
def update_stream(doc, comment, person, to_stream, extra_notify=[]):
381+
def update_stream(request, doc, comment, person, to_stream, extra_notify=[]):
382382
if settings.USE_DB_REDESIGN_PROXY_CLASSES:
383383
doc = Document.objects.get(pk=doc.pk)
384384
save_document_in_history(doc)
@@ -393,7 +393,7 @@ def update_stream(doc, comment, person, to_stream, extra_notify=[]):
393393
e.save()
394394

395395
receivers = get_notification_receivers(doc, extra_notify)
396-
send_mail(None, receivers, settings.DEFAULT_FROM_EMAIL,
396+
send_mail(request, receivers, settings.DEFAULT_FROM_EMAIL,
397397
u"Stream changed for draft %s" % doc.name,
398398
'ietfworkflows/stream_updated_mail.txt',
399399
dict(doc=doc,

ietf/ietfworkflows/views.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,11 +67,13 @@ def _edit_draft_stream(request, draft, form_class=DraftTagsStateForm):
6767
form_class = NoWorkflowStateForm
6868
if request.method == 'POST':
6969
form = form_class(user=user, draft=draft, data=request.POST)
70+
form.request = request
7071
if form.is_valid():
7172
form.save()
7273
return HttpResponseRedirect('.')
7374
else:
7475
form = form_class(user=user, draft=draft)
76+
form.request = request
7577
state = get_state_for_draft(draft)
7678
stream = get_stream_from_draft(draft)
7779
history = get_workflow_history_for_draft(draft, 'objectworkflowhistoryentry')

ietf/submit/utils.py

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ def request_full_url(request, submission):
4343
'url': url})
4444

4545

46-
def perform_post(submission):
46+
def perform_post(request, submission):
4747
group_id = submission.group_acronym and submission.group_acronym.pk or NONE_WG
4848
state_change_msg = ''
4949
try:
@@ -89,7 +89,7 @@ def perform_post(submission):
8989
send_announcements(submission, draft, state_change_msg)
9090
submission.save()
9191

92-
def perform_postREDESIGN(submission):
92+
def perform_postREDESIGN(request, submission):
9393
system = Person.objects.get(name="(System)")
9494

9595
group_id = submission.group_acronym_id or NONE_WG
@@ -162,24 +162,24 @@ def perform_postREDESIGN(submission):
162162
move_docs(submission)
163163
submission.status_id = POSTED
164164

165-
announce_to_lists(submission)
165+
announce_to_lists(request, submission)
166166
if draft.get_state("draft-iesg") != None and not was_rfc:
167-
announce_new_version(submission, draft, state_change_msg)
168-
announce_to_authors(submission)
167+
announce_new_version(request, submission, draft, state_change_msg)
168+
announce_to_authors(request, submission)
169169

170170
submission.save()
171171

172172
if settings.USE_DB_REDESIGN_PROXY_CLASSES:
173173
perform_post = perform_postREDESIGN
174174

175175
def send_announcements(submission, draft, state_change_msg):
176-
announce_to_lists(submission)
176+
announce_to_lists(request, submission)
177177
if draft.idinternal and not draft.idinternal.rfc_flag:
178-
announce_new_version(submission, draft, state_change_msg)
179-
announce_to_authors(submission)
178+
announce_new_version(request, submission, draft, state_change_msg)
179+
announce_to_authors(request, submission)
180180

181181

182-
def announce_to_lists(submission):
182+
def announce_to_lists(request, submission):
183183
subject = 'I-D Action: %s-%s.txt' % (submission.filename, submission.revision)
184184
from_email = settings.IDSUBMIT_ANNOUNCE_FROM_EMAIL
185185
to_email = [settings.IDSUBMIT_ANNOUNCE_LIST_EMAIL]
@@ -192,12 +192,12 @@ def announce_to_lists(submission):
192192
cc = [submission.group_acronym.email_address]
193193
else:
194194
cc = None
195-
send_mail(None, to_email, from_email, subject, 'submit/announce_to_lists.txt',
195+
send_mail(request, to_email, from_email, subject, 'submit/announce_to_lists.txt',
196196
{'submission': submission,
197197
'authors': authors}, cc=cc)
198198

199199

200-
def announce_new_version(submission, draft, state_change_msg):
200+
def announce_new_version(request, submission, draft, state_change_msg):
201201
to_email = []
202202
if draft.idinternal.state_change_notice_to:
203203
to_email.append(draft.idinternal.state_change_notice_to)
@@ -212,12 +212,12 @@ def announce_new_version(submission, draft, state_change_msg):
212212
pass
213213
subject = 'New Version Notification - %s-%s.txt' % (submission.filename, submission.revision)
214214
from_email = settings.IDSUBMIT_ANNOUNCE_FROM_EMAIL
215-
send_mail(None, to_email, from_email, subject, 'submit/announce_new_version.txt',
215+
send_mail(request, to_email, from_email, subject, 'submit/announce_new_version.txt',
216216
{'submission': submission,
217217
'msg': state_change_msg})
218218

219219

220-
def announce_new_versionREDESIGN(submission, draft, state_change_msg):
220+
def announce_new_versionREDESIGN(request, submission, draft, state_change_msg):
221221
to_email = []
222222
if draft.notify:
223223
to_email.append(draft.notify)
@@ -230,14 +230,14 @@ def announce_new_versionREDESIGN(submission, draft, state_change_msg):
230230

231231
subject = 'New Version Notification - %s-%s.txt' % (submission.filename, submission.revision)
232232
from_email = settings.IDSUBMIT_ANNOUNCE_FROM_EMAIL
233-
send_mail(None, to_email, from_email, subject, 'submit/announce_new_version.txt',
233+
send_mail(request, to_email, from_email, subject, 'submit/announce_new_version.txt',
234234
{'submission': submission,
235235
'msg': state_change_msg})
236236

237237
if settings.USE_DB_REDESIGN_PROXY_CLASSES:
238238
announce_new_version = announce_new_versionREDESIGN
239239

240-
def announce_to_authors(submission):
240+
def announce_to_authors(request, submission):
241241
authors = submission.tempidauthors_set.order_by('author_order')
242242
cc = list(set(i.email()[1] for i in authors if i.email() != authors[0].email()))
243243
to_email = [authors[0].email()[1]] # First TempIdAuthor is submitter
@@ -249,7 +249,7 @@ def announce_to_authors(submission):
249249
wg = 'IESG'
250250
else:
251251
wg = 'Individual Submission'
252-
send_mail(None, to_email, from_email, subject, 'submit/announce_to_authors.txt',
252+
send_mail(request, to_email, from_email, subject, 'submit/announce_to_authors.txt',
253253
{'submission': submission,
254254
'submitter': authors[0].get_full_name(),
255255
'wg': wg}, cc=cc)

ietf/submit/views.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -231,7 +231,7 @@ def draft_confirm(request, submission_id, auth_key):
231231
else:
232232
if request.method=='POST':
233233
message = ('success', 'Authorization key accepted. Auto-Post complete')
234-
perform_post(detail)
234+
perform_post(request, detail)
235235
else:
236236
return render_to_response('submit/last_confirmation_step.html',
237237
{'detail': detail, },
@@ -248,7 +248,7 @@ def draft_approve(request, submission_id, check_function=_can_approve):
248248
if can_perform == None:
249249
raise Http404
250250
return HttpResponseForbidden('You have no permission to perform this action')
251-
perform_post(detail)
251+
perform_post(request, detail)
252252
return HttpResponseRedirect(reverse(draft_status, None, kwargs={'submission_id': submission_id}))
253253

254254

ietf/wgchairs/forms.py

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -369,7 +369,7 @@ def send_email(self, to_email, template):
369369
'wg': self.wg,
370370
})
371371

372-
send_mail_text(None, to_email, settings.DEFAULT_FROM_EMAIL, subject, body)
372+
send_mail_text(self.request, to_email, settings.DEFAULT_FROM_EMAIL, subject, body)
373373

374374
def save(self):
375375
self.next_form = AddDelegateForm(wg=self.wg, user=self.user)
@@ -392,14 +392,16 @@ def add_form_factory(request, wg, user, shepherd=False):
392392
return AddDelegateForm(wg=wg, user=user, shepherd=shepherd)
393393

394394
if request.POST.get('form_type', None) == 'multiple':
395-
return MultipleDelegateForm(wg=wg, user=user, data=request.POST.copy(), shepherd=shepherd)
395+
f = MultipleDelegateForm(wg=wg, user=user, data=request.POST.copy(), shepherd=shepherd)
396396
elif request.POST.get('form_type', None) == 'notexist':
397-
return NotExistDelegateForm(wg=wg, user=user, data=request.POST.copy(), shepherd=shepherd)
397+
f = NotExistDelegateForm(wg=wg, user=user, data=request.POST.copy(), shepherd=shepherd)
398398
elif request.POST.get('form_type', None) == 'single':
399-
return AddDelegateForm(wg=wg, user=user, data=request.POST.copy(), shepherd=shepherd)
400-
401-
return AddDelegateForm(wg=wg, user=user, shepherd=shepherd)
399+
f = AddDelegateForm(wg=wg, user=user, data=request.POST.copy(), shepherd=shepherd)
400+
else:
401+
f = AddDelegateForm(wg=wg, user=user, shepherd=shepherd)
402402

403+
f.request = request
404+
return f
403405

404406
class WriteUpEditForm(RelatedWGForm):
405407

@@ -459,9 +461,9 @@ def save(self):
459461
else:
460462
tags = [FOLLOWUP_TAG]
461463
if followup:
462-
update_tags(self.doc, comment, self.person, set_tags=tags, extra_notify=extra_notify)
464+
update_tags(self.request, self.doc, comment, self.person, set_tags=tags, extra_notify=extra_notify)
463465
else:
464-
update_tags(self.doc, comment, self.person, reset_tags=tags, extra_notify=extra_notify)
466+
update_tags(self.request, self.doc, comment, self.person, reset_tags=tags, extra_notify=extra_notify)
465467
return self.doc_writeup
466468

467469
def is_valid(self):

ietf/wgchairs/views.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -272,6 +272,7 @@ def managing_writeup(request, acronym, name):
272272
followup = bool(followup_tag.count())
273273
if request.method == 'POST':
274274
form = WriteUpEditForm(wg=wg, doc=doc, user=user, data=request.POST, files=request.FILES)
275+
form.request = request
275276
if request.FILES.get('uploaded_writeup', None):
276277
try:
277278
newwriteup = request.FILES['uploaded_writeup'].read().encode('ascii')
@@ -301,6 +302,7 @@ def managing_writeup(request, acronym, name):
301302
followup = bool(followup_tag.count())
302303
else:
303304
form = WriteUpEditForm(wg=wg, doc=doc, user=user)
305+
form.request = request
304306
return render_to_response('wgchairs/edit_management_writeup.html',
305307
dict(doc=doc,
306308
user=user,

0 commit comments

Comments
 (0)