Skip to content

Commit 917d287

Browse files
committed
Button to request the full access url of a submission. Fixes ietf-tools#618
- Legacy-Id: 2890
1 parent cc6af53 commit 917d287

7 files changed

Lines changed: 52 additions & 4 deletions

File tree

ietf/submit/forms.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -317,7 +317,7 @@ def send_confirmation_mail(self, request):
317317
subject = 'Confirmation for Auto-Post of I-D %s' % self.draft.filename
318318
from_email = settings.IDST_FROM_EMAIL
319319
to_email = self.cleaned_data['email']
320-
send_mail(request, from_email, to_email, subject, 'submit/confirm_autopost.txt',
320+
send_mail(request, to_email, from_email, subject, 'submit/confirm_autopost.txt',
321321
{'draft': self.draft, 'domain': Site.objects.get_current().domain })
322322

323323
def save_submitter_info(self):

ietf/submit/urls.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
url(r'^status/(?P<submission_id>\d+)/cancel/$', 'draft_cancel', name='draft_cancel'),
1111
url(r'^status/(?P<submission_id>\d+)/approve/$', 'draft_approve', name='draft_approve'),
1212
url(r'^status/(?P<submission_id>\d+)/force/$', 'draft_force', name='draft_force'),
13+
url(r'^status/(?P<submission_id>\d+)/request/$', 'full_url_request', name='full_url_request'),
1314
url(r'^status/(?P<submission_id>\d+)/(?P<submission_hash>[a-f\d]+)/$', 'draft_status', name='draft_status_by_hash'),
1415
url(r'^status/(?P<submission_id>\d+)/(?P<submission_hash>[a-f\d]+)/cancel/$', 'draft_cancel', name='draft_cancel_by_hash'),
1516
url(r'^status/(?P<submission_id>\d+)/(?P<submission_hash>[a-f\d]+)/edit/$', 'draft_edit', name='draft_edit_by_hash'),

ietf/submit/utils.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,10 @@
33
import datetime
44

55
from django.conf import settings
6+
from django.contrib.sites.models import Site
7+
68
from ietf.idtracker.models import InternetDraft, PersonOrOrgInfo, IETFWG
9+
from ietf.utils.mail import send_mail
710

811

912
# Some usefull states
@@ -20,6 +23,15 @@
2023
NONE_WG = 1027
2124

2225

26+
def request_full_url(request, submission):
27+
subject = 'Full url for managing submission of draft %s' % submission.filename
28+
from_email = settings.IDST_FROM_EMAIL
29+
to_email = ['%s <%s>' % i.email() for i in submission.tempidauthors_set.all()]
30+
send_mail(request, to_email, from_email, subject, 'submit/request_full_url.txt',
31+
{'submission': submission,
32+
'domain': Site.objects.get_current().domain})
33+
34+
2335
def perform_post(submission):
2436
group_id = submission.group_acronym and submission.group_acronym.pk or NONE_WG
2537
updated = False

ietf/submit/views.py

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,8 @@
1212
from ietf.submit.forms import UploadForm, AutoPostForm, MetaDataForm
1313
from ietf.submit.utils import (DraftValidation, perform_post, remove_docs,
1414
get_person_for_user, is_secretariat,
15-
UPLOADED, WAITING_AUTHENTICATION, CANCELED,
15+
request_full_url, UPLOADED,
16+
WAITING_AUTHENTICATION, CANCELED,
1617
INITIAL_VERSION_APPROVAL_REQUESTED,
1718
MANUAL_POST_REQUESTED, POSTED)
1819
from ietf.utils.mail import send_mail
@@ -75,7 +76,7 @@ def _can_cancel(user, detail, submission_hash):
7576
return False
7677

7778
def _can_edit(user, detail, submission_hash):
78-
if detail.status_id != 'UPLOADED':
79+
if detail.status_id != UPLOADED:
7980
return None
8081
if is_secretariat(user):
8182
return True
@@ -134,12 +135,16 @@ def draft_status(request, submission_id, submission_hash=None, message=None):
134135
can_force_post = _can_force_post(request.user, detail)
135136
can_approve = _can_approve(request.user, detail)
136137
can_cancel = _can_cancel(request.user, detail, submission_hash)
137-
allow_edit = False
138+
allow_edit = None
138139
message = ('success', 'Your submission is pending of email authentication. An email has been sent you with instructions')
139140
else:
140141
return HttpResponseRedirect(reverse(draft_edit, None, kwargs={'submission_id': detail.submission_id}))
141142
else:
142143
auto_post_form = AutoPostForm(draft=detail, validation=validation)
144+
145+
show_notify_button = False
146+
if allow_edit == False or can_cancel == False:
147+
show_notify_button = True
143148
return render_to_response('submit/draft_status.html',
144149
{'selected': 'status',
145150
'detail': detail,
@@ -153,6 +158,7 @@ def draft_status(request, submission_id, submission_hash=None, message=None):
153158
'can_approve': can_approve,
154159
'can_cancel': can_cancel,
155160
'submission_hash': submission_hash,
161+
'show_notify_button': show_notify_button,
156162
},
157163
context_instance=RequestContext(request))
158164

@@ -221,3 +227,10 @@ def draft_approve(request, submission_id, check_function=_can_approve):
221227

222228
def draft_force(request, submission_id):
223229
return draft_approve(request, submission_id, check_function=_can_force_post)
230+
231+
232+
def full_url_request(request, submission_id):
233+
detail = get_object_or_404(IdSubmissionDetail, submission_id=submission_id)
234+
request_full_url(request, detail)
235+
message = ('success', 'An email has been sent to draft authors to inform them of the full access url')
236+
return draft_status(request, submission_id, message=message)
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
11
Follow this link to confirm you Auto-Post of I-D {{ draft.filename }}-{{ draft.revision }}
22

33
I-D Submission Tool URL: http://{{ domain }}/submit/status/{{ draft.submission_id }}/confirm/{{ draft.auth_key }}/
4+
5+
Remember that you can cancel the submission from:
6+
http://{{ domain }}/submit/status/{{ draft.submission_id }}/{{ draft.get_hash }}/

ietf/templates/submit/draft_status.html

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -218,6 +218,22 @@ <h2>Cancel submission</h2>
218218
</p>
219219
{% endif %}
220220

221+
{% if show_notify_button %}
222+
<div class="metadata-errors">
223+
<p>
224+
You are not allowed to modify or cancel this submission. You only can modify or cancel this submission from the same url you were redirected after the submission.
225+
</p>
226+
<p>
227+
If you are the submitter check your browser history to find this url. You can share it with any person you need.
228+
</p>
229+
<p>
230+
If you are one of the authors you can request the url from wich you can modify or cancel this submission by clicking the next button. An email will be sent to the draft authors and to the submitter (if its email is available).
231+
</p>
232+
<form method="post" action="{% url full_url_request detail.submission_id %}">
233+
<input type="submit" value="Request full access url" />
234+
</form>
235+
</div>
236+
{% endif %}
221237
<p>
222238
The IETF is an organized activity of the <a href="http://www.isoc.org">Internet Society</a>
223239
<br>Please send problem reports to <a href="mailto:ietf-action@ietf.org">ietf-action@ietf.org</a>.
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
Follow this link to get full access to the submission of I-D {{ submission.filename }}-{{ submission.revision }}
2+
3+
http://{{ domain }}/submit/status/{{ submission.submission_id }}/{{ submission.get_hash }}/

0 commit comments

Comments
 (0)