From 917d287182c439632eea7aa26461fca929346f42 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Emilio=20A=2E=20S=C3=A1nchez=20L=C3=B3pez?= Date: Thu, 17 Mar 2011 12:14:53 +0000 Subject: [PATCH] Button to request the full access url of a submission. Fixes #618 - Legacy-Id: 2890 --- ietf/submit/forms.py | 2 +- ietf/submit/urls.py | 1 + ietf/submit/utils.py | 12 ++++++++++++ ietf/submit/views.py | 19 ++++++++++++++++--- ietf/templates/submit/confirm_autopost.txt | 3 +++ ietf/templates/submit/draft_status.html | 16 ++++++++++++++++ ietf/templates/submit/request_full_url.txt | 3 +++ 7 files changed, 52 insertions(+), 4 deletions(-) create mode 100644 ietf/templates/submit/request_full_url.txt diff --git a/ietf/submit/forms.py b/ietf/submit/forms.py index 7f2bfea20..2a72aad8c 100644 --- a/ietf/submit/forms.py +++ b/ietf/submit/forms.py @@ -317,7 +317,7 @@ class AutoPostForm(forms.Form): subject = 'Confirmation for Auto-Post of I-D %s' % self.draft.filename from_email = settings.IDST_FROM_EMAIL to_email = self.cleaned_data['email'] - send_mail(request, from_email, to_email, subject, 'submit/confirm_autopost.txt', + send_mail(request, to_email, from_email, subject, 'submit/confirm_autopost.txt', {'draft': self.draft, 'domain': Site.objects.get_current().domain }) def save_submitter_info(self): diff --git a/ietf/submit/urls.py b/ietf/submit/urls.py index 44d312bb0..0258334ac 100644 --- a/ietf/submit/urls.py +++ b/ietf/submit/urls.py @@ -10,6 +10,7 @@ urlpatterns = patterns('ietf.submit.views', url(r'^status/(?P\d+)/cancel/$', 'draft_cancel', name='draft_cancel'), url(r'^status/(?P\d+)/approve/$', 'draft_approve', name='draft_approve'), url(r'^status/(?P\d+)/force/$', 'draft_force', name='draft_force'), + url(r'^status/(?P\d+)/request/$', 'full_url_request', name='full_url_request'), url(r'^status/(?P\d+)/(?P[a-f\d]+)/$', 'draft_status', name='draft_status_by_hash'), url(r'^status/(?P\d+)/(?P[a-f\d]+)/cancel/$', 'draft_cancel', name='draft_cancel_by_hash'), url(r'^status/(?P\d+)/(?P[a-f\d]+)/edit/$', 'draft_edit', name='draft_edit_by_hash'), diff --git a/ietf/submit/utils.py b/ietf/submit/utils.py index eaa0b1e83..2f6964941 100644 --- a/ietf/submit/utils.py +++ b/ietf/submit/utils.py @@ -3,7 +3,10 @@ import re import datetime from django.conf import settings +from django.contrib.sites.models import Site + from ietf.idtracker.models import InternetDraft, PersonOrOrgInfo, IETFWG +from ietf.utils.mail import send_mail # Some usefull states @@ -20,6 +23,15 @@ INITIAL_VERSION_APPROVAL_REQUESTED = 10 NONE_WG = 1027 +def request_full_url(request, submission): + subject = 'Full url for managing submission of draft %s' % submission.filename + from_email = settings.IDST_FROM_EMAIL + to_email = ['%s <%s>' % i.email() for i in submission.tempidauthors_set.all()] + send_mail(request, to_email, from_email, subject, 'submit/request_full_url.txt', + {'submission': submission, + 'domain': Site.objects.get_current().domain}) + + def perform_post(submission): group_id = submission.group_acronym and submission.group_acronym.pk or NONE_WG updated = False diff --git a/ietf/submit/views.py b/ietf/submit/views.py index f951d0e4f..90efb3312 100644 --- a/ietf/submit/views.py +++ b/ietf/submit/views.py @@ -12,7 +12,8 @@ from ietf.submit.models import IdSubmissionDetail, IdApprovedDetail from ietf.submit.forms import UploadForm, AutoPostForm, MetaDataForm from ietf.submit.utils import (DraftValidation, perform_post, remove_docs, get_person_for_user, is_secretariat, - UPLOADED, WAITING_AUTHENTICATION, CANCELED, + request_full_url, UPLOADED, + WAITING_AUTHENTICATION, CANCELED, INITIAL_VERSION_APPROVAL_REQUESTED, MANUAL_POST_REQUESTED, POSTED) from ietf.utils.mail import send_mail @@ -75,7 +76,7 @@ def _can_cancel(user, detail, submission_hash): return False def _can_edit(user, detail, submission_hash): - if detail.status_id != 'UPLOADED': + if detail.status_id != UPLOADED: return None if is_secretariat(user): return True @@ -134,12 +135,16 @@ def draft_status(request, submission_id, submission_hash=None, message=None): can_force_post = _can_force_post(request.user, detail) can_approve = _can_approve(request.user, detail) can_cancel = _can_cancel(request.user, detail, submission_hash) - allow_edit = False + allow_edit = None message = ('success', 'Your submission is pending of email authentication. An email has been sent you with instructions') else: return HttpResponseRedirect(reverse(draft_edit, None, kwargs={'submission_id': detail.submission_id})) else: auto_post_form = AutoPostForm(draft=detail, validation=validation) + + show_notify_button = False + if allow_edit == False or can_cancel == False: + show_notify_button = True return render_to_response('submit/draft_status.html', {'selected': 'status', 'detail': detail, @@ -153,6 +158,7 @@ def draft_status(request, submission_id, submission_hash=None, message=None): 'can_approve': can_approve, 'can_cancel': can_cancel, 'submission_hash': submission_hash, + 'show_notify_button': show_notify_button, }, context_instance=RequestContext(request)) @@ -221,3 +227,10 @@ def draft_approve(request, submission_id, check_function=_can_approve): def draft_force(request, submission_id): return draft_approve(request, submission_id, check_function=_can_force_post) + + +def full_url_request(request, submission_id): + detail = get_object_or_404(IdSubmissionDetail, submission_id=submission_id) + request_full_url(request, detail) + message = ('success', 'An email has been sent to draft authors to inform them of the full access url') + return draft_status(request, submission_id, message=message) diff --git a/ietf/templates/submit/confirm_autopost.txt b/ietf/templates/submit/confirm_autopost.txt index c07eaaa38..29243043d 100644 --- a/ietf/templates/submit/confirm_autopost.txt +++ b/ietf/templates/submit/confirm_autopost.txt @@ -1,3 +1,6 @@ Follow this link to confirm you Auto-Post of I-D {{ draft.filename }}-{{ draft.revision }} I-D Submission Tool URL: http://{{ domain }}/submit/status/{{ draft.submission_id }}/confirm/{{ draft.auth_key }}/ + +Remember that you can cancel the submission from: +http://{{ domain }}/submit/status/{{ draft.submission_id }}/{{ draft.get_hash }}/ diff --git a/ietf/templates/submit/draft_status.html b/ietf/templates/submit/draft_status.html index 93243b33d..a024c819e 100644 --- a/ietf/templates/submit/draft_status.html +++ b/ietf/templates/submit/draft_status.html @@ -218,6 +218,22 @@ returned to the submitter.

{% endif %} +{% if show_notify_button %} + +{% endif %}

The IETF is an organized activity of the Internet Society
Please send problem reports to ietf-action@ietf.org. diff --git a/ietf/templates/submit/request_full_url.txt b/ietf/templates/submit/request_full_url.txt new file mode 100644 index 000000000..3ecc93f0b --- /dev/null +++ b/ietf/templates/submit/request_full_url.txt @@ -0,0 +1,3 @@ +Follow this link to get full access to the submission of I-D {{ submission.filename }}-{{ submission.revision }} + +http://{{ domain }}/submit/status/{{ submission.submission_id }}/{{ submission.get_hash }}/