diff --git a/ietf/message/resources.py b/ietf/message/resources.py index 181a3fa56..68f021a08 100644 --- a/ietf/message/resources.py +++ b/ietf/message/resources.py @@ -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 diff --git a/ietf/name/fixtures/names.json b/ietf/name/fixtures/names.json index a9459b728..439d73f2e 100644 --- a/ietf/name/fixtures/names.json +++ b/ietf/name/fixtures/names.json @@ -884,7 +884,7 @@ "desc": "" }, "model": "name.draftsubmissionstatename", - "pk": "manual-awaiting-draft" + "pk": "waiting-for-draft" }, { "fields": { diff --git a/ietf/submit/admin.py b/ietf/submit/admin.py index 4f87ffeb0..9d03928c8 100644 --- a/ietf/submit/admin.py +++ b/ietf/submit/admin.py @@ -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) diff --git a/ietf/submit/forms.py b/ietf/submit/forms.py index 1e30b9736..46699e2b2 100644 --- a/ietf/submit/forms.py +++ b/ietf/submit/forms.py @@ -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: diff --git a/ietf/submit/mail.py b/ietf/submit/mail.py index 86d1e3e65..c2d96732c 100644 --- a/ietf/submit/mail.py +++ b/ietf/submit/mail.py @@ -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, diff --git a/ietf/submit/migrations/0012_auto_20160414_1902.py b/ietf/submit/migrations/0012_auto_20160414_1902.py index d875779c1..2f5315158 100644 --- a/ietf/submit/migrations/0012_auto_20160414_1902.py +++ b/ietf/submit/migrations/0012_auto_20160414_1902.py @@ -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) diff --git a/ietf/submit/migrations/0014_auto_20160627_1945.py b/ietf/submit/migrations/0014_auto_20160627_1945.py index b6152ad8e..45e63bf93 100644 --- a/ietf/submit/migrations/0014_auto_20160627_1945.py +++ b/ietf/submit/migrations/0014_auto_20160627_1945.py @@ -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) diff --git a/ietf/submit/tests.py b/ietf/submit/tests.py index 966f2810b..b55217b57 100644 --- a/ietf/submit/tests.py +++ b/ietf/submit/tests.py @@ -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) diff --git a/ietf/submit/urls.py b/ietf/submit/urls.py index bf7f521e0..b1c8a79ff 100644 --- a/ietf/submit/urls.py +++ b/ietf/submit/urls.py @@ -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), ) diff --git a/ietf/submit/views.py b/ietf/submit/views.py index 78a8ac0c0..cb7fb8a7e 100644 --- a/ietf/submit/views.py +++ b/ietf/submit/views.py @@ -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) diff --git a/ietf/templates/base/menu.html b/ietf/templates/base/menu.html index 823773165..0354c5111 100644 --- a/ietf/templates/base/menu.html +++ b/ietf/templates/base/menu.html @@ -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 %} diff --git a/ietf/templates/submit/add_preapproval.html b/ietf/templates/submit/add_preapproval.html index a81fdf293..408bf4e5f 100644 --- a/ietf/templates/submit/add_preapproval.html +++ b/ietf/templates/submit/add_preapproval.html @@ -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> diff --git a/ietf/templates/submit/add_submit_email.html b/ietf/templates/submit/add_submit_email.html index 234c97d28..c8da0b053 100644 --- a/ietf/templates/submit/add_submit_email.html +++ b/ietf/templates/submit/add_submit_email.html @@ -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> diff --git a/ietf/templates/submit/approval_request.txt b/ietf/templates/submit/approval_request.txt index 191376ad0..83677d166 100644 --- a/ietf/templates/submit/approval_request.txt +++ b/ietf/templates/submit/approval_request.txt @@ -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 }} diff --git a/ietf/templates/submit/approvals.html b/ietf/templates/submit/approvals.html index 3934f78e4..356b50590 100644 --- a/ietf/templates/submit/approvals.html +++ b/ietf/templates/submit/approvals.html @@ -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 %} \ No newline at end of file +{% endblock %} diff --git a/ietf/templates/submit/cancel_preapproval.html b/ietf/templates/submit/cancel_preapproval.html index b0723f0e1..66a581ca2 100644 --- a/ietf/templates/submit/cancel_preapproval.html +++ b/ietf/templates/submit/cancel_preapproval.html @@ -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> diff --git a/ietf/templates/submit/confirm_submission.html b/ietf/templates/submit/confirm_submission.html index 72689acfa..20255d859 100644 --- a/ietf/templates/submit/confirm_submission.html +++ b/ietf/templates/submit/confirm_submission.html @@ -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> diff --git a/ietf/templates/submit/manual_post.html b/ietf/templates/submit/manual_post.html index 4ce2d073b..22803a7ca 100644 --- a/ietf/templates/submit/manual_post.html +++ b/ietf/templates/submit/manual_post.html @@ -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 %} \ No newline at end of file +{% endblock %} diff --git a/ietf/templates/submit/submission_email.html b/ietf/templates/submit/submission_email.html index df4e3e762..0a812057d 100644 --- a/ietf/templates/submit/submission_email.html +++ b/ietf/templates/submit/submission_email.html @@ -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 %} \ No newline at end of file +{% endblock %} diff --git a/ietf/templates/submit/submission_status.html b/ietf/templates/submit/submission_status.html index eb174ed28..7c08dd8bf 100644 --- a/ietf/templates/submit/submission_status.html +++ b/ietf/templates/submit/submission_status.html @@ -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 %} diff --git a/ietf/templates/submit/submit_base.html b/ietf/templates/submit/submit_base.html index d67f863bf..5d77ab8dc 100644 --- a/ietf/templates/submit/submit_base.html +++ b/ietf/templates/submit/submit_base.html @@ -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> diff --git a/ietf/templates/submit/tool_instructions.html b/ietf/templates/submit/tool_instructions.html index 750647af4..df4c1a977 100644 --- a/ietf/templates/submit/tool_instructions.html +++ b/ietf/templates/submit/tool_instructions.html @@ -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.