diff --git a/ietf/idrfc/views_edit.py b/ietf/idrfc/views_edit.py index 88505d6c3..2d4b942cb 100644 --- a/ietf/idrfc/views_edit.py +++ b/ietf/idrfc/views_edit.py @@ -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'] diff --git a/ietf/ietfauth/forms.py b/ietf/ietfauth/forms.py index 1e2230d5b..feb618609 100644 --- a/ietf/ietfauth/forms.py +++ b/ietf/ietfauth/forms.py @@ -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 \ No newline at end of file + return p.returncode diff --git a/ietf/ietfauth/views.py b/ietf/ietfauth/views.py index 3976011e8..ab7f9127f 100644 --- a/ietf/ietfauth/views.py +++ b/ietf/ietfauth/views.py @@ -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') - \ No newline at end of file + diff --git a/ietf/ietfworkflows/forms.py b/ietf/ietfworkflows/forms.py index ee8c3c260..b6885729c 100644 --- a/ietf/ietfworkflows/forms.py +++ b/ietf/ietfworkflows/forms.py @@ -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) diff --git a/ietf/ietfworkflows/utils.py b/ietf/ietfworkflows/utils.py index 9dccff931..c0c1ba8e9 100644 --- a/ietf/ietfworkflows/utils.py +++ b/ietf/ietfworkflows/utils.py @@ -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, diff --git a/ietf/ietfworkflows/views.py b/ietf/ietfworkflows/views.py index 27c55ff45..f24bd4d4e 100644 --- a/ietf/ietfworkflows/views.py +++ b/ietf/ietfworkflows/views.py @@ -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') diff --git a/ietf/submit/utils.py b/ietf/submit/utils.py index bb7c432e2..25a8fda84 100644 --- a/ietf/submit/utils.py +++ b/ietf/submit/utils.py @@ -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) diff --git a/ietf/submit/views.py b/ietf/submit/views.py index 77da103a6..0175b0c31 100644 --- a/ietf/submit/views.py +++ b/ietf/submit/views.py @@ -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})) diff --git a/ietf/wgchairs/forms.py b/ietf/wgchairs/forms.py index 23d112e85..6cb095335 100644 --- a/ietf/wgchairs/forms.py +++ b/ietf/wgchairs/forms.py @@ -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): diff --git a/ietf/wgchairs/views.py b/ietf/wgchairs/views.py index 6172b7de8..43df707b5 100644 --- a/ietf/wgchairs/views.py +++ b/ietf/wgchairs/views.py @@ -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,