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 import api
from ietf.message.models import Message, SendQueue, MessageAttachment from ietf.message.models import Message, SendQueue, MessageAttachment
from ietf.person.resources import PersonResource from ietf.person.resources import PersonResource
from ietf.group.resources import GroupResource from ietf.group.resources import GroupResource
from ietf.doc.resources import DocumentResource from ietf.doc.resources import DocumentResource

View file

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

View file

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

View file

@ -226,9 +226,9 @@ class SubmissionUploadForm(forms.Form):
self.group = self.deduce_group() self.group = self.deduce_group()
# check existing # 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: 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 # cut-off
if self.revision == '00' and self.in_first_cut_off: if self.revision == '00' and self.in_first_cut_off:

View file

@ -3,7 +3,6 @@ import email
import datetime import datetime
import base64 import base64
import os import os
import pyzmail import pyzmail
from django.conf import settings 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.utils.mail import send_mail, send_mail_message
from ietf.doc.models import Document from ietf.doc.models import Document
from ietf.ipr.mail import utc_from_string 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.person.models import Person
from ietf.message.models import Message, MessageAttachment from ietf.message.models import Message, MessageAttachment
from ietf.utils.accesstoken import generate_access_token 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 from ietf.submit.models import SubmissionEmail, Submission
def send_submission_confirmation(request, submission, chair_notice=False): 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 from_email = settings.IDSUBMIT_FROM_EMAIL
(to_email, cc) = gather_address_lists('sub_confirmation_requested',submission=submission) (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))) 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('submit_submission_status_by_hash', kwargs=dict(submission_id=submission.pk, access_token=submission.access_token())) 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', 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 subject = 'Full URL for managing submission of draft %s' % submission.name
from_email = settings.IDSUBMIT_FROM_EMAIL from_email = settings.IDSUBMIT_FROM_EMAIL
(to_email, cc) = gather_address_lists('sub_management_url_requested',submission=submission) (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', 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) (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', { send_mail(request, to_email, from_email, subject, 'submit/manual_post_request.txt', {
'submission': submission, '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, 'errors': errors,
}, cc=cc) }, cc=cc)
@ -233,7 +231,7 @@ def add_submission_email(request, remote_ip, name, rev, submission_pk, message,
# create Submission using the name # create Submission using the name
try: try:
submission = Submission.objects.create( submission = Submission.objects.create(
state_id="manual-awaiting-draft", state_id="waiting-for-draft",
remote_ip=remote_ip, remote_ip=remote_ip,
name=name, name=name,
rev=rev, rev=rev,

View file

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

View file

@ -1,4 +1,4 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
from __future__ import unicode_literals from __future__ import unicode_literals
from django.db import migrations from django.db import migrations
@ -10,7 +10,7 @@ class Migration(migrations.Migration):
cancelled = DraftSubmissionStateName.objects.get(slug="cancel") cancelled = DraftSubmissionStateName.objects.get(slug="cancel")
posted = DraftSubmissionStateName.objects.get(slug="posted") 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(cancelled)
mad.next_states.add(posted) mad.next_states.add(posted)

View file

@ -98,7 +98,7 @@ class SubmitTests(TestCase):
self.assertTrue(os.path.exists(settings.IDSUBMIT_IDNITS_BINARY)) self.assertTrue(os.path.exists(settings.IDSUBMIT_IDNITS_BINARY))
# get # get
url = urlreverse('submit_upload_submission') url = urlreverse('ietf.submit.views.upload_submission')
r = self.client.get(url) r = self.client.get(url)
self.assertEqual(r.status_code, 200) self.assertEqual(r.status_code, 200)
q = PyQuery(r.content) q = PyQuery(r.content)
@ -645,12 +645,12 @@ class SubmitTests(TestCase):
self.do_submission(name, rev) self.do_submission(name, rev)
# search status page # 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.assertEqual(r.status_code, 200)
self.assertTrue("submission status" in unicontent(r)) self.assertTrue("submission status" in unicontent(r))
# search # 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) self.assertEqual(r.status_code, 302)
unprivileged_status_url = r['Location'] unprivileged_status_url = r['Location']
@ -690,7 +690,7 @@ class SubmitTests(TestCase):
self.do_submission(name, rev) self.do_submission(name, rev)
submission = Submission.objects.get(name=name) 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 # check we got request full URL button
r = self.client.get(url) r = self.client.get(url)
@ -762,17 +762,17 @@ class SubmitTests(TestCase):
self.assertEqual(s.state_id, "cancel") self.assertEqual(s.state_id, "cancel")
def test_help_pages(self): 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) 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) self.assertEquals(r.status_code, 200)
def test_blackout_access(self): def test_blackout_access(self):
make_test_data() make_test_data()
# get # get
url = urlreverse('submit_upload_submission') url = urlreverse('ietf.submit.views.upload_submission')
# set meeting to today so we're in blackout period # set meeting to today so we're in blackout period
meeting = Meeting.get_current_meeting() meeting = Meeting.get_current_meeting()
meeting.date = datetime.datetime.utcnow() meeting.date = datetime.datetime.utcnow()
@ -802,7 +802,7 @@ class SubmitTests(TestCase):
self.assertTrue(os.path.exists(settings.IDSUBMIT_IDNITS_BINARY)) self.assertTrue(os.path.exists(settings.IDSUBMIT_IDNITS_BINARY))
# get # get
url = urlreverse('submit_upload_submission') url = urlreverse('ietf.submit.views.upload_submission')
r = self.client.get(url) r = self.client.get(url)
self.assertEqual(r.status_code, 200) self.assertEqual(r.status_code, 200)
q = PyQuery(r.content) q = PyQuery(r.content)
@ -850,7 +850,7 @@ class ApprovalsTestCase(TestCase):
def test_approvals(self): def test_approvals(self):
make_test_data() make_test_data()
url = urlreverse('submit_approvals') url = urlreverse('ietf.submit.views.approvals')
self.client.login(username="marschairman", password="marschairman+password") self.client.login(username="marschairman", password="marschairman+password")
Preapproval.objects.create(name="draft-ietf-mars-foo", by=Person.objects.get(user__username="marschairman")) 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): def test_add_preapproval(self):
make_test_data() make_test_data()
url = urlreverse('submit_add_preapproval') url = urlreverse('ietf.submit.views.add_preapproval')
login_testing_unauthorized(self, "marschairman", url) login_testing_unauthorized(self, "marschairman", url)
# get # get
@ -908,7 +908,7 @@ class ApprovalsTestCase(TestCase):
preapproval = Preapproval.objects.create(name="draft-ietf-mars-foo", by=Person.objects.get(user__username="marschairman")) 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) login_testing_unauthorized(self, "marschairman", url)
# get # get
@ -927,7 +927,7 @@ class ManualPostsTestCase(TestCase):
def test_manual_posts(self): def test_manual_posts(self):
make_test_data() make_test_data()
url = urlreverse('submit_manualpost') url = urlreverse('ietf.submit.views.manualpost')
# Secretariat has access # Secretariat has access
self.client.login(username="secretary", password="secretary+password") 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-foo")')), 1)
self.assertEqual(len(q('.submissions a:contains("draft-ietf-mars-bar")')), 0) 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 message_string = """To: somebody@ietf.org
From: joe@test.com From: joe@test.com
Date: {} Date: {}
@ -970,7 +970,7 @@ Thank you
by = Person.objects.get(name="(System)"), by = Person.objects.get(name="(System)"),
msgtype = "msgin") msgtype = "msgin")
url = urlreverse('submit_manualpost') url = urlreverse('ietf.submit.views.manualpost')
# Secretariat has access # Secretariat has access
self.client.login(username="secretary", password="secretary+password") self.client.login(username="secretary", password="secretary+password")
@ -979,7 +979,7 @@ Thank you
self.assertEqual(r.status_code, 200) self.assertEqual(r.status_code, 200)
q = PyQuery(r.content) 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 # Same name should raise an error
with self.assertRaises(Exception): with self.assertRaises(Exception):
@ -993,7 +993,7 @@ Thank you
msgtype = "msgin") msgtype = "msgin")
# Cancel this one # 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, "submission_id": submission.pk,
"access_token": submission.access_token(), "access_token": submission.access_token(),
}) })
@ -1002,7 +1002,7 @@ Thank you
r = self.client.get(url) r = self.client.get(url)
self.assertEqual(r.status_code, 200) self.assertEqual(r.status_code, 200)
q = PyQuery(r.content) 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 # Should now be able to add it again
submission, submission_email_event = \ submission, submission_email_event = \
@ -1016,7 +1016,7 @@ Thank you
msgtype = "msgin") msgtype = "msgin")
def test_awaiting_draft_with_attachment(self): def test_waiting_for_draft_with_attachment(self):
frm = "joe@test.com" frm = "joe@test.com"
message_string = """To: somebody@ietf.org message_string = """To: somebody@ietf.org
@ -1052,7 +1052,7 @@ ZSBvZiBsaW5lcyAtIGJ1dCBpdCBjb3VsZCBiZSBhIGRyYWZ0Cg==
by = Person.objects.get(name="(System)"), by = Person.objects.get(name="(System)"),
msgtype = "msgin") msgtype = "msgin")
manualpost_page_url = urlreverse('submit_manualpost') manualpost_page_url = urlreverse('ietf.submit.views.manualpost')
# Secretariat has access # Secretariat has access
self.client.login(username="secretary", password="secretary+password") self.client.login(username="secretary", password="secretary+password")
@ -1135,7 +1135,7 @@ ZSBvZiBsaW5lcyAtIGJ1dCBpdCBjb3VsZCBiZSBhIGRyYWZ0Cg==
is_secretariat): is_secretariat):
# get the page listing manual posts # get the page listing manual posts
r, q = self.request_and_parse(the_url) 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) format(submission.pk, submission_name_fragment)
if is_secretariat: if is_secretariat:
@ -1146,7 +1146,7 @@ ZSBvZiBsaW5lcyAtIGJ1dCBpdCBjb3VsZCBiZSBhIGRyYWZ0Cg==
self.assertEqual(len(q(selector)), 0) self.assertEqual(len(q(selector)), 0)
# Find the link for our submission in those awaiting drafts # 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)) format(submission.pk, submission_name_fragment))
# Follow the link to the status page for this submission # 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 # We're not testing the submission process - just the submission status
# get # get
url = urlreverse('submit_upload_submission') url = urlreverse('ietf.submit.views.upload_submission')
r = self.client.get(url) r = self.client.get(url)
self.assertEqual(r.status_code, 200) self.assertEqual(r.status_code, 200)
q = PyQuery(r.content) 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', urlpatterns = patterns('ietf.submit.views',
url(r'^$', 'upload_submission', name='submit_upload_submission'), (r'^$', views.upload_submission),
url(r'^status/$', 'search_submission', name='submit_search_submission'), (r'^status/$', views.search_submission),
url(r'^status/(?P<submission_id>\d+)/$', 'submission_status', name='submit_submission_status'), (r'^status/(?P<submission_id>\d+)/$', views.submission_status),
url(r'^status/(?P<submission_id>\d+)/edit/$', 'edit_submission', name='submit_edit_submission'), (r'^status/(?P<submission_id>\d+)/(?P<access_token>[a-f\d]*)/$', views.submission_status),
url(r'^status/(?P<submission_id>\d+)/confirm/(?P<auth_token>[a-f\d]+)/$', 'confirm_submission', name='submit_confirm_submission'), (r'^status/(?P<submission_id>\d+)/confirm/(?P<auth_token>[a-f\d]+)/$', views.confirm_submission),
url(r'^status/(?P<submission_id>\d+)/(?P<access_token>[a-f\d]*)/$', 'submission_status', name='submit_submission_status_by_hash'), (r'^status/(?P<submission_id>\d+)/edit/$', views.edit_submission),
url(r'^status/(?P<submission_id>\d+)/(?P<access_token>[a-f\d]+)/edit/$', 'edit_submission', name='submit_edit_submission_by_hash'), (r'^status/(?P<submission_id>\d+)/(?P<access_token>[a-f\d]+)/edit/$', views.edit_submission),
url(r'^note-well/$', 'note_well', name='submit_note_well'), (r'^note-well/$', views.note_well),
url(r'^tool-instructions/$', 'tool_instructions', name='submit_tool_instructions'), (r'^tool-instructions/$', views.tool_instructions),
url(r'^approvals/$', 'approvals', name='submit_approvals'), (r'^approvals/$', views.approvals),
url(r'^approvals/addpreapproval/$', 'add_preapproval', name='submit_add_preapproval'), (r'^approvals/addpreapproval/$', views.add_preapproval),
url(r'^approvals/cancelpreapproval/(?P<preapproval_id>[a-f\d]+)/$', 'cancel_preapproval', name='submit_cancel_preapproval'), (r'^approvals/cancelpreapproval/(?P<preapproval_id>[a-f\d]+)/$', views.cancel_preapproval),
url(r'^manualpost/addemail$', 'add_manualpost_email', name='submit_manualpost_email'), (r'^manualpost/$', views.manualpost),
url(r'^manualpost/addemail/(?P<submission_id>\d+)/(?P<access_token>[a-f\d]*)/$', 'add_manualpost_email', name='submit_manualpost_email_by_hash'), (r'^manualpost/addemail$', views.add_manualpost_email),
url(r'^awaitingdraft/cancel$', 'cancel_awaiting_draft', name='submit_cancel_awaiting_draft_by_hash'), (r'^manualpost/addemail/(?P<submission_id>\d+)/(?P<access_token>[a-f\d]*)/$', views.add_manualpost_email),
url(r'^manualpost/$', 'manualpost', name='submit_manualpost'), (r'^manualpost/attachment/(?P<submission_id>\d+)/(?P<message_id>\d+)/(?P<filename>.*)$', views.show_submission_email_attachment),
url(r'^manualpost/email/(?P<submission_id>\d+)/(?P<message_id>\d+)/$', 'submission_email', name='submit_submission_email'), (r'^manualpost/cancel$', views.cancel_waiting_for_draft),
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'), (r'^manualpost/email/(?P<submission_id>\d+)/(?P<message_id>\d+)/$', views.show_submission_email_message),
url(r'^manualpost/sendemail/(?P<submission_id>\d+)/$', 'send_email', name='submission_send_email'), (r'^manualpost/email/(?P<submission_id>\d+)/(?P<message_id>\d+)/(?P<access_token>[a-f\d]*)/$', views.show_submission_email_message),
url(r'^manualpost/replyemail/(?P<submission_id>\d+)/(?P<message_id>\d+)/$', 'send_email', name='submission_reply_email'), (r'^manualpost/replyemail/(?P<submission_id>\d+)/(?P<message_id>\d+)/$', views.send_submission_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/sendemail/(?P<submission_id>\d+)/$', views.send_submission_email),
) )

View file

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

View file

@ -43,12 +43,12 @@
</a> </a>
<ul class="dropdown-menu" role="menu"> <ul class="dropdown-menu" role="menu">
{% endif %} {% 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 user|has_role:"WG Chair" %}
{% if flavor == "top" %}<li class="divider hidden-xs"></li>{% endif %} {% 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 {%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 %} {% endif %}
{% if user and user.is_authenticated %} {% if user and user.is_authenticated %}

View file

@ -46,7 +46,7 @@
{% buttons %} {% buttons %}
<button type="submit" class="btn btn-primary">Save</button> <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 %} {% endbuttons %}
</form> </form>

View file

@ -30,7 +30,7 @@
{% buttons %} {% buttons %}
<button type="submit" class="btn btn-primary">Add Email</button> <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 %} {% endbuttons %}
</form> </form>

View file

@ -4,7 +4,7 @@ Hi,
Chair approval is needed for posting of {{ submission.name }}-{{ submission.rev }}. 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): 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 }} File name : {{ submission.name }}
Revision : {{ submission.rev }} Revision : {{ submission.rev }}

View file

@ -28,7 +28,7 @@
<tbody> <tbody>
{% for s in approvals %} {% for s in approvals %}
<tr> <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> <td>{{ s.submission_date }}</td>
</tr> </tr>
{% endfor %} {% endfor %}
@ -39,7 +39,7 @@
<h2 class="anchor-target" id="preapprovals">Pre-approved drafts not yet submitted</h2> <h2 class="anchor-target" id="preapprovals">Pre-approved drafts not yet submitted</h2>
{% if user|has_role:"Secretariat,WG Chair,RG Chair" %} {% 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 %} {% endif %}
{% if not preapprovals %} {% if not preapprovals %}
@ -60,7 +60,7 @@
<td>{{ p.name }}</td> <td>{{ p.name }}</td>
<td>{{ p.time|date:"Y-m-d" }}</td> <td>{{ p.time|date:"Y-m-d" }}</td>
<td>{{ p.by }}</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> </tr>
{% endfor %} {% endfor %}
</tbody> </tbody>
@ -104,4 +104,4 @@
{% block js %} {% block js %}
<script src="{% static "jquery.tablesorter/js/jquery.tablesorter.combined.min.js" %}"></script> <script src="{% static "jquery.tablesorter/js/jquery.tablesorter.combined.min.js" %}"></script>
{% endblock %} {% endblock %}

View file

@ -21,7 +21,7 @@
{% buttons %} {% buttons %}
<button type="submit" class="btn btn-danger">Cancel pre-approval</button> <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 %} {% endbuttons %}
</form> </form>

View file

@ -14,7 +14,7 @@
{% else %} {% else %}
<p>The submission is not in a state where it can be confirmed.</p> <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> to see what has happened to it.</p>
{% endif %} {% endif %}
{% else %} {% else %}
@ -23,7 +23,7 @@
<p class="error">Incorrect authorization key.</p> <p class="error">Incorrect authorization key.</p>
<p>Double-check the link you followed. If everything fails, you can go to <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> cancel the submission and try again.</p>
{% else %} {% else %}
<p>Authorization key accepted.</p> <p>Authorization key accepted.</p>

View file

@ -31,9 +31,9 @@
{% for s in manual %} {% for s in manual %}
<tr> <tr>
{% if user.is_authenticated %} {% 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 %} {% 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 %} {% endif %}
<td>{{ s.submission_date }}</td> <td>{{ s.submission_date }}</td>
<td>{% if s.passes_checks %}Ok{% else %}Fails{% endif %}</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> <h2 class="anchor-target" id="approvals">Submissions awaiting draft upload</h2>
{% if not awaiting_draft %} {% if not waiting_for_draft %}
<p id="no-awaiting-draft">There are no submissions awaiting draft upload.</p> <p id="no-waiting-for-draft">There are no submissions awaiting draft upload.</p>
{% else %} {% 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> <thead>
<tr> <tr>
<th>Name</th> <th>Name</th>
@ -58,12 +58,12 @@
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
{% for s in awaiting_draft %} {% for s in waiting_for_draft %}
<tr> <tr>
{% if user.is_authenticated %} {% 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 %} {% 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 %} {% endif %}
<td>{{ s.rev }}</td> <td>{{ s.rev }}</td>
<td>{{ s.submission_date }}</td> <td>{{ s.submission_date }}</td>
@ -79,7 +79,7 @@
</td> </td>
{% endif %} {% endif %}
{% if user|has_role:"Secretariat" %} {% 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 %} {% endif %}
</tr> </tr>
{% endfor %} {% endfor %}
@ -88,11 +88,11 @@
{% endif %} {% endif %}
{% if user|has_role:"Secretariat" %} {% 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 %} {% endif %}
{% endblock %} {% endblock %}
{% block js %} {% block js %}
<script src="{% static "jquery.tablesorter/js/jquery.tablesorter.combined.min.js" %}"></script> <script src="{% static "jquery.tablesorter/js/jquery.tablesorter.combined.min.js" %}"></script>
{% endblock %} {% endblock %}

View file

@ -43,13 +43,13 @@
{% for a in attachments %} {% for a in attachments %}
<tr> <tr>
<th>Attachment</th> <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> </tr>
{% endfor %} {% endfor %}
{% if user|has_role:"Secretariat" %} {% if user|has_role:"Secretariat" %}
<tr> <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> </tr>
{% endif %} {% endif %}
</table> </table>
@ -57,4 +57,4 @@
{% block js %} {% block js %}
<script src="{% static "jquery.tablesorter/js/jquery.tablesorter.combined.min.js" %}"></script> <script src="{% static "jquery.tablesorter/js/jquery.tablesorter.combined.min.js" %}"></script>
{% endblock %} {% endblock %}

View file

@ -101,7 +101,7 @@
</div> </div>
</div> </div>
{% if submission.state_id == "manual-awaiting-draft" %} {% if submission.state_id == "waiting-for-draft" %}
<p class="alert alert-warning"> <p class="alert alert-warning">
This submission is awaiting the first draft upload. This submission is awaiting the first draft upload.
</p> </p>
@ -312,7 +312,7 @@
{% if user|has_role:"Secretariat" %} {% if user|has_role:"Secretariat" %}
<p></p> <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 %} {% endif %}
{% if show_send_full_url %} {% if show_send_full_url %}
@ -353,11 +353,11 @@
{% if user.is_authenticated %} {% if user.is_authenticated %}
<td> <td>
{% if e.desc|startswith:"Received message" and user|has_role:"Secretariat" %} {% 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 %} {% 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 %} {% 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 %} {% endif %}
{% endwith %} {% endwith %}
{% else %} {% else %}

View file

@ -12,22 +12,22 @@
<ul class="nav nav-tabs" role="tablist"> <ul class="nav nav-tabs" role="tablist">
<li {% if selected == "index" %}class="active"{% endif %}> <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>
<li {% if selected == "status" %}class="active"{% endif %}> <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>
<li {% if selected == "instructions" %}class="active"{% endif %}> <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>
<li {% if selected == "notewell" %}class="active"{% endif %}> <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>
<li {% if selected == "approvals" %}class="active"{% endif %}> <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>
<li {% if selected == "manual_posts" %}class="active"{% endif %}> <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> </li>
</ul> </ul>

View file

@ -8,7 +8,7 @@
{% origin %} {% origin %}
<h2>I-D submission tool instructions</h2> <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> <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. 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.