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:
Ole Laursen 2011-11-25 18:24:14 +00:00
parent 1a1476fa01
commit 8153a1c130
10 changed files with 50 additions and 41 deletions

View file

@ -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']

View file

@ -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

View file

@ -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')

View file

@ -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)

View file

@ -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,

View file

@ -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')

View file

@ -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)

View file

@ -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}))

View file

@ -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):

View file

@ -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,