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
This commit is contained in:
parent
1a1476fa01
commit
8153a1c130
|
@ -366,7 +366,7 @@ def edit_info(request, name):
|
|||
doc.idinternal.status_date = date.today()
|
||||
|
||||
|
||||
update_stream(doc,
|
||||
update_stream(request, doc,
|
||||
"Setting stream while adding document to the tracker",
|
||||
person=request.user.get_profile().person(),
|
||||
to_stream = r['stream']
|
||||
|
|
|
@ -21,6 +21,7 @@ class RegistrationForm(forms.Form):
|
|||
expire = 3
|
||||
|
||||
def save(self, *args, **kwargs):
|
||||
# why is there a save when it doesn't save?
|
||||
self.send_email()
|
||||
return True
|
||||
|
||||
|
@ -39,7 +40,7 @@ class RegistrationForm(forms.Form):
|
|||
'username': to_email,
|
||||
'expire': settings.DAYS_TO_EXPIRE_REGISTRATION_LINK,
|
||||
}
|
||||
send_mail(None, to_email, from_email, subject, 'registration/creation_email.txt', context)
|
||||
send_mail(self.request, to_email, from_email, subject, 'registration/creation_email.txt', context)
|
||||
|
||||
def clean_email(self):
|
||||
email = self.cleaned_data.get('email', '')
|
||||
|
@ -70,7 +71,7 @@ class RecoverPasswordForm(RegistrationForm):
|
|||
'username': to_email,
|
||||
'expire': settings.DAYS_TO_EXPIRE_REGISTRATION_LINK,
|
||||
}
|
||||
send_mail(None, to_email, from_email, subject, 'registration/password_reset_email.txt', context)
|
||||
send_mail(self.request, to_email, from_email, subject, 'registration/password_reset_email.txt', context)
|
||||
|
||||
|
||||
class PasswordForm(forms.Form):
|
||||
|
@ -122,4 +123,4 @@ class PasswordForm(forms.Form):
|
|||
stdout, stderr = p.communicate()
|
||||
debug.show('stdout')
|
||||
debug.show('stderr')
|
||||
return p.returncode
|
||||
return p.returncode
|
||||
|
|
|
@ -107,6 +107,7 @@ def create_account(request):
|
|||
if request.method == 'POST':
|
||||
form = RegistrationForm(request.POST)
|
||||
if form.is_valid():
|
||||
form.request = request
|
||||
form.save()
|
||||
success = True
|
||||
else:
|
||||
|
@ -143,6 +144,7 @@ def password_reset_view(request):
|
|||
if request.method == 'POST':
|
||||
form = RecoverPasswordForm(request.POST)
|
||||
if form.is_valid():
|
||||
form.request = request
|
||||
form.save()
|
||||
success = True
|
||||
else:
|
||||
|
@ -178,4 +180,4 @@ def ajax_check_username(request):
|
|||
if User.objects.filter(username=username).count():
|
||||
error = _('This email is already in use')
|
||||
return HttpResponse(json.dumps({'error': error}), mimetype='text/plain')
|
||||
|
||||
|
||||
|
|
|
@ -130,7 +130,7 @@ class NoWorkflowStateForm(StreamDraftForm):
|
|||
to_state = State.objects.get(slug="c-adopt", type="draft-stream-%s" % self.draft.stream_id)
|
||||
else:
|
||||
to_state = get_state_by_name(CALL_FOR_ADOPTION)
|
||||
update_state(self.draft,
|
||||
update_state(self.request, self.draft,
|
||||
comment=comment,
|
||||
person=self.person,
|
||||
to_state=to_state,
|
||||
|
@ -252,7 +252,7 @@ class DraftTagsStateForm(StreamDraftForm):
|
|||
pass
|
||||
if not set_tags and not reset_tags:
|
||||
return
|
||||
update_tags(self.draft,
|
||||
update_tags(self.request, self.draft,
|
||||
comment=comment,
|
||||
person=self.person,
|
||||
set_tags=set_tags,
|
||||
|
@ -270,7 +270,7 @@ class DraftTagsStateForm(StreamDraftForm):
|
|||
now = datetime.date.today()
|
||||
estimated_date = now + datetime.timedelta(weeks=weeks)
|
||||
|
||||
update_state(self.draft,
|
||||
update_state(self.request, self.draft,
|
||||
comment=comment,
|
||||
person=self.person,
|
||||
to_state=state,
|
||||
|
@ -313,7 +313,7 @@ class DraftStreamForm(StreamDraftForm):
|
|||
comment = self.cleaned_data.get('comment').strip()
|
||||
to_stream = self.cleaned_data.get('stream')
|
||||
|
||||
update_stream(self.draft,
|
||||
update_stream(self.request, self.draft,
|
||||
comment=comment,
|
||||
person=self.person,
|
||||
to_stream=to_stream)
|
||||
|
|
|
@ -257,7 +257,7 @@ def get_notification_receivers(doc, extra_notify):
|
|||
|
||||
return res
|
||||
|
||||
def update_tags(obj, comment, person, set_tags=[], reset_tags=[], extra_notify=[]):
|
||||
def update_tags(request, obj, comment, person, set_tags=[], reset_tags=[], extra_notify=[]):
|
||||
if settings.USE_DB_REDESIGN_PROXY_CLASSES:
|
||||
doc = Document.objects.get(pk=obj.pk)
|
||||
save_document_in_history(doc)
|
||||
|
@ -277,7 +277,7 @@ def update_tags(obj, comment, person, set_tags=[], reset_tags=[], extra_notify=[
|
|||
e.save()
|
||||
|
||||
receivers = get_notification_receivers(doc, extra_notify)
|
||||
send_mail(None, receivers, settings.DEFAULT_FROM_EMAIL,
|
||||
send_mail(request, receivers, settings.DEFAULT_FROM_EMAIL,
|
||||
u"Annotations tags changed for draft %s" % doc.name,
|
||||
'ietfworkflows/annotation_tags_updated_mail.txt',
|
||||
dict(doc=doc,
|
||||
|
@ -316,7 +316,7 @@ def update_tags(obj, comment, person, set_tags=[], reset_tags=[], extra_notify=[
|
|||
notify_tag_entry(entry, extra_notify)
|
||||
|
||||
|
||||
def update_state(doc, comment, person, to_state, estimated_date=None, extra_notify=[]):
|
||||
def update_state(request, doc, comment, person, to_state, estimated_date=None, extra_notify=[]):
|
||||
if settings.USE_DB_REDESIGN_PROXY_CLASSES:
|
||||
doc = Document.objects.get(pk=doc.pk)
|
||||
save_document_in_history(doc)
|
||||
|
@ -350,7 +350,7 @@ def update_state(doc, comment, person, to_state, estimated_date=None, extra_noti
|
|||
reminder.save()
|
||||
|
||||
receivers = get_notification_receivers(doc, extra_notify)
|
||||
send_mail(None, receivers, settings.DEFAULT_FROM_EMAIL,
|
||||
send_mail(request, receivers, settings.DEFAULT_FROM_EMAIL,
|
||||
u"State changed for draft %s" % doc.name,
|
||||
'ietfworkflows/state_updated_mail.txt',
|
||||
dict(doc=doc,
|
||||
|
@ -378,7 +378,7 @@ def update_state(doc, comment, person, to_state, estimated_date=None, extra_noti
|
|||
notify_state_entry(entry, extra_notify)
|
||||
|
||||
|
||||
def update_stream(doc, comment, person, to_stream, extra_notify=[]):
|
||||
def update_stream(request, doc, comment, person, to_stream, extra_notify=[]):
|
||||
if settings.USE_DB_REDESIGN_PROXY_CLASSES:
|
||||
doc = Document.objects.get(pk=doc.pk)
|
||||
save_document_in_history(doc)
|
||||
|
@ -393,7 +393,7 @@ def update_stream(doc, comment, person, to_stream, extra_notify=[]):
|
|||
e.save()
|
||||
|
||||
receivers = get_notification_receivers(doc, extra_notify)
|
||||
send_mail(None, receivers, settings.DEFAULT_FROM_EMAIL,
|
||||
send_mail(request, receivers, settings.DEFAULT_FROM_EMAIL,
|
||||
u"Stream changed for draft %s" % doc.name,
|
||||
'ietfworkflows/stream_updated_mail.txt',
|
||||
dict(doc=doc,
|
||||
|
|
|
@ -67,11 +67,13 @@ def _edit_draft_stream(request, draft, form_class=DraftTagsStateForm):
|
|||
form_class = NoWorkflowStateForm
|
||||
if request.method == 'POST':
|
||||
form = form_class(user=user, draft=draft, data=request.POST)
|
||||
form.request = request
|
||||
if form.is_valid():
|
||||
form.save()
|
||||
return HttpResponseRedirect('.')
|
||||
else:
|
||||
form = form_class(user=user, draft=draft)
|
||||
form.request = request
|
||||
state = get_state_for_draft(draft)
|
||||
stream = get_stream_from_draft(draft)
|
||||
history = get_workflow_history_for_draft(draft, 'objectworkflowhistoryentry')
|
||||
|
|
|
@ -43,7 +43,7 @@ def request_full_url(request, submission):
|
|||
'url': url})
|
||||
|
||||
|
||||
def perform_post(submission):
|
||||
def perform_post(request, submission):
|
||||
group_id = submission.group_acronym and submission.group_acronym.pk or NONE_WG
|
||||
state_change_msg = ''
|
||||
try:
|
||||
|
@ -89,7 +89,7 @@ def perform_post(submission):
|
|||
send_announcements(submission, draft, state_change_msg)
|
||||
submission.save()
|
||||
|
||||
def perform_postREDESIGN(submission):
|
||||
def perform_postREDESIGN(request, submission):
|
||||
system = Person.objects.get(name="(System)")
|
||||
|
||||
group_id = submission.group_acronym_id or NONE_WG
|
||||
|
@ -162,10 +162,10 @@ def perform_postREDESIGN(submission):
|
|||
move_docs(submission)
|
||||
submission.status_id = POSTED
|
||||
|
||||
announce_to_lists(submission)
|
||||
announce_to_lists(request, submission)
|
||||
if draft.get_state("draft-iesg") != None and not was_rfc:
|
||||
announce_new_version(submission, draft, state_change_msg)
|
||||
announce_to_authors(submission)
|
||||
announce_new_version(request, submission, draft, state_change_msg)
|
||||
announce_to_authors(request, submission)
|
||||
|
||||
submission.save()
|
||||
|
||||
|
@ -173,13 +173,13 @@ if settings.USE_DB_REDESIGN_PROXY_CLASSES:
|
|||
perform_post = perform_postREDESIGN
|
||||
|
||||
def send_announcements(submission, draft, state_change_msg):
|
||||
announce_to_lists(submission)
|
||||
announce_to_lists(request, submission)
|
||||
if draft.idinternal and not draft.idinternal.rfc_flag:
|
||||
announce_new_version(submission, draft, state_change_msg)
|
||||
announce_to_authors(submission)
|
||||
announce_new_version(request, submission, draft, state_change_msg)
|
||||
announce_to_authors(request, submission)
|
||||
|
||||
|
||||
def announce_to_lists(submission):
|
||||
def announce_to_lists(request, submission):
|
||||
subject = 'I-D Action: %s-%s.txt' % (submission.filename, submission.revision)
|
||||
from_email = settings.IDSUBMIT_ANNOUNCE_FROM_EMAIL
|
||||
to_email = [settings.IDSUBMIT_ANNOUNCE_LIST_EMAIL]
|
||||
|
@ -192,12 +192,12 @@ def announce_to_lists(submission):
|
|||
cc = [submission.group_acronym.email_address]
|
||||
else:
|
||||
cc = None
|
||||
send_mail(None, to_email, from_email, subject, 'submit/announce_to_lists.txt',
|
||||
send_mail(request, to_email, from_email, subject, 'submit/announce_to_lists.txt',
|
||||
{'submission': submission,
|
||||
'authors': authors}, cc=cc)
|
||||
|
||||
|
||||
def announce_new_version(submission, draft, state_change_msg):
|
||||
def announce_new_version(request, submission, draft, state_change_msg):
|
||||
to_email = []
|
||||
if draft.idinternal.state_change_notice_to:
|
||||
to_email.append(draft.idinternal.state_change_notice_to)
|
||||
|
@ -212,12 +212,12 @@ def announce_new_version(submission, draft, state_change_msg):
|
|||
pass
|
||||
subject = 'New Version Notification - %s-%s.txt' % (submission.filename, submission.revision)
|
||||
from_email = settings.IDSUBMIT_ANNOUNCE_FROM_EMAIL
|
||||
send_mail(None, to_email, from_email, subject, 'submit/announce_new_version.txt',
|
||||
send_mail(request, to_email, from_email, subject, 'submit/announce_new_version.txt',
|
||||
{'submission': submission,
|
||||
'msg': state_change_msg})
|
||||
|
||||
|
||||
def announce_new_versionREDESIGN(submission, draft, state_change_msg):
|
||||
def announce_new_versionREDESIGN(request, submission, draft, state_change_msg):
|
||||
to_email = []
|
||||
if draft.notify:
|
||||
to_email.append(draft.notify)
|
||||
|
@ -230,14 +230,14 @@ def announce_new_versionREDESIGN(submission, draft, state_change_msg):
|
|||
|
||||
subject = 'New Version Notification - %s-%s.txt' % (submission.filename, submission.revision)
|
||||
from_email = settings.IDSUBMIT_ANNOUNCE_FROM_EMAIL
|
||||
send_mail(None, to_email, from_email, subject, 'submit/announce_new_version.txt',
|
||||
send_mail(request, to_email, from_email, subject, 'submit/announce_new_version.txt',
|
||||
{'submission': submission,
|
||||
'msg': state_change_msg})
|
||||
|
||||
if settings.USE_DB_REDESIGN_PROXY_CLASSES:
|
||||
announce_new_version = announce_new_versionREDESIGN
|
||||
|
||||
def announce_to_authors(submission):
|
||||
def announce_to_authors(request, submission):
|
||||
authors = submission.tempidauthors_set.order_by('author_order')
|
||||
cc = list(set(i.email()[1] for i in authors if i.email() != authors[0].email()))
|
||||
to_email = [authors[0].email()[1]] # First TempIdAuthor is submitter
|
||||
|
@ -249,7 +249,7 @@ def announce_to_authors(submission):
|
|||
wg = 'IESG'
|
||||
else:
|
||||
wg = 'Individual Submission'
|
||||
send_mail(None, to_email, from_email, subject, 'submit/announce_to_authors.txt',
|
||||
send_mail(request, to_email, from_email, subject, 'submit/announce_to_authors.txt',
|
||||
{'submission': submission,
|
||||
'submitter': authors[0].get_full_name(),
|
||||
'wg': wg}, cc=cc)
|
||||
|
|
|
@ -231,7 +231,7 @@ def draft_confirm(request, submission_id, auth_key):
|
|||
else:
|
||||
if request.method=='POST':
|
||||
message = ('success', 'Authorization key accepted. Auto-Post complete')
|
||||
perform_post(detail)
|
||||
perform_post(request, detail)
|
||||
else:
|
||||
return render_to_response('submit/last_confirmation_step.html',
|
||||
{'detail': detail, },
|
||||
|
@ -248,7 +248,7 @@ def draft_approve(request, submission_id, check_function=_can_approve):
|
|||
if can_perform == None:
|
||||
raise Http404
|
||||
return HttpResponseForbidden('You have no permission to perform this action')
|
||||
perform_post(detail)
|
||||
perform_post(request, detail)
|
||||
return HttpResponseRedirect(reverse(draft_status, None, kwargs={'submission_id': submission_id}))
|
||||
|
||||
|
||||
|
|
|
@ -369,7 +369,7 @@ class NotExistDelegateForm(MultipleDelegateForm):
|
|||
'wg': self.wg,
|
||||
})
|
||||
|
||||
send_mail_text(None, to_email, settings.DEFAULT_FROM_EMAIL, subject, body)
|
||||
send_mail_text(self.request, to_email, settings.DEFAULT_FROM_EMAIL, subject, body)
|
||||
|
||||
def save(self):
|
||||
self.next_form = AddDelegateForm(wg=self.wg, user=self.user)
|
||||
|
@ -392,14 +392,16 @@ def add_form_factory(request, wg, user, shepherd=False):
|
|||
return AddDelegateForm(wg=wg, user=user, shepherd=shepherd)
|
||||
|
||||
if request.POST.get('form_type', None) == 'multiple':
|
||||
return MultipleDelegateForm(wg=wg, user=user, data=request.POST.copy(), shepherd=shepherd)
|
||||
f = MultipleDelegateForm(wg=wg, user=user, data=request.POST.copy(), shepherd=shepherd)
|
||||
elif request.POST.get('form_type', None) == 'notexist':
|
||||
return NotExistDelegateForm(wg=wg, user=user, data=request.POST.copy(), shepherd=shepherd)
|
||||
f = NotExistDelegateForm(wg=wg, user=user, data=request.POST.copy(), shepherd=shepherd)
|
||||
elif request.POST.get('form_type', None) == 'single':
|
||||
return AddDelegateForm(wg=wg, user=user, data=request.POST.copy(), shepherd=shepherd)
|
||||
|
||||
return AddDelegateForm(wg=wg, user=user, shepherd=shepherd)
|
||||
f = AddDelegateForm(wg=wg, user=user, data=request.POST.copy(), shepherd=shepherd)
|
||||
else:
|
||||
f = AddDelegateForm(wg=wg, user=user, shepherd=shepherd)
|
||||
|
||||
f.request = request
|
||||
return f
|
||||
|
||||
class WriteUpEditForm(RelatedWGForm):
|
||||
|
||||
|
@ -459,9 +461,9 @@ class WriteUpEditForm(RelatedWGForm):
|
|||
else:
|
||||
tags = [FOLLOWUP_TAG]
|
||||
if followup:
|
||||
update_tags(self.doc, comment, self.person, set_tags=tags, extra_notify=extra_notify)
|
||||
update_tags(self.request, self.doc, comment, self.person, set_tags=tags, extra_notify=extra_notify)
|
||||
else:
|
||||
update_tags(self.doc, comment, self.person, reset_tags=tags, extra_notify=extra_notify)
|
||||
update_tags(self.request, self.doc, comment, self.person, reset_tags=tags, extra_notify=extra_notify)
|
||||
return self.doc_writeup
|
||||
|
||||
def is_valid(self):
|
||||
|
|
|
@ -272,6 +272,7 @@ def managing_writeup(request, acronym, name):
|
|||
followup = bool(followup_tag.count())
|
||||
if request.method == 'POST':
|
||||
form = WriteUpEditForm(wg=wg, doc=doc, user=user, data=request.POST, files=request.FILES)
|
||||
form.request = request
|
||||
if request.FILES.get('uploaded_writeup', None):
|
||||
try:
|
||||
newwriteup = request.FILES['uploaded_writeup'].read().encode('ascii')
|
||||
|
@ -301,6 +302,7 @@ def managing_writeup(request, acronym, name):
|
|||
followup = bool(followup_tag.count())
|
||||
else:
|
||||
form = WriteUpEditForm(wg=wg, doc=doc, user=user)
|
||||
form.request = request
|
||||
return render_to_response('wgchairs/edit_management_writeup.html',
|
||||
dict(doc=doc,
|
||||
user=user,
|
||||
|
|
Loading…
Reference in a new issue