Changed a state name, and renamed some view functions for easier code reading. Removed extra name= parameters from the submit/ urlpatterns.

- Legacy-Id: 11917
This commit is contained in:
Henrik Levkowetz 2016-09-01 09:14:34 +00:00
parent e2fccfb094
commit 7a8c067d83
22 changed files with 121 additions and 123 deletions

View file

@ -8,7 +8,6 @@ from tastypie.cache import SimpleCache
from ietf import api
from ietf.message.models import Message, SendQueue, MessageAttachment
from ietf.person.resources import PersonResource
from ietf.group.resources import GroupResource
from ietf.doc.resources import DocumentResource

View file

@ -884,7 +884,7 @@
"desc": ""
},
"model": "name.draftsubmissionstatename",
"pk": "manual-awaiting-draft"
"pk": "waiting-for-draft"
},
{
"fields": {

View file

@ -11,7 +11,7 @@ class SubmissionAdmin(admin.ModelAdmin):
raw_id_fields = ['group', 'draft']
def status_link(self, instance):
url = urlreverse('submit_submission_status_by_hash',
url = urlreverse('ietf.submit.views.submission_status',
kwargs=dict(submission_id=instance.pk,
access_token=instance.access_token()))
return '<a href="%s">%s</a>' % (url, instance.state)

View file

@ -226,9 +226,9 @@ class SubmissionUploadForm(forms.Form):
self.group = self.deduce_group()
# check existing
existing = Submission.objects.filter(name=self.filename, rev=self.revision).exclude(state__in=("posted", "cancel", "manual-awaiting-draft"))
existing = Submission.objects.filter(name=self.filename, rev=self.revision).exclude(state__in=("posted", "cancel", "waiting-for-draft"))
if existing:
raise forms.ValidationError(mark_safe('A submission with same name and revision is currently being processed. <a href="%s">Check the status here.</a>' % urlreverse("submit_submission_status", kwargs={ 'submission_id': existing[0].pk })))
raise forms.ValidationError(mark_safe('A submission with same name and revision is currently being processed. <a href="%s">Check the status here.</a>' % urlreverse("ietf.submit.views.submission_status", kwargs={ 'submission_id': existing[0].pk })))
# cut-off
if self.revision == '00' and self.in_first_cut_off:

View file

@ -3,7 +3,6 @@ import email
import datetime
import base64
import os
import pyzmail
from django.conf import settings
@ -16,11 +15,10 @@ from ietf.utils.log import log
from ietf.utils.mail import send_mail, send_mail_message
from ietf.doc.models import Document
from ietf.ipr.mail import utc_from_string
from ietf.mailtrigger.utils import gather_address_lists, \
get_base_submission_message_address
from ietf.person.models import Person
from ietf.message.models import Message, MessageAttachment
from ietf.utils.accesstoken import generate_access_token
from ietf.mailtrigger.utils import gather_address_lists, get_base_submission_message_address
from ietf.submit.models import SubmissionEmail, Submission
def send_submission_confirmation(request, submission, chair_notice=False):
@ -28,8 +26,8 @@ def send_submission_confirmation(request, submission, chair_notice=False):
from_email = settings.IDSUBMIT_FROM_EMAIL
(to_email, cc) = gather_address_lists('sub_confirmation_requested',submission=submission)
confirm_url = settings.IDTRACKER_BASE_URL + urlreverse('submit_confirm_submission', kwargs=dict(submission_id=submission.pk, auth_token=generate_access_token(submission.auth_key)))
status_url = settings.IDTRACKER_BASE_URL + urlreverse('submit_submission_status_by_hash', kwargs=dict(submission_id=submission.pk, access_token=submission.access_token()))
confirm_url = settings.IDTRACKER_BASE_URL + urlreverse('ietf.submit.views.confirm_submission', kwargs=dict(submission_id=submission.pk, auth_token=generate_access_token(submission.auth_key)))
status_url = settings.IDTRACKER_BASE_URL + urlreverse('ietf.submit.views.submission_status', kwargs=dict(submission_id=submission.pk, access_token=submission.access_token()))
send_mail(request, to_email, from_email, subject, 'submit/confirm_submission.txt',
{
@ -48,7 +46,7 @@ def send_full_url(request, submission):
subject = 'Full URL for managing submission of draft %s' % submission.name
from_email = settings.IDSUBMIT_FROM_EMAIL
(to_email, cc) = gather_address_lists('sub_management_url_requested',submission=submission)
url = settings.IDTRACKER_BASE_URL + urlreverse('submit_submission_status_by_hash', kwargs=dict(submission_id=submission.pk, access_token=submission.access_token()))
url = settings.IDTRACKER_BASE_URL + urlreverse('ietf.submit.views.submission_status', kwargs=dict(submission_id=submission.pk, access_token=submission.access_token()))
send_mail(request, to_email, from_email, subject, 'submit/full_url.txt',
{
@ -84,7 +82,7 @@ def send_manual_post_request(request, submission, errors):
(to_email,cc) = gather_address_lists('sub_manual_post_requested',submission=submission)
send_mail(request, to_email, from_email, subject, 'submit/manual_post_request.txt', {
'submission': submission,
'url': settings.IDTRACKER_BASE_URL + urlreverse('submit_submission_status', kwargs=dict(submission_id=submission.pk)),
'url': settings.IDTRACKER_BASE_URL + urlreverse('ietf.submit.views.submission_status', kwargs=dict(submission_id=submission.pk)),
'errors': errors,
}, cc=cc)
@ -233,7 +231,7 @@ def add_submission_email(request, remote_ip, name, rev, submission_pk, message,
# create Submission using the name
try:
submission = Submission.objects.create(
state_id="manual-awaiting-draft",
state_id="waiting-for-draft",
remote_ip=remote_ip,
name=name,
rev=rev,

View file

@ -1,4 +1,4 @@
# -*- coding: utf-8 -*-
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import migrations
@ -9,8 +9,8 @@ class Migration(migrations.Migration):
# We can't import the model directly as it may be a newer
# version than this migration expects. We use the historical version.
DraftSubmissionStateName = apps.get_model("name", "DraftSubmissionStateName")
DraftSubmissionStateName.objects.create(slug="manual-awaiting-draft",
name="Manual Post Awaiting Draft",
DraftSubmissionStateName.objects.create(slug="waiting-for-draft",
name="Manual Post Awaiting Draft Upload",
desc="",
used=True,
order=8)

View file

@ -1,4 +1,4 @@
# -*- coding: utf-8 -*-
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import migrations
@ -10,7 +10,7 @@ class Migration(migrations.Migration):
cancelled = DraftSubmissionStateName.objects.get(slug="cancel")
posted = DraftSubmissionStateName.objects.get(slug="posted")
mad = DraftSubmissionStateName.objects.get(slug="manual-awaiting-draft")
mad = DraftSubmissionStateName.objects.get(slug="waiting-for-draft")
mad.next_states.add(cancelled)
mad.next_states.add(posted)

View file

@ -98,7 +98,7 @@ class SubmitTests(TestCase):
self.assertTrue(os.path.exists(settings.IDSUBMIT_IDNITS_BINARY))
# get
url = urlreverse('submit_upload_submission')
url = urlreverse('ietf.submit.views.upload_submission')
r = self.client.get(url)
self.assertEqual(r.status_code, 200)
q = PyQuery(r.content)
@ -645,12 +645,12 @@ class SubmitTests(TestCase):
self.do_submission(name, rev)
# search status page
r = self.client.get(urlreverse("submit_search_submission"))
r = self.client.get(urlreverse("ietf.submit.views.search_submission"))
self.assertEqual(r.status_code, 200)
self.assertTrue("submission status" in unicontent(r))
# search
r = self.client.post(urlreverse("submit_search_submission"), dict(name=name))
r = self.client.post(urlreverse("ietf.submit.views.search_submission"), dict(name=name))
self.assertEqual(r.status_code, 302)
unprivileged_status_url = r['Location']
@ -690,7 +690,7 @@ class SubmitTests(TestCase):
self.do_submission(name, rev)
submission = Submission.objects.get(name=name)
url = urlreverse('submit_submission_status', kwargs=dict(submission_id=submission.pk))
url = urlreverse('ietf.submit.views.submission_status', kwargs=dict(submission_id=submission.pk))
# check we got request full URL button
r = self.client.get(url)
@ -762,17 +762,17 @@ class SubmitTests(TestCase):
self.assertEqual(s.state_id, "cancel")
def test_help_pages(self):
r = self.client.get(urlreverse("submit_note_well"))
r = self.client.get(urlreverse("ietf.submit.views.note_well"))
self.assertEquals(r.status_code, 200)
r = self.client.get(urlreverse("submit_tool_instructions"))
r = self.client.get(urlreverse("ietf.submit.views.tool_instructions"))
self.assertEquals(r.status_code, 200)
def test_blackout_access(self):
make_test_data()
# get
url = urlreverse('submit_upload_submission')
url = urlreverse('ietf.submit.views.upload_submission')
# set meeting to today so we're in blackout period
meeting = Meeting.get_current_meeting()
meeting.date = datetime.datetime.utcnow()
@ -802,7 +802,7 @@ class SubmitTests(TestCase):
self.assertTrue(os.path.exists(settings.IDSUBMIT_IDNITS_BINARY))
# get
url = urlreverse('submit_upload_submission')
url = urlreverse('ietf.submit.views.upload_submission')
r = self.client.get(url)
self.assertEqual(r.status_code, 200)
q = PyQuery(r.content)
@ -850,7 +850,7 @@ class ApprovalsTestCase(TestCase):
def test_approvals(self):
make_test_data()
url = urlreverse('submit_approvals')
url = urlreverse('ietf.submit.views.approvals')
self.client.login(username="marschairman", password="marschairman+password")
Preapproval.objects.create(name="draft-ietf-mars-foo", by=Person.objects.get(user__username="marschairman"))
@ -881,7 +881,7 @@ class ApprovalsTestCase(TestCase):
def test_add_preapproval(self):
make_test_data()
url = urlreverse('submit_add_preapproval')
url = urlreverse('ietf.submit.views.add_preapproval')
login_testing_unauthorized(self, "marschairman", url)
# get
@ -908,7 +908,7 @@ class ApprovalsTestCase(TestCase):
preapproval = Preapproval.objects.create(name="draft-ietf-mars-foo", by=Person.objects.get(user__username="marschairman"))
url = urlreverse('submit_cancel_preapproval', kwargs=dict(preapproval_id=preapproval.pk))
url = urlreverse('ietf.submit.views.cancel_preapproval', kwargs=dict(preapproval_id=preapproval.pk))
login_testing_unauthorized(self, "marschairman", url)
# get
@ -927,7 +927,7 @@ class ManualPostsTestCase(TestCase):
def test_manual_posts(self):
make_test_data()
url = urlreverse('submit_manualpost')
url = urlreverse('ietf.submit.views.manualpost')
# Secretariat has access
self.client.login(username="secretary", password="secretary+password")
@ -949,7 +949,7 @@ class ManualPostsTestCase(TestCase):
self.assertEqual(len(q('.submissions a:contains("draft-ietf-mars-foo")')), 1)
self.assertEqual(len(q('.submissions a:contains("draft-ietf-mars-bar")')), 0)
def test_awaiting_draft(self):
def test_waiting_for_draft(self):
message_string = """To: somebody@ietf.org
From: joe@test.com
Date: {}
@ -970,7 +970,7 @@ Thank you
by = Person.objects.get(name="(System)"),
msgtype = "msgin")
url = urlreverse('submit_manualpost')
url = urlreverse('ietf.submit.views.manualpost')
# Secretariat has access
self.client.login(username="secretary", password="secretary+password")
@ -979,7 +979,7 @@ Thank you
self.assertEqual(r.status_code, 200)
q = PyQuery(r.content)
self.assertEqual(len(q('.awaiting-draft a:contains("draft-my-new-draft")')), 1)
self.assertEqual(len(q('.waiting-for-draft a:contains("draft-my-new-draft")')), 1)
# Same name should raise an error
with self.assertRaises(Exception):
@ -993,7 +993,7 @@ Thank you
msgtype = "msgin")
# Cancel this one
r = self.client.post(urlreverse("submit_cancel_awaiting_draft_by_hash"), {
r = self.client.post(urlreverse("ietf.submit.views.cancel_waiting_for_draft"), {
"submission_id": submission.pk,
"access_token": submission.access_token(),
})
@ -1002,7 +1002,7 @@ Thank you
r = self.client.get(url)
self.assertEqual(r.status_code, 200)
q = PyQuery(r.content)
self.assertEqual(len(q('.awaiting-draft a:contains("draft-my-new-draft")')), 0)
self.assertEqual(len(q('.waiting-for-draft a:contains("draft-my-new-draft")')), 0)
# Should now be able to add it again
submission, submission_email_event = \
@ -1016,7 +1016,7 @@ Thank you
msgtype = "msgin")
def test_awaiting_draft_with_attachment(self):
def test_waiting_for_draft_with_attachment(self):
frm = "joe@test.com"
message_string = """To: somebody@ietf.org
@ -1052,7 +1052,7 @@ ZSBvZiBsaW5lcyAtIGJ1dCBpdCBjb3VsZCBiZSBhIGRyYWZ0Cg==
by = Person.objects.get(name="(System)"),
msgtype = "msgin")
manualpost_page_url = urlreverse('submit_manualpost')
manualpost_page_url = urlreverse('ietf.submit.views.manualpost')
# Secretariat has access
self.client.login(username="secretary", password="secretary+password")
@ -1135,7 +1135,7 @@ ZSBvZiBsaW5lcyAtIGJ1dCBpdCBjb3VsZCBiZSBhIGRyYWZ0Cg==
is_secretariat):
# get the page listing manual posts
r, q = self.request_and_parse(the_url)
selector = "#awaiting-draft a#add-submission-email{}:contains('Add email')". \
selector = "#waiting-for-draft a#add-submission-email{}:contains('Add email')". \
format(submission.pk, submission_name_fragment)
if is_secretariat:
@ -1146,7 +1146,7 @@ ZSBvZiBsaW5lcyAtIGJ1dCBpdCBjb3VsZCBiZSBhIGRyYWZ0Cg==
self.assertEqual(len(q(selector)), 0)
# Find the link for our submission in those awaiting drafts
submission_url = self.get_href(q, "#awaiting-draft a#aw{}:contains({})".
submission_url = self.get_href(q, "#waiting-for-draft a#aw{}:contains({})".
format(submission.pk, submission_name_fragment))
# Follow the link to the status page for this submission
@ -1317,7 +1317,7 @@ Subject: test
# We're not testing the submission process - just the submission status
# get
url = urlreverse('submit_upload_submission')
url = urlreverse('ietf.submit.views.upload_submission')
r = self.client.get(url)
self.assertEqual(r.status_code, 200)
q = PyQuery(r.content)

View file

@ -1,28 +1,29 @@
from django.conf.urls import patterns, url
from django.conf.urls import patterns
from ietf.submit import views
urlpatterns = patterns('ietf.submit.views',
url(r'^$', 'upload_submission', name='submit_upload_submission'),
url(r'^status/$', 'search_submission', name='submit_search_submission'),
url(r'^status/(?P<submission_id>\d+)/$', 'submission_status', name='submit_submission_status'),
url(r'^status/(?P<submission_id>\d+)/edit/$', 'edit_submission', name='submit_edit_submission'),
url(r'^status/(?P<submission_id>\d+)/confirm/(?P<auth_token>[a-f\d]+)/$', 'confirm_submission', name='submit_confirm_submission'),
url(r'^status/(?P<submission_id>\d+)/(?P<access_token>[a-f\d]*)/$', 'submission_status', name='submit_submission_status_by_hash'),
url(r'^status/(?P<submission_id>\d+)/(?P<access_token>[a-f\d]+)/edit/$', 'edit_submission', name='submit_edit_submission_by_hash'),
url(r'^note-well/$', 'note_well', name='submit_note_well'),
url(r'^tool-instructions/$', 'tool_instructions', name='submit_tool_instructions'),
(r'^$', views.upload_submission),
(r'^status/$', views.search_submission),
(r'^status/(?P<submission_id>\d+)/$', views.submission_status),
(r'^status/(?P<submission_id>\d+)/(?P<access_token>[a-f\d]*)/$', views.submission_status),
(r'^status/(?P<submission_id>\d+)/confirm/(?P<auth_token>[a-f\d]+)/$', views.confirm_submission),
(r'^status/(?P<submission_id>\d+)/edit/$', views.edit_submission),
(r'^status/(?P<submission_id>\d+)/(?P<access_token>[a-f\d]+)/edit/$', views.edit_submission),
(r'^note-well/$', views.note_well),
(r'^tool-instructions/$', views.tool_instructions),
url(r'^approvals/$', 'approvals', name='submit_approvals'),
url(r'^approvals/addpreapproval/$', 'add_preapproval', name='submit_add_preapproval'),
url(r'^approvals/cancelpreapproval/(?P<preapproval_id>[a-f\d]+)/$', 'cancel_preapproval', name='submit_cancel_preapproval'),
(r'^approvals/$', views.approvals),
(r'^approvals/addpreapproval/$', views.add_preapproval),
(r'^approvals/cancelpreapproval/(?P<preapproval_id>[a-f\d]+)/$', views.cancel_preapproval),
url(r'^manualpost/addemail$', 'add_manualpost_email', name='submit_manualpost_email'),
url(r'^manualpost/addemail/(?P<submission_id>\d+)/(?P<access_token>[a-f\d]*)/$', 'add_manualpost_email', name='submit_manualpost_email_by_hash'),
url(r'^awaitingdraft/cancel$', 'cancel_awaiting_draft', name='submit_cancel_awaiting_draft_by_hash'),
url(r'^manualpost/$', 'manualpost', name='submit_manualpost'),
url(r'^manualpost/email/(?P<submission_id>\d+)/(?P<message_id>\d+)/$', 'submission_email', name='submit_submission_email'),
url(r'^manualpost/email/(?P<submission_id>\d+)/(?P<message_id>\d+)/(?P<access_token>[a-f\d]*)/$', 'submission_email', name='submit_submission_email_by_hash'),
url(r'^manualpost/sendemail/(?P<submission_id>\d+)/$', 'send_email', name='submission_send_email'),
url(r'^manualpost/replyemail/(?P<submission_id>\d+)/(?P<message_id>\d+)/$', 'send_email', name='submission_reply_email'),
url(r'^manualpost/attachment/(?P<submission_id>\d+)/(?P<message_id>\d+)/(?P<filename>.*)$', 'submission_email_attachment', name='submit_submission_email_attachment'),
(r'^manualpost/$', views.manualpost),
(r'^manualpost/addemail$', views.add_manualpost_email),
(r'^manualpost/addemail/(?P<submission_id>\d+)/(?P<access_token>[a-f\d]*)/$', views.add_manualpost_email),
(r'^manualpost/attachment/(?P<submission_id>\d+)/(?P<message_id>\d+)/(?P<filename>.*)$', views.show_submission_email_attachment),
(r'^manualpost/cancel$', views.cancel_waiting_for_draft),
(r'^manualpost/email/(?P<submission_id>\d+)/(?P<message_id>\d+)/$', views.show_submission_email_message),
(r'^manualpost/email/(?P<submission_id>\d+)/(?P<message_id>\d+)/(?P<access_token>[a-f\d]*)/$', views.show_submission_email_message),
(r'^manualpost/replyemail/(?P<submission_id>\d+)/(?P<message_id>\d+)/$', views.send_submission_email),
(r'^manualpost/sendemail/(?P<submission_id>\d+)/$', views.send_submission_email),
)

View file

@ -103,13 +103,13 @@ def upload_submission(request):
else:
abstract = form.parsed_draft.get_abstract()
# See if there is a Submission in state manual-awaiting-upload
# See if there is a Submission in state waiting-for-draft
# for this revision.
# If so - we're going to update it otherwise we create a new object
submission = Submission.objects.filter(name=form.filename,
rev=form.revision,
state_id = "manual-awaiting-draft").distinct()
state_id = "waiting-for-draft").distinct()
if (len(submission) == 0):
submission = None
elif (len(submission) == 1):
@ -131,7 +131,7 @@ def upload_submission(request):
submission.save()
else:
raise Exception("Multiple submissions awaiting upload")
raise Exception("Multiple submissions found waiting for upload")
if (submission == None):
try:
@ -177,7 +177,7 @@ def upload_submission(request):
create_submission_event(request, submission, desc="Uploaded submission")
docevent_from_submission(request, submission, desc="Uploaded new revision")
return redirect("submit_submission_status_by_hash", submission_id=submission.pk, access_token=submission.access_token())
return redirect("ietf.submit.views.submission_status", submission_id=submission.pk, access_token=submission.access_token())
except IOError as e:
if "read error" in str(e): # The server got an IOError when trying to read POST data
form = SubmissionUploadForm(request=request)
@ -238,7 +238,7 @@ def submission_status(request, submission_id, access_token=None):
can_edit = can_edit_submission(request.user, submission, access_token) and submission.state_id == "uploaded"
can_cancel = (key_matched or is_secretariat) and submission.state.next_states.filter(slug="cancel")
can_group_approve = (is_secretariat or is_chair) and submission.state_id == "grp-appr"
can_force_post = is_secretariat and submission.state.next_states.filter(slug="posted") and submission.state_id != "manual-awaiting-draft"
can_force_post = is_secretariat and submission.state.next_states.filter(slug="posted") and submission.state_id != "waiting-for-draft"
show_send_full_url = not key_matched and not is_secretariat and submission.state_id not in ("cancel", "posted")
addrs = gather_address_lists('sub_confirmation_requested',submission=submission)
@ -330,15 +330,15 @@ def submission_status(request, submission_id, access_token=None):
docevent_from_submission(request, submission, docDesc)
if access_token:
return redirect("submit_submission_status_by_hash", submission_id=submission.pk, access_token=access_token)
return redirect("ietf.submit.views.submission_status", submission_id=submission.pk, access_token=access_token)
else:
return redirect("submit_submission_status", submission_id=submission.pk)
return redirect("ietf.submit.views.submission_status", submission_id=submission.pk)
elif action == "edit" and submission.state_id == "uploaded":
if access_token:
return redirect("submit_edit_submission_by_hash", submission_id=submission.pk, access_token=access_token)
return redirect("ietf.submit.views.edit_submission", submission_id=submission.pk, access_token=access_token)
else:
return redirect("submit_edit_submission", submission_id=submission.pk)
return redirect("ietf.submit.views.edit_submission", submission_id=submission.pk)
elif action == "sendfullurl" and submission.state_id not in ("cancel", "posted"):
sent_to = send_full_url(request, submission)
@ -355,7 +355,7 @@ def submission_status(request, submission_id, access_token=None):
create_submission_event(request, submission, "Cancelled submission")
return redirect("submit_submission_status", submission_id=submission_id)
return redirect("ietf.submit.views.submission_status", submission_id=submission_id)
elif action == "approve" and submission.state_id == "grp-appr":
@ -465,7 +465,7 @@ def edit_submission(request, submission_id, access_token=None):
create_submission_event(request, submission, desc)
return redirect("submit_submission_status", submission_id=submission.pk)
return redirect("ietf.submit.views.submission_status", submission_id=submission.pk)
else:
form_errors = True
else:
@ -547,7 +547,7 @@ def add_preapproval(request):
p.by = request.user.person
p.save()
return HttpResponseRedirect(urlreverse("submit_approvals") + "#preapprovals")
return HttpResponseRedirect(urlreverse("ietf.submit.views.approvals") + "#preapprovals")
else:
form = PreapprovalForm()
@ -566,7 +566,7 @@ def cancel_preapproval(request, preapproval_id):
if request.method == "POST" and request.POST.get("action", "") == "cancel":
preapproval.delete()
return HttpResponseRedirect(urlreverse("submit_approvals") + "#preapprovals")
return HttpResponseRedirect(urlreverse("ietf.submit.views.approvals") + "#preapprovals")
return render(request, 'submit/cancel_preapproval.html',
{'selected': 'approvals',
@ -584,15 +584,15 @@ def manualpost(request):
s.passes_checks = all([ c.passed!=False for c in s.checks.all() ])
s.errors = validate_submission(s)
awaiting_draft = Submission.objects.filter(state_id = "manual-awaiting-draft").distinct()
waiting_for_draft = Submission.objects.filter(state_id = "waiting-for-draft").distinct()
return render(request, 'submit/manual_post.html',
{'manual': manual,
'selected': 'manual_posts',
'awaiting_draft': awaiting_draft})
'waiting_for_draft': waiting_for_draft})
def cancel_awaiting_draft(request):
def cancel_waiting_for_draft(request):
if request.method == 'POST':
can_cancel = has_role(request.user, "Secretariat")
@ -612,7 +612,7 @@ def cancel_awaiting_draft(request):
submission,
"Cancelled submission for rev {}".format(submission.rev))
return redirect("submit_manualpost")
return redirect("ietf.submit.views.manualpost")
@role_required('Secretariat',)
@ -665,7 +665,7 @@ def add_manualpost_email(request, submission_id=None, access_token=None):
e.time = submission_email_event.time
e.save()
return redirect("submit_manualpost")
return redirect("ietf.submit.views.manualpost")
except ValidationError as e:
form = SubmissionEmailForm(request.POST)
form._errors = {}
@ -688,14 +688,14 @@ def add_manualpost_email(request, submission_id=None, access_token=None):
@role_required('Secretariat',)
def send_email(request, submission_id, message_id=None):
def send_submission_email(request, submission_id, message_id=None):
"""Send an email related to a submission"""
submission = get_submission_or_404(submission_id, access_token = None)
if request.method == 'POST':
button_text = request.POST.get('submit', '')
if button_text == 'Cancel':
return redirect('submit_submission_status_by_hash',
return redirect('ietf.submit.views.submission_status',
submission_id=submission.id,
access_token=submission.access_token())
@ -739,7 +739,7 @@ def send_email(request, submission_id, message_id=None):
send_mail_message(None,msg)
messages.success(request, 'Email sent.')
return redirect('submit_submission_status_by_hash',
return redirect('ietf.submit.views.submission_status',
submission_id=submission.id,
access_token=submission.access_token())
@ -789,7 +789,7 @@ def send_email(request, submission_id, message_id=None):
'form':form})
def submission_email(request, submission_id, message_id, access_token=None):
def show_submission_email_message(request, submission_id, message_id, access_token=None):
submission = get_submission_or_404(submission_id, access_token)
submitEmail = get_object_or_404(SubmissionEmail, pk=message_id)
@ -800,7 +800,7 @@ def submission_email(request, submission_id, message_id, access_token=None):
'message': submitEmail,
'attachments': attachments})
def submission_email_attachment(request, submission_id, message_id, filename, access_token=None):
def show_submission_email_attachment(request, submission_id, message_id, filename, access_token=None):
get_submission_or_404(submission_id, access_token)
message = get_object_or_404(SubmissionEmail, pk=message_id)

View file

@ -43,12 +43,12 @@
</a>
<ul class="dropdown-menu" role="menu">
{% endif %}
<li><a href="{% url "submit_upload_submission" %}">Draft submissions</a></li>
<li><a href="{% url "ietf.submit.views.upload_submission" %}">Draft submissions</a></li>
{% if user|has_role:"WG Chair" %}
{% if flavor == "top" %}<li class="divider hidden-xs"></li>{% endif %}
<li {%if flavor == "top" %}class="dropdown-header hidden-xs"{% else %}class="nav-header"{% endif %}>WG chair</li>
<li><a href="{% url "submit_approvals" %}">Approve a draft</a></li>
<li><a href="{% url "ietf.submit.views.approvals" %}">Approve a draft</a></li>
{% endif %}
{% if user and user.is_authenticated %}

View file

@ -46,7 +46,7 @@
{% buttons %}
<button type="submit" class="btn btn-primary">Save</button>
<a class="btn btn-default pull-right" href="{% url "submit_approvals" %}#preapprovals">Back</a>
<a class="btn btn-default pull-right" href="{% url "ietf.submit.views.approvals" %}#preapprovals">Back</a>
{% endbuttons %}
</form>

View file

@ -30,7 +30,7 @@
{% buttons %}
<button type="submit" class="btn btn-primary">Add Email</button>
<a class="btn btn-default pull-right" href="{% url "submit_manualpost" %}">Back</a>
<a class="btn btn-default pull-right" href="{% url "ietf.submit.views.manualpost" %}">Back</a>
{% endbuttons %}
</form>

View file

@ -4,7 +4,7 @@ Hi,
Chair approval is needed for posting of {{ submission.name }}-{{ submission.rev }}.
To approve the draft, go to this URL (note: you need to login to be able to approve):
https://{{ domain }}{% url "submit_submission_status_by_hash" submission_id=submission.pk access_token=submission.access_token %}
https://{{ domain }}{% url "ietf.submit.views.submission_status" submission_id=submission.pk access_token=submission.access_token %}
File name : {{ submission.name }}
Revision : {{ submission.rev }}

View file

@ -28,7 +28,7 @@
<tbody>
{% for s in approvals %}
<tr>
<td><a href="{% url "submit_submission_status_by_hash" submission_id=s.pk access_token=s.access_token %}">{{ s.name }}-{{ s.rev }}</a></td>
<td><a href="{% url "ietf.submit.views.submission_status" submission_id=s.pk access_token=s.access_token %}">{{ s.name }}-{{ s.rev }}</a></td>
<td>{{ s.submission_date }}</td>
</tr>
{% endfor %}
@ -39,7 +39,7 @@
<h2 class="anchor-target" id="preapprovals">Pre-approved drafts not yet submitted</h2>
{% if user|has_role:"Secretariat,WG Chair,RG Chair" %}
<p><a class="btn btn-default" href="{% url "submit_add_preapproval" %}">Add pre-approval</a></p>
<p><a class="btn btn-default" href="{% url "ietf.submit.views.add_preapproval" %}">Add pre-approval</a></p>
{% endif %}
{% if not preapprovals %}
@ -60,7 +60,7 @@
<td>{{ p.name }}</td>
<td>{{ p.time|date:"Y-m-d" }}</td>
<td>{{ p.by }}</td>
<td><a class="btn btn-danger btn-xs" href="{% url "submit_cancel_preapproval" preapproval_id=p.id %}">Cancel</a></td>
<td><a class="btn btn-danger btn-xs" href="{% url "ietf.submit.views.cancel_preapproval" preapproval_id=p.id %}">Cancel</a></td>
</tr>
{% endfor %}
</tbody>
@ -104,4 +104,4 @@
{% block js %}
<script src="{% static "jquery.tablesorter/js/jquery.tablesorter.combined.min.js" %}"></script>
{% endblock %}
{% endblock %}

View file

@ -21,7 +21,7 @@
{% buttons %}
<button type="submit" class="btn btn-danger">Cancel pre-approval</button>
<a class="btn btn-default pull-right" href="{% url "submit_approvals" %}#preapprovals">Back</a>
<a class="btn btn-default pull-right" href="{% url "ietf.submit.views.approvals" %}#preapprovals">Back</a>
{% endbuttons %}
</form>

View file

@ -14,7 +14,7 @@
{% else %}
<p>The submission is not in a state where it can be confirmed.</p>
<p>Go to the <a href="{% url "submit_submission_status" submission_id=submission.pk %}">status page</a>
<p>Go to the <a href="{% url "ietf.submit.views.submission_status" submission_id=submission.pk %}">status page</a>
to see what has happened to it.</p>
{% endif %}
{% else %}
@ -23,7 +23,7 @@
<p class="error">Incorrect authorization key.</p>
<p>Double-check the link you followed. If everything fails, you can go to
the <a href="{% url "submit_submission_status" submission_id=submission.pk %}">status page</a>,
the <a href="{% url "ietf.submit.views.submission_status" submission_id=submission.pk %}">status page</a>,
cancel the submission and try again.</p>
{% else %}
<p>Authorization key accepted.</p>

View file

@ -31,9 +31,9 @@
{% for s in manual %}
<tr>
{% if user.is_authenticated %}
<td><a href="{% url "submit_submission_status_by_hash" submission_id=s.pk access_token=s.access_token %}">{{ s.name }}-{{ s.rev }}</a></td>
<td><a href="{% url "ietf.submit.views.submission_status" submission_id=s.pk access_token=s.access_token %}">{{ s.name }}-{{ s.rev }}</a></td>
{% else %}
<td><a href="{% url "submit_submission_status" submission_id=s.pk %}">{{ s.name }}-{{ s.rev }}</a></td>
<td><a href="{% url "ietf.submit.views.submission_status" submission_id=s.pk %}">{{ s.name }}-{{ s.rev }}</a></td>
{% endif %}
<td>{{ s.submission_date }}</td>
<td>{% if s.passes_checks %}Ok{% else %}Fails{% endif %}</td>
@ -46,10 +46,10 @@
<h2 class="anchor-target" id="approvals">Submissions awaiting draft upload</h2>
{% if not awaiting_draft %}
<p id="no-awaiting-draft">There are no submissions awaiting draft upload.</p>
{% if not waiting_for_draft %}
<p id="no-waiting-for-draft">There are no submissions awaiting draft upload.</p>
{% else %}
<table id="awaiting-draft" class="awaiting-draft table table-condensed table-striped tablesorter">
<table id="waiting-for-draft" class="waiting-for-draft table table-condensed table-striped tablesorter">
<thead>
<tr>
<th>Name</th>
@ -58,12 +58,12 @@
</tr>
</thead>
<tbody>
{% for s in awaiting_draft %}
{% for s in waiting_for_draft %}
<tr>
{% if user.is_authenticated %}
<td><a id="aw{{ s.pk }}" href="{% url "submit_submission_status_by_hash" submission_id=s.pk access_token=s.access_token %}">{{ s.name }}</a></td>
<td><a id="aw{{ s.pk }}" href="{% url "ietf.submit.views.submission_status" submission_id=s.pk access_token=s.access_token %}">{{ s.name }}</a></td>
{% else %}
<td><a id="aw{{ s.pk }}" href="{% url "submit_submission_status" submission_id=s.pk %}">{{ s.name }}</a></td>
<td><a id="aw{{ s.pk }}" href="{% url "ietf.submit.views.submission_status" submission_id=s.pk %}">{{ s.name }}</a></td>
{% endif %}
<td>{{ s.rev }}</td>
<td>{{ s.submission_date }}</td>
@ -79,7 +79,7 @@
</td>
{% endif %}
{% if user|has_role:"Secretariat" %}
<td><a id="add-submission-email{{ s.pk }}" class="btn btn-default btn-xs" href="{% url "submit_manualpost_email_by_hash" submission_id=s.pk access_token=s.access_token %}">Add email</a></td>
<td><a id="add-submission-email{{ s.pk }}" class="btn btn-default btn-xs" href="{% url "ietf.submit.views.add_manualpost_email" submission_id=s.pk access_token=s.access_token %}">Add email</a></td>
{% endif %}
</tr>
{% endfor %}
@ -88,11 +88,11 @@
{% endif %}
{% if user|has_role:"Secretariat" %}
<a id="new-submission-email" class="btn btn-default btn-sm" href="{% url "submit_manualpost_email" %}">New submission from email</a>
<a id="new-submission-email" class="btn btn-default btn-sm" href="{% url "ietf.submit.views.add_manualpost_email" %}">New submission from email</a>
{% endif %}
{% endblock %}
{% block js %}
<script src="{% static "jquery.tablesorter/js/jquery.tablesorter.combined.min.js" %}"></script>
{% endblock %}
{% endblock %}

View file

@ -43,13 +43,13 @@
{% for a in attachments %}
<tr>
<th>Attachment</th>
<td><a id="attach{{ submission.pk }}" href="{% url "submit_submission_email_attachment" submission_id=submission.pk message_id=message.pk filename=a.filename %}">{{ a.filename }}</a></td>
<td><a id="attach{{ submission.pk }}" href="{% url "ietf.submit.views.show_submission_email_attachment" submission_id=submission.pk message_id=message.pk filename=a.filename %}">{{ a.filename }}</a></td>
</tr>
{% endfor %}
{% if user|has_role:"Secretariat" %}
<tr>
<td><a id="reply{{ submission.pk }}" class="btn btn-default" href="{% url "submission_reply_email" submission_id=submission.pk message_id=message.pk %}" title="Reply"><span class="glyphicon glyphicon-envelope" aria-hidden="true"></span> Reply</a></td>
<td><a id="reply{{ submission.pk }}" class="btn btn-default" href="{% url "ietf.submit.views.send_submission_email" submission_id=submission.pk message_id=message.pk %}" title="Reply"><span class="glyphicon glyphicon-envelope" aria-hidden="true"></span> Reply</a></td>
</tr>
{% endif %}
</table>
@ -57,4 +57,4 @@
{% block js %}
<script src="{% static "jquery.tablesorter/js/jquery.tablesorter.combined.min.js" %}"></script>
{% endblock %}
{% endblock %}

View file

@ -101,7 +101,7 @@
</div>
</div>
{% if submission.state_id == "manual-awaiting-draft" %}
{% if submission.state_id == "waiting-for-draft" %}
<p class="alert alert-warning">
This submission is awaiting the first draft upload.
</p>
@ -312,7 +312,7 @@
{% if user|has_role:"Secretariat" %}
<p></p>
<a id="send{{ submission.pk }}" class="btn btn-default" href="{% url "submission_send_email" submission_id=submission.pk %}" title="Email submitter"><span class="glyphicon glyphicon-envelope" aria-hidden="true"></span>Send Email</a>
<a id="send{{ submission.pk }}" class="btn btn-default" href="{% url "ietf.submit.views.send_submission_email" submission_id=submission.pk %}" title="Email submitter"><span class="glyphicon glyphicon-envelope" aria-hidden="true"></span>Send Email</a>
{% endif %}
{% if show_send_full_url %}
@ -353,11 +353,11 @@
{% if user.is_authenticated %}
<td>
{% if e.desc|startswith:"Received message" and user|has_role:"Secretariat" %}
<a id="reply{{ submission.pk }}" class="btn btn-default btn-xs" href="{% url "submission_reply_email" submission_id=submission.pk message_id=e.submissionemail.pk %}" title="Reply"><span class="glyphicon glyphicon-envelope" aria-hidden="true"></span> Reply</a>
<a id="reply{{ submission.pk }}" class="btn btn-default btn-xs" href="{% url "ietf.submit.views.send_submission_email" submission_id=submission.pk message_id=e.submissionemail.pk %}" title="Reply"><span class="glyphicon glyphicon-envelope" aria-hidden="true"></span> Reply</a>
{% endif %}
Email: <a id="aw{{ submission.pk }}-{{ m.pk }}" href="{% url "submit_submission_email_by_hash" submission_id=submission.pk message_id=e.submissionemail.pk access_token=submission.access_token %}">{{ e.desc }}</a></td>
Email: <a id="aw{{ submission.pk }}-{{ m.pk }}" href="{% url "ietf.submit.views.show_submission_email_message" submission_id=submission.pk message_id=e.submissionemail.pk access_token=submission.access_token %}">{{ e.desc }}</a></td>
{% else %}
<td>Email: <a id="aw{{ submission.pk }}-{{ m.pk }}" href="{% url "submit_submission_email" submission_id=submission.pk message_id=e.submissionemail.pk %}">{{ e.desc }}</a></td>
<td>Email: <a id="aw{{ submission.pk }}-{{ m.pk }}" href="{% url "ietf.submit.views.show_submission_email_message" submission_id=submission.pk message_id=e.submissionemail.pk %}">{{ e.desc }}</a></td>
{% endif %}
{% endwith %}
{% else %}

View file

@ -12,22 +12,22 @@
<ul class="nav nav-tabs" role="tablist">
<li {% if selected == "index" %}class="active"{% endif %}>
<a href="{% url "submit_upload_submission" %}">Upload</a>
<a href="{% url "ietf.submit.views.upload_submission" %}">Upload</a>
</li>
<li {% if selected == "status" %}class="active"{% endif %}>
<a href="{% url "submit_search_submission" %}">Status</a>
<a href="{% url "ietf.submit.views.search_submission" %}">Status</a>
</li>
<li {% if selected == "instructions" %}class="active"{% endif %}>
<a href="{% url "submit_tool_instructions" %}">Instructions</a>
<a href="{% url "ietf.submit.views.tool_instructions" %}">Instructions</a>
</li>
<li {% if selected == "notewell" %}class="active"{% endif %}>
<a href="{% url "submit_note_well" %}">Note Well</a>
<a href="{% url "ietf.submit.views.note_well" %}">Note Well</a>
</li>
<li {% if selected == "approvals" %}class="active"{% endif %}>
<a href="{% url "submit_approvals" %}">Approvals</a>
<a href="{% url "ietf.submit.views.approvals" %}">Approvals</a>
</li>
<li {% if selected == "manual_posts" %}class="active"{% endif %}>
<a href="{% url "submit_manualpost" %}">Manual Post Requests</a>
<a href="{% url "ietf.submit.views.manualpost" %}">Manual Post Requests</a>
</li>
</ul>

View file

@ -8,7 +8,7 @@
{% origin %}
<h2>I-D submission tool instructions</h2>
<p><b>Tool URL:</b> <a href="{% url "submit_upload_submission" %}">https://datatracker.ietf.org{% url "submit_upload_submission" %}</a></p>
<p><b>Tool URL:</b> <a href="{% url "ietf.submit.views.upload_submission" %}">https://datatracker.ietf.org{% url "ietf.submit.views.upload_submission" %}</a></p>
<p>
This page will explain the purpose and content of each screen in the I-D Submission Tool, and the actions that result by clicking the form buttons on each screen.