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 }}/