Cleaned up the remaining explicit url names, using dotted-paths to view

functions instead.  In all almost 700 changes.
 - Legacy-Id: 12923
This commit is contained in:
Henrik Levkowetz 2017-02-26 23:21:49 +00:00
parent 9fb1a8e05f
commit 5f053ad21a
143 changed files with 692 additions and 690 deletions

View file

@ -4,6 +4,6 @@ from ietf.dbtemplate import views
from ietf.utils.urls import url
urlpatterns = [
url(r'^(?P<acronym>[-a-z0-9]+)/$', views.template_list, name='template_list'),
url(r'^(?P<acronym>[-a-z0-9]+)/(?P<template_id>[\d]+)/$', views.template_edit, name='template_edit'),
url(r'^(?P<acronym>[-a-z0-9]+)/$', views.template_list),
url(r'^(?P<acronym>[-a-z0-9]+)/(?P<template_id>[\d]+)/$', views.template_edit),
]

View file

@ -24,7 +24,7 @@ class DocumentChangesFeed(Feed):
def link(self, obj):
if obj is None:
raise FeedDoesNotExist
return urlreverse("doc_history", kwargs=dict(name=obj.canonical_name()))
return urlreverse('ietf.doc.views_doc.document_history', kwargs=dict(name=obj.canonical_name()))
def subtitle(self, obj):
return "History of change entries for %s." % obj.display_name()
@ -47,7 +47,7 @@ class DocumentChangesFeed(Feed):
return unicode(item.by)
def item_link(self, item):
return urlreverse("doc_history", kwargs=dict(name=item.doc.canonical_name())) + "#history-%s" % item.pk
return urlreverse('ietf.doc.views_doc.document_history', kwargs=dict(name=item.doc.canonical_name())) + "#history-%s" % item.pk
class InLastCallFeed(Feed):
title = "Documents in Last Call"

View file

@ -67,7 +67,7 @@ class SearchableDocumentsField(forms.CharField):
# doing this in the constructor is difficult because the URL
# patterns may not have been fully constructed there yet
self.widget.attrs["data-ajax-url"] = urlreverse("ajax_select2_search_docs", kwargs={
self.widget.attrs["data-ajax-url"] = urlreverse('ietf.doc.views_search.ajax_select2_search_docs', kwargs={
"doc_type": self.doc_type,
"model_name": self.model.__name__.lower()
})

View file

@ -500,7 +500,7 @@ def send_review_possibly_replaces_request(request, doc, submitter_info):
dict(doc= doc,
submitter_info=submitter_info,
possibly_replaces=doc.related_that_doc("possibly-replaces"),
review_url=settings.IDTRACKER_BASE_URL + urlreverse("doc_review_possibly_replaces", kwargs={ "name": doc.name })),
review_url=settings.IDTRACKER_BASE_URL + urlreverse('ietf.doc.views_draft.review_possibly_replaces', kwargs={ "name": doc.name })),
cc=list(cc),)
def email_charter_internal_review(request, charter):

View file

@ -449,7 +449,7 @@ def statehelp(state):
"Output help icon with tooltip for state."
from django.core.urlresolvers import reverse as urlreverse
tooltip = escape(strip_tags(state.desc))
url = urlreverse("state_help", kwargs=dict(type=state.type_id)) + "#" + state.slug
url = urlreverse('ietf.doc.views_help.state_help', kwargs=dict(type=state.type_id)) + "#" + state.slug
return mark_safe('<a class="state-help-icon" href="%s" title="%s">?</a>' % (url, tooltip))
@register.filter

View file

@ -40,7 +40,7 @@ class SearchTests(TestCase):
def test_search(self):
draft = make_test_data()
base_url = urlreverse("doc_search")
base_url = urlreverse('ietf.doc.views_search.search')
# only show form, no search yet
r = self.client.get(base_url)
@ -126,72 +126,72 @@ class SearchTests(TestCase):
draft.save_with_history([DocEvent.objects.create(doc=draft, type="changed_document", by=Person.objects.get(user__username="secretary"), desc="Test")])
# exact match
r = self.client.get(urlreverse("doc_search_for_name", kwargs=dict(name=draft.name)))
r = self.client.get(urlreverse('ietf.doc.views_search.search_for_name', kwargs=dict(name=draft.name)))
self.assertEqual(r.status_code, 302)
self.assertEqual(urlparse.urlparse(r["Location"]).path, urlreverse("ietf.doc.views_doc.document_main", kwargs=dict(name=draft.name)))
# prefix match
r = self.client.get(urlreverse("doc_search_for_name", kwargs=dict(name="-".join(draft.name.split("-")[:-1]))))
r = self.client.get(urlreverse('ietf.doc.views_search.search_for_name', kwargs=dict(name="-".join(draft.name.split("-")[:-1]))))
self.assertEqual(r.status_code, 302)
self.assertEqual(urlparse.urlparse(r["Location"]).path, urlreverse("ietf.doc.views_doc.document_main", kwargs=dict(name=draft.name)))
# non-prefix match
r = self.client.get(urlreverse("doc_search_for_name", kwargs=dict(name="-".join(draft.name.split("-")[1:]))))
r = self.client.get(urlreverse('ietf.doc.views_search.search_for_name', kwargs=dict(name="-".join(draft.name.split("-")[1:]))))
self.assertEqual(r.status_code, 302)
self.assertEqual(urlparse.urlparse(r["Location"]).path, urlreverse("ietf.doc.views_doc.document_main", kwargs=dict(name=draft.name)))
# other doctypes than drafts
doc = Document.objects.get(name='charter-ietf-mars')
r = self.client.get(urlreverse("doc_search_for_name", kwargs=dict(name='charter-ietf-ma')))
r = self.client.get(urlreverse('ietf.doc.views_search.search_for_name', kwargs=dict(name='charter-ietf-ma')))
self.assertEqual(r.status_code, 302)
self.assertEqual(urlparse.urlparse(r["Location"]).path, urlreverse("ietf.doc.views_doc.document_main", kwargs=dict(name=doc.name)))
doc = Document.objects.filter(name__startswith='conflict-review-').first()
r = self.client.get(urlreverse("doc_search_for_name", kwargs=dict(name="-".join(doc.name.split("-")[:-1]))))
r = self.client.get(urlreverse('ietf.doc.views_search.search_for_name', kwargs=dict(name="-".join(doc.name.split("-")[:-1]))))
self.assertEqual(r.status_code, 302)
self.assertEqual(urlparse.urlparse(r["Location"]).path, urlreverse("ietf.doc.views_doc.document_main", kwargs=dict(name=doc.name)))
doc = Document.objects.filter(name__startswith='status-change-').first()
r = self.client.get(urlreverse("doc_search_for_name", kwargs=dict(name="-".join(doc.name.split("-")[:-1]))))
r = self.client.get(urlreverse('ietf.doc.views_search.search_for_name', kwargs=dict(name="-".join(doc.name.split("-")[:-1]))))
self.assertEqual(r.status_code, 302)
self.assertEqual(urlparse.urlparse(r["Location"]).path, urlreverse("ietf.doc.views_doc.document_main", kwargs=dict(name=doc.name)))
doc = Document.objects.filter(name__startswith='agenda-').first()
r = self.client.get(urlreverse("doc_search_for_name", kwargs=dict(name="-".join(doc.name.split("-")[:-1]))))
r = self.client.get(urlreverse('ietf.doc.views_search.search_for_name', kwargs=dict(name="-".join(doc.name.split("-")[:-1]))))
self.assertEqual(r.status_code, 302)
self.assertEqual(urlparse.urlparse(r["Location"]).path, urlreverse("ietf.doc.views_doc.document_main", kwargs=dict(name=doc.name)))
doc = Document.objects.filter(name__startswith='minutes-').first()
r = self.client.get(urlreverse("doc_search_for_name", kwargs=dict(name="-".join(doc.name.split("-")[:-1]))))
r = self.client.get(urlreverse('ietf.doc.views_search.search_for_name', kwargs=dict(name="-".join(doc.name.split("-")[:-1]))))
self.assertEqual(r.status_code, 302)
self.assertEqual(urlparse.urlparse(r["Location"]).path, urlreverse("ietf.doc.views_doc.document_main", kwargs=dict(name=doc.name)))
doc = Document.objects.filter(name__startswith='slides-').first()
r = self.client.get(urlreverse("doc_search_for_name", kwargs=dict(name="-".join(doc.name.split("-")[:-1]))))
r = self.client.get(urlreverse('ietf.doc.views_search.search_for_name', kwargs=dict(name="-".join(doc.name.split("-")[:-1]))))
self.assertEqual(r.status_code, 302)
self.assertEqual(urlparse.urlparse(r["Location"]).path, urlreverse("ietf.doc.views_doc.document_main", kwargs=dict(name=doc.name)))
# match with revision
r = self.client.get(urlreverse("doc_search_for_name", kwargs=dict(name=draft.name + "-" + prev_rev)))
r = self.client.get(urlreverse('ietf.doc.views_search.search_for_name', kwargs=dict(name=draft.name + "-" + prev_rev)))
self.assertEqual(r.status_code, 302)
self.assertEqual(urlparse.urlparse(r["Location"]).path, urlreverse("ietf.doc.views_doc.document_main", kwargs=dict(name=draft.name, rev=prev_rev)))
# match with non-existing revision
r = self.client.get(urlreverse("doc_search_for_name", kwargs=dict(name=draft.name + "-09")))
r = self.client.get(urlreverse('ietf.doc.views_search.search_for_name', kwargs=dict(name=draft.name + "-09")))
self.assertEqual(r.status_code, 302)
self.assertEqual(urlparse.urlparse(r["Location"]).path, urlreverse("ietf.doc.views_doc.document_main", kwargs=dict(name=draft.name)))
# match with revision and extension
r = self.client.get(urlreverse("doc_search_for_name", kwargs=dict(name=draft.name + "-" + prev_rev + ".txt")))
r = self.client.get(urlreverse('ietf.doc.views_search.search_for_name', kwargs=dict(name=draft.name + "-" + prev_rev + ".txt")))
self.assertEqual(r.status_code, 302)
self.assertEqual(urlparse.urlparse(r["Location"]).path, urlreverse("ietf.doc.views_doc.document_main", kwargs=dict(name=draft.name, rev=prev_rev)))
# no match
r = self.client.get(urlreverse("doc_search_for_name", kwargs=dict(name="draft-ietf-doesnotexist-42")))
r = self.client.get(urlreverse('ietf.doc.views_search.search_for_name', kwargs=dict(name="draft-ietf-doesnotexist-42")))
self.assertEqual(r.status_code, 302)
parsed = urlparse.urlparse(r["Location"])
self.assertEqual(parsed.path, urlreverse("doc_search"))
self.assertEqual(parsed.path, urlreverse('ietf.doc.views_search.search'))
self.assertEqual(urlparse.parse_qs(parsed.query)["name"][0], "draft-ietf-doesnotexist-42")
def test_frontpage(self):
@ -203,23 +203,23 @@ class SearchTests(TestCase):
def test_drafts_pages(self):
draft = make_test_data()
r = self.client.get(urlreverse("docs_for_ad", kwargs=dict(name=draft.ad.full_name_as_key())))
r = self.client.get(urlreverse('ietf.doc.views_search.docs_for_ad', kwargs=dict(name=draft.ad.full_name_as_key())))
self.assertEqual(r.status_code, 200)
self.assertTrue(draft.title in unicontent(r))
draft.set_state(State.objects.get(type="draft-iesg", slug="lc"))
r = self.client.get(urlreverse("drafts_in_last_call"))
r = self.client.get(urlreverse('ietf.doc.views_search.drafts_in_last_call'))
self.assertEqual(r.status_code, 200)
self.assertTrue(draft.title in unicontent(r))
def test_indexes(self):
draft = make_test_data()
r = self.client.get(urlreverse("index_all_drafts"))
r = self.client.get(urlreverse('ietf.doc.views_search.index_all_drafts'))
self.assertEqual(r.status_code, 200)
self.assertTrue(draft.name in unicontent(r))
r = self.client.get(urlreverse("index_active_drafts"))
r = self.client.get(urlreverse('ietf.doc.views_search.index_active_drafts'))
self.assertEqual(r.status_code, 200)
self.assertTrue(draft.title in unicontent(r))
@ -227,7 +227,7 @@ class SearchTests(TestCase):
draft = make_test_data()
# Document
url = urlreverse("ajax_select2_search_docs", kwargs={
url = urlreverse('ietf.doc.views_search.ajax_select2_search_docs', kwargs={
"model_name": "document",
"doc_type": "draft",
})
@ -239,7 +239,7 @@ class SearchTests(TestCase):
# DocAlias
doc_alias = draft.docalias_set.get()
url = urlreverse("ajax_select2_search_docs", kwargs={
url = urlreverse('ietf.doc.views_search.ajax_select2_search_docs', kwargs={
"model_name": "docalias",
"doc_type": "draft",
})
@ -734,7 +734,7 @@ class DocTestCase(TestCase):
text="This is a note for the RFC Editor.",
by=Person.objects.get(name="(System)"))
url = urlreverse('doc_writeup', kwargs=dict(name=doc.name))
url = urlreverse('ietf.doc.views_doc.document_writeup', kwargs=dict(name=doc.name))
r = self.client.get(url)
self.assertEqual(r.status_code, 200)
self.assertTrue(appr.text in unicontent(r))
@ -750,7 +750,7 @@ class DocTestCase(TestCase):
type="added_comment",
by=Person.objects.get(name="(System)"))
url = urlreverse('doc_history', kwargs=dict(name=doc.name))
url = urlreverse('ietf.doc.views_doc.document_history', kwargs=dict(name=doc.name))
r = self.client.get(url)
self.assertEqual(r.status_code, 200)
self.assertTrue(e.desc in unicontent(r))
@ -790,7 +790,7 @@ class DocTestCase(TestCase):
self.assertTrue(r.status_code, 200)
def test_state_help(self):
url = urlreverse('state_help', kwargs=dict(type="draft-iesg"))
url = urlreverse('ietf.doc.views_help.state_help', kwargs=dict(type="draft-iesg"))
r = self.client.get(url)
self.assertEqual(r.status_code, 200)
self.assertTrue(State.objects.get(type="draft-iesg", slug="lc").name in unicontent(r))
@ -871,7 +871,7 @@ class DocTestCase(TestCase):
class AddCommentTestCase(TestCase):
def test_add_comment(self):
draft = make_test_data()
url = urlreverse('doc_add_comment', kwargs=dict(name=draft.name))
url = urlreverse('ietf.doc.views_doc.add_comment', kwargs=dict(name=draft.name))
login_testing_unauthorized(self, "secretary", url)
# normal get
@ -919,11 +919,11 @@ class ReferencesTest(TestCase):
doc1 = Document.objects.get(name='draft-ietf-mars-test')
doc2 = DocAlias.objects.get(name='draft-imaginary-independent-submission')
RelatedDocument.objects.get_or_create(source=doc1,target=doc2,relationship=DocRelationshipName.objects.get(slug='refnorm'))
url = urlreverse('doc_references', kwargs=dict(name=doc1.name))
url = urlreverse('ietf.doc.views_doc.document_references', kwargs=dict(name=doc1.name))
r = self.client.get(url)
self.assertEquals(r.status_code, 200)
self.assertTrue(doc2.name in unicontent(r))
url = urlreverse('doc_referenced_by', kwargs=dict(name=doc2.name))
url = urlreverse('ietf.doc.views_doc.document_referenced_by', kwargs=dict(name=doc2.name))
r = self.client.get(url)
self.assertEquals(r.status_code, 200)
self.assertTrue(doc1.name in unicontent(r))
@ -963,7 +963,7 @@ expand-draft-ietf-ames-test.all@virtual.ietf.org ames-author@example.ames, ames
os.unlink(self.doc_alias_file.name)
def testAliases(self):
url = urlreverse('doc_specific_email_aliases', kwargs=dict(name="draft-ietf-mars-test"))
url = urlreverse('ietf.doc.urls.redirect.document_email', kwargs=dict(name="draft-ietf-mars-test"))
r = self.client.get(url)
self.assertEqual(r.status_code, 302)

View file

@ -141,7 +141,7 @@ class EditPositionTests(TestCase):
comment="Test!",
comment_time=datetime.datetime.now())
url = urlreverse('doc_send_ballot_comment', kwargs=dict(name=draft.name,
url = urlreverse('ietf.doc.views_ballot.send_ballot_comment', kwargs=dict(name=draft.name,
ballot_id=ballot.pk))
login_testing_unauthorized(self, "ad", url)
@ -185,7 +185,7 @@ class EditPositionTests(TestCase):
class BallotWriteupsTests(TestCase):
def test_edit_last_call_text(self):
draft = make_test_data()
url = urlreverse('doc_ballot_lastcall', kwargs=dict(name=draft.name))
url = urlreverse('ietf.doc.views_ballot.lastcalltext', kwargs=dict(name=draft.name))
login_testing_unauthorized(self, "secretary", url)
# normal get
@ -225,7 +225,7 @@ class BallotWriteupsTests(TestCase):
def test_request_last_call(self):
draft = make_test_data()
url = urlreverse('doc_ballot_lastcall', kwargs=dict(name=draft.name))
url = urlreverse('ietf.doc.views_ballot.lastcalltext', kwargs=dict(name=draft.name))
login_testing_unauthorized(self, "secretary", url)
# give us an announcement to send
@ -250,7 +250,7 @@ class BallotWriteupsTests(TestCase):
def test_edit_ballot_writeup(self):
draft = make_test_data()
url = urlreverse('doc_ballot_writeupnotes', kwargs=dict(name=draft.name))
url = urlreverse('ietf.doc.views_ballot.ballot_writeupnotes', kwargs=dict(name=draft.name))
login_testing_unauthorized(self, "secretary", url)
# add a IANA review note
@ -279,7 +279,7 @@ class BallotWriteupsTests(TestCase):
def test_edit_ballot_rfceditornote(self):
draft = make_test_data()
url = urlreverse('doc_ballot_rfceditornote', kwargs=dict(name=draft.name))
url = urlreverse('ietf.doc.views_ballot.ballot_rfceditornote', kwargs=dict(name=draft.name))
login_testing_unauthorized(self, "secretary", url)
# add a note to the RFC Editor
@ -318,7 +318,7 @@ class BallotWriteupsTests(TestCase):
def test_issue_ballot(self):
draft = make_test_data()
url = urlreverse('doc_ballot_writeupnotes', kwargs=dict(name=draft.name))
url = urlreverse('ietf.doc.views_ballot.ballot_writeupnotes', kwargs=dict(name=draft.name))
login_testing_unauthorized(self, "ad", url)
@ -340,7 +340,7 @@ class BallotWriteupsTests(TestCase):
def test_edit_approval_text(self):
draft = make_test_data()
url = urlreverse('doc_ballot_approvaltext', kwargs=dict(name=draft.name))
url = urlreverse('ietf.doc.views_ballot.ballot_approvaltext', kwargs=dict(name=draft.name))
login_testing_unauthorized(self, "secretary", url)
# normal get
@ -427,7 +427,7 @@ class BallotWriteupsTests(TestCase):
events.append(e)
# IETF Stream Documents
for p in ['doc_ballot_approvaltext','doc_ballot_writeupnotes','doc_ballot_rfceditornote']:
for p in ['ietf.doc.views_ballot.ballot_approvaltext','ietf.doc.views_ballot.ballot_writeupnotes','ietf.doc.views_ballot.ballot_rfceditornote']:
url = urlreverse(p, kwargs=dict(name=draft.name))
for username in ['plain','marschairman','iab chair','irtf chair','ise','iana']:
@ -439,7 +439,7 @@ class BallotWriteupsTests(TestCase):
# RFC Editor Notes for documents in the IAB Stream
draft.stream_id = 'iab'
draft.save_with_history(events)
url = urlreverse('doc_ballot_rfceditornote', kwargs=dict(name=draft.name))
url = urlreverse('ietf.doc.views_ballot.ballot_rfceditornote', kwargs=dict(name=draft.name))
for username in ['plain','marschairman','ad','irtf chair','ise','iana']:
verify_fail(username, url)
@ -454,7 +454,7 @@ class BallotWriteupsTests(TestCase):
draft.stream_id = 'irtf'
draft.save_with_history([e])
url = urlreverse('doc_ballot_rfceditornote', kwargs=dict(name=draft.name))
url = urlreverse('ietf.doc.views_ballot.ballot_rfceditornote', kwargs=dict(name=draft.name))
for username in ['plain','marschairman','ad','iab chair','ise','iana']:
verify_fail(username, url)
@ -469,7 +469,7 @@ class BallotWriteupsTests(TestCase):
draft.stream_id = 'ise'
draft.save_with_history([e])
url = urlreverse('doc_ballot_rfceditornote', kwargs=dict(name=draft.name))
url = urlreverse('ietf.doc.views_ballot.ballot_rfceditornote', kwargs=dict(name=draft.name))
for username in ['plain','marschairman','ad','iab chair','irtf chair','iana']:
verify_fail(username, url)
@ -482,7 +482,7 @@ class ApproveBallotTests(TestCase):
draft = make_test_data()
draft.set_state(State.objects.get(used=True, type="draft-iesg", slug="iesg-eva")) # make sure it's approvable
url = urlreverse('doc_approve_ballot', kwargs=dict(name=draft.name))
url = urlreverse('ietf.doc.views_ballot.approve_ballot', kwargs=dict(name=draft.name))
login_testing_unauthorized(self, "secretary", url)
# normal get
@ -532,7 +532,7 @@ class ApproveBallotTests(TestCase):
draft = make_test_data()
draft.set_state(State.objects.get(used=True, type="draft-iesg", slug="nopubadw"))
url = urlreverse('doc_approve_ballot', kwargs=dict(name=draft.name))
url = urlreverse('ietf.doc.views_ballot.approve_ballot', kwargs=dict(name=draft.name))
login_testing_unauthorized(self, "secretary", url)
# disapprove (the Martians aren't going to be happy)
@ -551,7 +551,7 @@ class MakeLastCallTests(TestCase):
draft = make_test_data()
draft.set_state(State.objects.get(used=True, type="draft-iesg", slug="lc-req"))
url = urlreverse('doc_make_last_call', kwargs=dict(name=draft.name))
url = urlreverse('ietf.doc.views_ballot.make_last_call', kwargs=dict(name=draft.name))
login_testing_unauthorized(self, "secretary", url)
# normal get
@ -591,7 +591,7 @@ class DeferUndeferTestCase(TestCase):
def helper_test_defer(self,name):
doc = Document.objects.get(name=name)
url = urlreverse('doc_defer_ballot',kwargs=dict(name=doc.name))
url = urlreverse('ietf.doc.views_ballot.defer_ballot',kwargs=dict(name=doc.name))
login_testing_unauthorized(self, "ad", url)
@ -651,7 +651,7 @@ class DeferUndeferTestCase(TestCase):
def helper_test_undefer(self,name):
doc = Document.objects.get(name=name)
url = urlreverse('doc_undefer_ballot',kwargs=dict(name=doc.name))
url = urlreverse('ietf.doc.views_ballot.undefer_ballot',kwargs=dict(name=doc.name))
login_testing_unauthorized(self, "ad", url)
@ -735,7 +735,7 @@ class RegenerateLastCallTestCase(TestCase):
intended_std_level_id='ps',
)
url = urlreverse('doc_ballot_lastcall', kwargs=dict(name=draft.name))
url = urlreverse('ietf.doc.views_ballot.lastcalltext', kwargs=dict(name=draft.name))
login_testing_unauthorized(self, "secretary", url)
r = self.client.get(url)
self.assertEqual(r.status_code, 200)

View file

@ -46,7 +46,7 @@ class EditCharterTests(TestCase):
for option in ("recharter", "abandon"):
self.client.logout()
url = urlreverse('charter_startstop_process', kwargs=dict(name=charter.name, option=option))
url = urlreverse('ietf.doc.views_charter.change_state', kwargs=dict(name=charter.name, option=option))
login_testing_unauthorized(self, "secretary", url)
# normal get
@ -69,7 +69,7 @@ class EditCharterTests(TestCase):
group = Group.objects.get(acronym="ames")
charter = group.charter
url = urlreverse('charter_change_state', kwargs=dict(name=charter.name))
url = urlreverse('ietf.doc.views_charter.change_state', kwargs=dict(name=charter.name))
login_testing_unauthorized(self, "secretary", url)
first_state = charter.get_state()
@ -149,7 +149,7 @@ class EditCharterTests(TestCase):
# Exercise internal review of a recharter
group = Group.objects.get(acronym="mars")
charter = group.charter
url = urlreverse('charter_change_state', kwargs=dict(name=charter.name))
url = urlreverse('ietf.doc.views_charter.change_state', kwargs=dict(name=charter.name))
empty_outbox()
r = self.client.post(url, dict(charter_state=str(State.objects.get(used=True,type="charter",slug="intrev").pk), message="test"))
self.assertEqual(r.status_code, 302)
@ -161,7 +161,7 @@ class EditCharterTests(TestCase):
group = Group.objects.get(acronym="mars")
charter = group.charter
url = urlreverse('charter_telechat_date', kwargs=dict(name=charter.name))
url = urlreverse('ietf.doc.views_doc.telechat_date;charter', kwargs=dict(name=charter.name))
login_testing_unauthorized(self, "secretary", url)
# get
@ -199,7 +199,7 @@ class EditCharterTests(TestCase):
group = Group.objects.get(acronym="ames")
charter = group.charter
url = urlreverse('charter_telechat_date', kwargs=dict(name=charter.name))
url = urlreverse('ietf.doc.views_doc.telechat_date;charter', kwargs=dict(name=charter.name))
login_testing_unauthorized(self, "secretary", url)
login = Person.objects.get(user__username="secretary")
@ -228,7 +228,7 @@ class EditCharterTests(TestCase):
charter = Group.objects.get(acronym="mars").charter
url = urlreverse('charter_edit_notify', kwargs=dict(name=charter.name))
url = urlreverse('ietf.doc.views_doc.edit_notify;charter', kwargs=dict(name=charter.name))
login_testing_unauthorized(self, "secretary", url)
# get
@ -259,7 +259,7 @@ class EditCharterTests(TestCase):
charter = Group.objects.get(acronym="mars").charter
url = urlreverse('charter_edit_ad', kwargs=dict(name=charter.name))
url = urlreverse('ietf.doc.views_charter.edit_ad', kwargs=dict(name=charter.name))
login_testing_unauthorized(self, "secretary", url)
# normal get
@ -283,7 +283,7 @@ class EditCharterTests(TestCase):
group = Group.objects.get(acronym="mars")
charter = group.charter
url = urlreverse('charter_submit', kwargs=dict(name=charter.name))
url = urlreverse('ietf.doc.views_charter.submit', kwargs=dict(name=charter.name))
login_testing_unauthorized(self, "secretary", url)
# normal get
@ -330,7 +330,7 @@ class EditCharterTests(TestCase):
charter.delete()
charter = None
url = urlreverse('charter_submit', kwargs=dict(name=charter_name_for_group(group)))
url = urlreverse('ietf.doc.views_charter.submit', kwargs=dict(name=charter_name_for_group(group)))
login_testing_unauthorized(self, "secretary", url)
# normal get
@ -495,7 +495,7 @@ class EditCharterTests(TestCase):
group = Group.objects.get(acronym="ames")
charter = group.charter
url = urlreverse('charter_approve', kwargs=dict(name=charter.name))
url = urlreverse('ietf.doc.views_charter.approve', kwargs=dict(name=charter.name))
login_testing_unauthorized(self, "secretary", url)
self.write_charter_file(charter)
@ -594,7 +594,7 @@ class EditCharterTests(TestCase):
due=datetime.date.today(),
resolved="")
url = urlreverse('charter_with_milestones_txt', kwargs=dict(name=charter.name, rev=charter.rev))
url = urlreverse('ietf.doc.views_charter.charter_with_milestones_txt', kwargs=dict(name=charter.name, rev=charter.rev))
r = self.client.get(url)
self.assertEqual(r.status_code, 200)
self.assertTrue(m.desc in unicontent(r))

View file

@ -25,7 +25,7 @@ class ConflictReviewTests(TestCase):
def test_start_review_as_secretary(self):
doc = Document.objects.get(name='draft-imaginary-independent-submission')
url = urlreverse('conflict_review_start',kwargs=dict(name=doc.name))
url = urlreverse('ietf.doc.views_conflict_review.start_review',kwargs=dict(name=doc.name))
login_testing_unauthorized(self, "secretary", url)
@ -80,7 +80,7 @@ class ConflictReviewTests(TestCase):
def test_start_review_as_stream_owner(self):
doc = Document.objects.get(name='draft-imaginary-independent-submission')
url = urlreverse('conflict_review_start',kwargs=dict(name=doc.name))
url = urlreverse('ietf.doc.views_conflict_review.start_review',kwargs=dict(name=doc.name))
login_testing_unauthorized(self, "ise-chair", url)
@ -129,7 +129,7 @@ class ConflictReviewTests(TestCase):
def test_change_state(self):
doc = Document.objects.get(name='conflict-review-imaginary-irtf-submission')
url = urlreverse('conflict_review_change_state',kwargs=dict(name=doc.name))
url = urlreverse('ietf.doc.views_conflict_review.change_state',kwargs=dict(name=doc.name))
login_testing_unauthorized(self, "ad", url)
@ -167,7 +167,7 @@ class ConflictReviewTests(TestCase):
def test_edit_notices(self):
doc = Document.objects.get(name='conflict-review-imaginary-irtf-submission')
url = urlreverse('conflict_review_notices',kwargs=dict(name=doc.name))
url = urlreverse('ietf.doc.views_doc.edit_notify;conflict-review',kwargs=dict(name=doc.name))
login_testing_unauthorized(self, "ad", url)
@ -197,7 +197,7 @@ class ConflictReviewTests(TestCase):
def test_edit_ad(self):
doc = Document.objects.get(name='conflict-review-imaginary-irtf-submission')
url = urlreverse('conflict_review_ad',kwargs=dict(name=doc.name))
url = urlreverse('ietf.doc.views_conflict_review.edit_ad',kwargs=dict(name=doc.name))
login_testing_unauthorized(self, "ad", url)
@ -218,7 +218,7 @@ class ConflictReviewTests(TestCase):
def test_edit_telechat_date(self):
doc = Document.objects.get(name='conflict-review-imaginary-irtf-submission')
url = urlreverse('conflict_review_telechat_date',kwargs=dict(name=doc.name))
url = urlreverse('ietf.doc.views_doc.telechat_date;conflict-review',kwargs=dict(name=doc.name))
login_testing_unauthorized(self, "ad", url)
@ -263,7 +263,7 @@ class ConflictReviewTests(TestCase):
def approve_test_helper(self,approve_type):
doc = Document.objects.get(name='conflict-review-imaginary-irtf-submission')
url = urlreverse('conflict_review_approve',kwargs=dict(name=doc.name))
url = urlreverse('ietf.doc.views_conflict_review.approve',kwargs=dict(name=doc.name))
login_testing_unauthorized(self, "secretary", url)
@ -314,7 +314,7 @@ class ConflictReviewTests(TestCase):
class ConflictReviewSubmitTests(TestCase):
def test_initial_submission(self):
doc = Document.objects.get(name='conflict-review-imaginary-irtf-submission')
url = urlreverse('conflict_review_submit',kwargs=dict(name=doc.name))
url = urlreverse('ietf.doc.views_conflict_review.submit',kwargs=dict(name=doc.name))
login_testing_unauthorized(self, "ad", url)
# normal get
@ -341,7 +341,7 @@ class ConflictReviewSubmitTests(TestCase):
def test_subsequent_submission(self):
doc = Document.objects.get(name='conflict-review-imaginary-irtf-submission')
url = urlreverse('conflict_review_submit',kwargs=dict(name=doc.name))
url = urlreverse('ietf.doc.views_conflict_review.submit',kwargs=dict(name=doc.name))
login_testing_unauthorized(self, "ad", url)
# A little additional setup

View file

@ -32,7 +32,7 @@ class ChangeStateTests(TestCase):
draft.set_state(State.objects.get(used=True, type="draft-iesg", slug="iesg-eva"))
draft.tags.add("point")
url = urlreverse('doc_change_state', kwargs=dict(name=draft.name))
url = urlreverse('ietf.doc.views_draft.change_state', kwargs=dict(name=draft.name))
login_testing_unauthorized(self, "ad", url)
# normal get
@ -71,7 +71,7 @@ class ChangeStateTests(TestCase):
draft = make_test_data()
draft.set_state(State.objects.get(used=True, type="draft-iesg", slug="ad-eval"))
url = urlreverse('doc_change_state', kwargs=dict(name=draft.name))
url = urlreverse('ietf.doc.views_draft.change_state', kwargs=dict(name=draft.name))
login_testing_unauthorized(self, "secretary", url)
first_state = draft.get_state("draft-iesg")
@ -130,7 +130,7 @@ class ChangeStateTests(TestCase):
draft = make_test_data()
draft.set_state(State.objects.get(used=True, type="draft-iesg", slug="rfcqueue"))
url = urlreverse('doc_change_state', kwargs=dict(name=draft.name))
url = urlreverse('ietf.doc.views_draft.change_state', kwargs=dict(name=draft.name))
login_testing_unauthorized(self, "secretary", url)
# change state
@ -165,7 +165,7 @@ class ChangeStateTests(TestCase):
next_state = State.objects.get(used=True, type="draft-iana-review", slug="ok-noact")
draft.set_state(first_state)
url = urlreverse('doc_change_iana_state', kwargs=dict(name=draft.name, state_type="iana-review"))
url = urlreverse('ietf.doc.views_draft.change_iana_state', kwargs=dict(name=draft.name, state_type="iana-review"))
login_testing_unauthorized(self, "iana", url)
# normal get
@ -194,7 +194,7 @@ class ChangeStateTests(TestCase):
draft.set_state(State.objects.get(used=True, type="draft-iesg", slug="ad-eval"))
self.client.login(username="secretary", password="secretary+password")
url = urlreverse('doc_change_state', kwargs=dict(name=draft.name))
url = urlreverse('ietf.doc.views_draft.change_state', kwargs=dict(name=draft.name))
empty_outbox()
@ -238,7 +238,7 @@ class ChangeStateTests(TestCase):
class EditInfoTests(TestCase):
def test_edit_info(self):
draft = make_test_data()
url = urlreverse('doc_edit_info', kwargs=dict(name=draft.name))
url = urlreverse('ietf.doc.views_draft.edit_info', kwargs=dict(name=draft.name))
login_testing_unauthorized(self, "secretary", url)
# normal get
@ -283,7 +283,7 @@ class EditInfoTests(TestCase):
def test_edit_telechat_date(self):
draft = make_test_data()
url = urlreverse('doc_edit_info', kwargs=dict(name=draft.name))
url = urlreverse('ietf.doc.views_draft.edit_info', kwargs=dict(name=draft.name))
login_testing_unauthorized(self, "secretary", url)
data = dict(intended_std_level=str(draft.intended_std_level_id),
@ -381,7 +381,7 @@ class EditInfoTests(TestCase):
order=1
)
url = urlreverse('doc_edit_info', kwargs=dict(name=draft.name))
url = urlreverse('ietf.doc.views_draft.edit_info', kwargs=dict(name=draft.name))
login_testing_unauthorized(self, "secretary", url)
# normal get
@ -440,7 +440,7 @@ class EditInfoTests(TestCase):
def test_edit_consensus(self):
draft = make_test_data()
url = urlreverse('doc_edit_consensus', kwargs=dict(name=draft.name))
url = urlreverse('ietf.doc.views_draft.edit_consensus', kwargs=dict(name=draft.name))
login_testing_unauthorized(self, "secretary", url)
# get
@ -481,7 +481,7 @@ class ResurrectTests(TestCase):
draft = make_test_data()
draft.set_state(State.objects.get(used=True, type="draft", slug="expired"))
url = urlreverse('doc_request_resurrect', kwargs=dict(name=draft.name))
url = urlreverse('ietf.doc.views_draft.request_resurrect', kwargs=dict(name=draft.name))
login_testing_unauthorized(self, "ad", url)
@ -517,7 +517,7 @@ class ResurrectTests(TestCase):
type="requested_resurrect",
by=Person.objects.get(name="Areað Irector"))
url = urlreverse('doc_resurrect', kwargs=dict(name=draft.name))
url = urlreverse('ietf.doc.views_draft.resurrect', kwargs=dict(name=draft.name))
login_testing_unauthorized(self, "secretary", url)
@ -773,7 +773,7 @@ class ExpireLastCallTests(TestCase):
class IndividualInfoFormsTests(TestCase):
def test_doc_change_stream(self):
url = urlreverse('doc_change_stream', kwargs=dict(name=self.docname))
url = urlreverse('ietf.doc.views_draft.change_stream', kwargs=dict(name=self.docname))
login_testing_unauthorized(self, "secretary", url)
# get
@ -804,7 +804,7 @@ class IndividualInfoFormsTests(TestCase):
self.assertTrue('rfc-ise@' in outbox[0]['To'])
def test_doc_change_notify(self):
url = urlreverse('doc_change_notify', kwargs=dict(name=self.docname))
url = urlreverse('ietf.doc.views_doc.edit_notify', kwargs=dict(name=self.docname))
login_testing_unauthorized(self, "secretary", url)
# get
@ -829,7 +829,7 @@ class IndividualInfoFormsTests(TestCase):
self.assertEqual(None,q('form input[name=notify]')[0].value)
def test_doc_change_intended_status(self):
url = urlreverse('doc_change_intended_status', kwargs=dict(name=self.docname))
url = urlreverse('ietf.doc.views_draft.change_intention', kwargs=dict(name=self.docname))
login_testing_unauthorized(self, "secretary", url)
# get
@ -858,7 +858,7 @@ class IndividualInfoFormsTests(TestCase):
self.assertTrue('ZpyQFGmA' in self.doc.latest_event(DocEvent,type='added_comment').desc)
def test_doc_change_telechat_date(self):
url = urlreverse('doc_change_telechat_date', kwargs=dict(name=self.docname))
url = urlreverse('ietf.doc.views_doc.telechat_date', kwargs=dict(name=self.docname))
login_testing_unauthorized(self, "secretary", url)
# get
@ -886,7 +886,7 @@ class IndividualInfoFormsTests(TestCase):
self.assertEqual(self.doc.latest_event(TelechatDocEvent, "scheduled_for_telechat").telechat_date,None)
def test_doc_change_iesg_note(self):
url = urlreverse('doc_change_iesg_note', kwargs=dict(name=self.docname))
url = urlreverse('ietf.doc.views_draft.edit_iesg_note', kwargs=dict(name=self.docname))
login_testing_unauthorized(self, "secretary", url)
# get
@ -903,7 +903,7 @@ class IndividualInfoFormsTests(TestCase):
self.assertTrue('ZpyQFGmA' in self.doc.latest_event(DocEvent,type='added_comment').desc)
def test_doc_change_ad(self):
url = urlreverse('doc_change_ad', kwargs=dict(name=self.docname))
url = urlreverse('ietf.doc.views_draft.edit_ad', kwargs=dict(name=self.docname))
login_testing_unauthorized(self, "secretary", url)
# get
@ -924,7 +924,7 @@ class IndividualInfoFormsTests(TestCase):
self.doc.shepherd = None
self.doc.save_with_history([DocEvent.objects.create(doc=self.doc, type="changed_shepherd", by=Person.objects.get(user__username="secretary"), desc="Test")])
url = urlreverse('doc_edit_shepherd',kwargs=dict(name=self.docname))
url = urlreverse('ietf.doc.views_draft.edit_shepherd',kwargs=dict(name=self.docname))
login_testing_unauthorized(self, "plain", url)
@ -976,7 +976,7 @@ class IndividualInfoFormsTests(TestCase):
self.doc.shepherd = None
self.doc.save_with_history([DocEvent.objects.create(doc=self.doc, type="changed_shepherd", by=Person.objects.get(user__username="secretary"), desc="Test")])
url = urlreverse('doc_change_shepherd_email',kwargs=dict(name=self.docname))
url = urlreverse('ietf.doc.views_draft.change_shepherd_email',kwargs=dict(name=self.docname))
r = self.client.get(url)
self.assertEqual(r.status_code, 404)
@ -1008,7 +1008,7 @@ class IndividualInfoFormsTests(TestCase):
def test_doc_view_shepherd_writeup(self):
url = urlreverse('doc_shepherd_writeup',kwargs=dict(name=self.docname))
url = urlreverse('ietf.doc.views_doc.document_shepherd_writeup',kwargs=dict(name=self.docname))
# get as a shepherd
self.client.login(username="plain", password="plain+password")
@ -1028,7 +1028,7 @@ class IndividualInfoFormsTests(TestCase):
self.assertEqual(len(q('#content a:contains("Edit")')), 0)
def test_doc_change_shepherd_writeup(self):
url = urlreverse('doc_edit_shepherd_writeup',kwargs=dict(name=self.docname))
url = urlreverse('ietf.doc.views_draft.edit_shepherd_writeup',kwargs=dict(name=self.docname))
# get
login_testing_unauthorized(self, "secretary", url)
@ -1079,7 +1079,7 @@ class SubmitToIesgTests(TestCase):
q = PyQuery(r.content)
self.assertEqual(len(q('form input[name="confirm"]')),1)
url = urlreverse('doc_to_iesg', kwargs=dict(name=self.docname))
url = urlreverse('ietf.doc.views_draft.to_iesg', kwargs=dict(name=self.docname))
for username in [None,'plain','iana','iab chair']:
verify_fail(username)
@ -1088,7 +1088,7 @@ class SubmitToIesgTests(TestCase):
verify_can_see(username)
def test_cancel_submission(self):
url = urlreverse('doc_to_iesg', kwargs=dict(name=self.docname))
url = urlreverse('ietf.doc.views_draft.to_iesg', kwargs=dict(name=self.docname))
self.client.login(username="marschairman", password="marschairman+password")
r = self.client.post(url, dict(cancel="1"))
@ -1098,7 +1098,7 @@ class SubmitToIesgTests(TestCase):
self.assertTrue(doc.get_state('draft-iesg')==None)
def test_confirm_submission(self):
url = urlreverse('doc_to_iesg', kwargs=dict(name=self.docname))
url = urlreverse('ietf.doc.views_draft.to_iesg', kwargs=dict(name=self.docname))
self.client.login(username="marschairman", password="marschairman+password")
docevent_count_pre = self.doc.docevent_set.count()
@ -1133,7 +1133,7 @@ class RequestPublicationTests(TestCase):
draft.save_with_history([DocEvent.objects.create(doc=draft, type="changed_document", by=Person.objects.get(user__username="secretary"), desc="Test")])
draft.set_state(State.objects.get(used=True, type="draft-stream-iab", slug="approved"))
url = urlreverse('doc_request_publication', kwargs=dict(name=draft.name))
url = urlreverse('ietf.doc.views_draft.request_publication', kwargs=dict(name=draft.name))
login_testing_unauthorized(self, "iab-chair", url)
# normal get
@ -1173,7 +1173,7 @@ class AdoptDraftTests(TestCase):
draft.unset_state("draft-stream-ietf")
draft.save_with_history([DocEvent.objects.create(doc=draft, type="changed_document", by=Person.objects.get(user__username="secretary"), desc="Test")])
url = urlreverse('doc_adopt_draft', kwargs=dict(name=draft.name))
url = urlreverse('ietf.doc.views_draft.adopt_draft', kwargs=dict(name=draft.name))
login_testing_unauthorized(self, "marschairman", url)
# get
@ -1213,7 +1213,7 @@ class ChangeStreamStateTests(TestCase):
draft.tags = DocTagName.objects.filter(slug="w-expert")
draft.group.unused_tags.add("w-refdoc")
url = urlreverse('doc_change_stream_state', kwargs=dict(name=draft.name, state_type="draft-stream-ietf"))
url = urlreverse('ietf.doc.views_draft.change_stream_state', kwargs=dict(name=draft.name, state_type="draft-stream-ietf"))
login_testing_unauthorized(self, "marschairman", url)
# get
@ -1252,7 +1252,7 @@ class ChangeStreamStateTests(TestCase):
draft = make_test_data()
draft.unset_state("draft-stream-%s"%draft.stream_id)
url = urlreverse('doc_change_stream_state', kwargs=dict(name=draft.name, state_type="draft-stream-ietf"))
url = urlreverse('ietf.doc.views_draft.change_stream_state', kwargs=dict(name=draft.name, state_type="draft-stream-ietf"))
login_testing_unauthorized(self, "marschairman", url)
# set a state when no state exists
@ -1285,7 +1285,7 @@ class ChangeStreamStateTests(TestCase):
def test_set_state(self):
draft = make_test_data()
url = urlreverse('doc_change_stream_state', kwargs=dict(name=draft.name, state_type="draft-stream-ietf"))
url = urlreverse('ietf.doc.views_draft.change_stream_state', kwargs=dict(name=draft.name, state_type="draft-stream-ietf"))
login_testing_unauthorized(self, "marschairman", url)
# get
@ -1328,7 +1328,7 @@ class ChangeStreamStateTests(TestCase):
def test_pubreq_validation(self):
draft = make_test_data()
url = urlreverse('doc_change_stream_state', kwargs=dict(name=draft.name, state_type="draft-stream-ietf"))
url = urlreverse('ietf.doc.views_draft.change_stream_state', kwargs=dict(name=draft.name, state_type="draft-stream-ietf"))
login_testing_unauthorized(self, "marschairman", url)
old_state = draft.get_state("draft-stream-%s" % draft.stream_id )
@ -1408,7 +1408,7 @@ class ChangeReplacesTests(TestCase):
def test_change_replaces(self):
url = urlreverse('doc_change_replaces', kwargs=dict(name=self.replacea.name))
url = urlreverse('ietf.doc.views_draft.replaces', kwargs=dict(name=self.replacea.name))
login_testing_unauthorized(self, "secretary", url)
# normal get
@ -1434,7 +1434,7 @@ class ChangeReplacesTests(TestCase):
empty_outbox()
# Post that says replaceboth replaces both base a and base b
url = urlreverse('doc_change_replaces', kwargs=dict(name=self.replaceboth.name))
url = urlreverse('ietf.doc.views_draft.replaces', kwargs=dict(name=self.replaceboth.name))
self.assertEqual(self.baseb.get_state().slug,'expired')
r = self.client.post(url, dict(replaces=self.basea.name + "," + self.baseb.name))
self.assertEqual(r.status_code, 302)
@ -1458,7 +1458,7 @@ class ChangeReplacesTests(TestCase):
# Post that undoes replacea
empty_outbox()
url = urlreverse('doc_change_replaces', kwargs=dict(name=self.replacea.name))
url = urlreverse('ietf.doc.views_draft.replaces', kwargs=dict(name=self.replacea.name))
r = self.client.post(url, dict(replaces=""))
self.assertEqual(r.status_code, 302)
self.assertEqual(Document.objects.get(name='draft-test-base-a').get_state().slug,'active')
@ -1471,7 +1471,7 @@ class ChangeReplacesTests(TestCase):
RelatedDocument.objects.create(source=self.replacea, target=replaced,
relationship=DocRelationshipName.objects.get(slug="possibly-replaces"))
url = urlreverse('doc_review_possibly_replaces', kwargs=dict(name=self.replacea.name))
url = urlreverse('ietf.doc.views_draft.review_possibly_replaces', kwargs=dict(name=self.replacea.name))
login_testing_unauthorized(self, "secretary", url)
r = self.client.get(url)

View file

@ -72,7 +72,7 @@ class GroupMaterialTests(TestCase):
def test_upload_slides(self):
group = Group.objects.create(type_id="team", acronym="testteam", name="Test Team", state_id="active")
url = urlreverse('group_new_material', kwargs=dict(acronym=group.acronym, doc_type="slides"))
url = urlreverse('ietf.doc.views_material.edit_material', kwargs=dict(acronym=group.acronym, doc_type="slides"))
login_testing_unauthorized(self, "secretary", url)
# normal get
@ -121,7 +121,7 @@ class GroupMaterialTests(TestCase):
def test_change_state(self):
doc = self.create_slides()
url = urlreverse('material_edit', kwargs=dict(name=doc.name, action="state"))
url = urlreverse('ietf.doc.views_material.edit_material', kwargs=dict(name=doc.name, action="state"))
login_testing_unauthorized(self, "secretary", url)
# post
@ -133,7 +133,7 @@ class GroupMaterialTests(TestCase):
def test_edit_title(self):
doc = self.create_slides()
url = urlreverse('material_edit', kwargs=dict(name=doc.name, action="title"))
url = urlreverse('ietf.doc.views_material.edit_material', kwargs=dict(name=doc.name, action="title"))
login_testing_unauthorized(self, "secretary", url)
# post
@ -156,7 +156,7 @@ class GroupMaterialTests(TestCase):
)
SessionPresentation.objects.create(session=session, document=doc, rev=doc.rev)
url = urlreverse('material_edit', kwargs=dict(name=doc.name, action="revise"))
url = urlreverse('ietf.doc.views_material.edit_material', kwargs=dict(name=doc.name, action="revise"))
login_testing_unauthorized(self, "secretary", url)
content = "some text"

View file

@ -24,7 +24,7 @@ from ietf.utils.test_utils import login_testing_unauthorized
class StatusChangeTests(TestCase):
def test_start_review(self):
url = urlreverse('start_rfc_status_change')
url = urlreverse('ietf.doc.views_status_change.start_rfc_status_change')
login_testing_unauthorized(self, "secretary", url)
# normal get should succeed and get a reasonable form
@ -126,7 +126,7 @@ class StatusChangeTests(TestCase):
def test_edit_notices(self):
doc = Document.objects.get(name='status-change-imaginary-mid-review')
url = urlreverse('status_change_notices',kwargs=dict(name=doc.name))
url = urlreverse('ietf.doc.views_doc.edit_notify;status-change',kwargs=dict(name=doc.name))
login_testing_unauthorized(self, "ad", url)
@ -161,7 +161,7 @@ class StatusChangeTests(TestCase):
def test_edit_title(self):
doc = Document.objects.get(name='status-change-imaginary-mid-review')
url = urlreverse('status_change_title',kwargs=dict(name=doc.name))
url = urlreverse('ietf.doc.views_status_change.edit_title',kwargs=dict(name=doc.name))
login_testing_unauthorized(self, "ad", url)
@ -180,7 +180,7 @@ class StatusChangeTests(TestCase):
def test_edit_ad(self):
doc = Document.objects.get(name='status-change-imaginary-mid-review')
url = urlreverse('status_change_ad',kwargs=dict(name=doc.name))
url = urlreverse('ietf.doc.views_status_change.edit_ad',kwargs=dict(name=doc.name))
login_testing_unauthorized(self, "ad", url)
@ -200,7 +200,7 @@ class StatusChangeTests(TestCase):
def test_edit_telechat_date(self):
doc = Document.objects.get(name='status-change-imaginary-mid-review')
url = urlreverse('status_change_telechat_date',kwargs=dict(name=doc.name))
url = urlreverse('ietf.doc.views_doc.telechat_date;status-change',kwargs=dict(name=doc.name))
login_testing_unauthorized(self, "ad", url)
@ -245,7 +245,7 @@ class StatusChangeTests(TestCase):
def test_edit_lc(self):
doc = Document.objects.get(name='status-change-imaginary-mid-review')
url = urlreverse('status_change_last_call',kwargs=dict(name=doc.name))
url = urlreverse('ietf.doc.views_status_change.last_call',kwargs=dict(name=doc.name))
login_testing_unauthorized(self, "ad", url)
@ -289,7 +289,7 @@ class StatusChangeTests(TestCase):
def test_approve(self):
doc = Document.objects.get(name='status-change-imaginary-mid-review')
url = urlreverse('status_change_approve',kwargs=dict(name=doc.name))
url = urlreverse('ietf.doc.views_status_change.approve',kwargs=dict(name=doc.name))
login_testing_unauthorized(self, "secretary", url)
@ -331,7 +331,7 @@ class StatusChangeTests(TestCase):
def test_edit_relations(self):
doc = Document.objects.get(name='status-change-imaginary-mid-review')
url = urlreverse('status_change_relations',kwargs=dict(name=doc.name))
url = urlreverse('ietf.doc.views_status_change.edit_relations',kwargs=dict(name=doc.name))
login_testing_unauthorized(self, "secretary", url)
@ -395,7 +395,7 @@ class StatusChangeTests(TestCase):
class StatusChangeSubmitTests(TestCase):
def test_initial_submission(self):
doc = Document.objects.get(name='status-change-imaginary-mid-review')
url = urlreverse('status_change_submit',kwargs=dict(name=doc.name))
url = urlreverse('ietf.doc.views_status_change.submit',kwargs=dict(name=doc.name))
login_testing_unauthorized(self, "ad", url)
# normal get
@ -421,7 +421,7 @@ class StatusChangeSubmitTests(TestCase):
def test_subsequent_submission(self):
doc = Document.objects.get(name='status-change-imaginary-mid-review')
url = urlreverse('status_change_submit',kwargs=dict(name=doc.name))
url = urlreverse('ietf.doc.views_status_change.submit',kwargs=dict(name=doc.name))
login_testing_unauthorized(self, "ad", url)
# A little additional setup

View file

@ -45,14 +45,14 @@ session_patterns = [
urlpatterns = [
url(r'^$', views_search.search),
url(r'^(?P<name>[A-Za-z0-9\._\+\-]+)$', views_search.search_for_name, name="doc_search_for_name"),
url(r'^search/$', views_search.search, name="doc_search"),
url(r'^in-last-call/$', views_search.drafts_in_last_call, name="drafts_in_last_call"),
url(r'^ad/(?P<name>[\w.-]+)/$(?u)', views_search.docs_for_ad, name="docs_for_ad"),
url(r'^(?P<name>[A-Za-z0-9\._\+\-]+)$', views_search.search_for_name),
url(r'^search/$', views_search.search),
url(r'^in-last-call/$', views_search.drafts_in_last_call),
url(r'^ad/(?P<name>[\w.-]+)/$(?u)', views_search.docs_for_ad),
url(r'^ad2/(?P<name>[\w.-]+)/$(?u)', RedirectView.as_view(url='/doc/ad/%(name)s/', permanent=True)),
url(r'^rfc-status-changes/$', views_status_change.rfc_status_changes, name='ietf.doc.views_status_change.rfc_status_changes'),
url(r'^start-rfc-status-change/(?:%(name)s/)?$' % settings.URL_REGEXPS, views_status_change.start_rfc_status_change, name='start_rfc_status_change'),
url(r'^iesg/(?P<last_call_only>[A-Za-z0-9.-]+/)?$', views_search.drafts_in_iesg_process, name="drafts_in_iesg_process"),
url(r'^rfc-status-changes/$', views_status_change.rfc_status_changes),
url(r'^start-rfc-status-change/(?:%(name)s/)?$' % settings.URL_REGEXPS, views_status_change.start_rfc_status_change),
url(r'^iesg/(?P<last_call_only>[A-Za-z0-9.-]+/)?$', views_search.drafts_in_iesg_process),
url(r'^email-aliases/$', views_doc.email_aliases),
url(r'^stats/newrevisiondocevent/?$', views_stats.chart_newrevisiondocevent),
url(r'^stats/newrevisiondocevent/conf/?$', views_stats.chart_conf_newrevisiondocevent),
@ -60,66 +60,66 @@ urlpatterns = [
url(r'^stats/person/(?P<id>[0-9]+)/drafts/conf/?$', views_stats.chart_conf_person_drafts),
url(r'^stats/person/(?P<id>[0-9]+)/drafts/data/?$', views_stats.chart_data_person_drafts),
url(r'^all/$', views_search.index_all_drafts, name="index_all_drafts"),
url(r'^active/$', views_search.index_active_drafts, name="index_active_drafts"),
url(r'^select2search/(?P<model_name>(document|docalias))/(?P<doc_type>draft)/$', views_search.ajax_select2_search_docs, name="ajax_select2_search_docs"),
url(r'^all/$', views_search.index_all_drafts),
url(r'^active/$', views_search.index_active_drafts),
url(r'^select2search/(?P<model_name>(document|docalias))/(?P<doc_type>draft)/$', views_search.ajax_select2_search_docs),
url(r'^%(name)s/(?:%(rev)s/)?$' % settings.URL_REGEXPS, views_doc.document_main),
url(r'^%(name)s/(?:%(rev)s/)?bibtex/$' % settings.URL_REGEXPS, views_doc.document_bibtex),
url(r'^%(name)s/history/$' % settings.URL_REGEXPS, views_doc.document_history, name="doc_history"),
url(r'^%(name)s/writeup/$' % settings.URL_REGEXPS, views_doc.document_writeup, name="doc_writeup"),
url(r'^%(name)s/email/$' % settings.URL_REGEXPS, views_doc.document_email, name="ietf.doc.views_doc.document_email"),
url(r'^%(name)s/shepherdwriteup/$' % settings.URL_REGEXPS, views_doc.document_shepherd_writeup, name="doc_shepherd_writeup"),
url(r'^%(name)s/references/$' % settings.URL_REGEXPS, views_doc.document_references, name="doc_references"),
url(r'^%(name)s/referencedby/$' % settings.URL_REGEXPS, views_doc.document_referenced_by, name="doc_referenced_by"),
url(r'^%(name)s/history/$' % settings.URL_REGEXPS, views_doc.document_history),
url(r'^%(name)s/writeup/$' % settings.URL_REGEXPS, views_doc.document_writeup),
url(r'^%(name)s/email/$' % settings.URL_REGEXPS, views_doc.document_email),
url(r'^%(name)s/shepherdwriteup/$' % settings.URL_REGEXPS, views_doc.document_shepherd_writeup),
url(r'^%(name)s/references/$' % settings.URL_REGEXPS, views_doc.document_references),
url(r'^%(name)s/referencedby/$' % settings.URL_REGEXPS, views_doc.document_referenced_by),
url(r'^%(name)s/ballot/$' % settings.URL_REGEXPS, views_doc.document_ballot),
url(r'^%(name)s/ballot/(?P<ballot_id>[0-9]+)/$' % settings.URL_REGEXPS, views_doc.document_ballot),
url(r'^%(name)s/ballot/(?P<ballot_id>[0-9]+)/position/$' % settings.URL_REGEXPS, views_ballot.edit_position),
url(r'^%(name)s/ballot/(?P<ballot_id>[0-9]+)/emailposition/$' % settings.URL_REGEXPS, views_ballot.send_ballot_comment, name='doc_send_ballot_comment'),
url(r'^%(name)s/ballot/(?P<ballot_id>[0-9]+)/emailposition/$' % settings.URL_REGEXPS, views_ballot.send_ballot_comment),
url(r'^%(name)s/(?:%(rev)s/)?doc.json$' % settings.URL_REGEXPS, views_doc.document_json),
url(r'^%(name)s/ballotpopup/(?P<ballot_id>[0-9]+)/$' % settings.URL_REGEXPS, views_doc.ballot_popup),
url(r'^(?P<name>[A-Za-z0-9._+-]+)/reviewrequest/', include("ietf.doc.urls_review")),
url(r'^%(name)s/email-aliases/$' % settings.URL_REGEXPS, RedirectView.as_view(pattern_name='ietf.doc.views_doc.document_email', permanent=False),name='doc_specific_email_aliases'),
url(r'^%(name)s/email-aliases/$' % settings.URL_REGEXPS, RedirectView.as_view(pattern_name='ietf.doc.views_doc.document_email', permanent=False),name='ietf.doc.urls.redirect.document_email'),
url(r'^%(name)s/edit/state/$' % settings.URL_REGEXPS, views_draft.change_state, name='doc_change_state'), # IESG state
url(r'^%(name)s/edit/state/(?P<state_type>iana-action|iana-review)/$' % settings.URL_REGEXPS, views_draft.change_iana_state, name='doc_change_iana_state'),
url(r'^%(name)s/edit/info/$' % settings.URL_REGEXPS, views_draft.edit_info, name='doc_edit_info'),
url(r'^%(name)s/edit/requestresurrect/$' % settings.URL_REGEXPS, views_draft.request_resurrect, name='doc_request_resurrect'),
url(r'^%(name)s/edit/submit-to-iesg/$' % settings.URL_REGEXPS, views_draft.to_iesg, name='doc_to_iesg'),
url(r'^%(name)s/edit/resurrect/$' % settings.URL_REGEXPS, views_draft.resurrect, name='doc_resurrect'),
url(r'^%(name)s/edit/addcomment/$' % settings.URL_REGEXPS, views_doc.add_comment, name='doc_add_comment'),
url(r'^ajax/internet_draft/?$', views_draft.doc_ajax_internet_draft, name="doc_ajax_internet_draft"),
url(r'^%(name)s/edit/state/$' % settings.URL_REGEXPS, views_draft.change_state), # IESG state
url(r'^%(name)s/edit/state/(?P<state_type>iana-action|iana-review)/$' % settings.URL_REGEXPS, views_draft.change_iana_state),
url(r'^%(name)s/edit/info/$' % settings.URL_REGEXPS, views_draft.edit_info),
url(r'^%(name)s/edit/requestresurrect/$' % settings.URL_REGEXPS, views_draft.request_resurrect),
url(r'^%(name)s/edit/submit-to-iesg/$' % settings.URL_REGEXPS, views_draft.to_iesg),
url(r'^%(name)s/edit/resurrect/$' % settings.URL_REGEXPS, views_draft.resurrect),
url(r'^%(name)s/edit/addcomment/$' % settings.URL_REGEXPS, views_doc.add_comment),
url(r'^ajax/internet_draft/?$', views_draft.doc_ajax_internet_draft),
url(r'^%(name)s/edit/stream/$' % settings.URL_REGEXPS, views_draft.change_stream, name='doc_change_stream'),
url(r'^%(name)s/edit/replaces/$' % settings.URL_REGEXPS, views_draft.replaces, name='doc_change_replaces'),
url(r'^%(name)s/edit/notify/$' % settings.URL_REGEXPS, views_doc.edit_notify, name='doc_change_notify'),
url(r'^%(name)s/edit/suggested-replaces/$' % settings.URL_REGEXPS, views_draft.review_possibly_replaces, name='doc_review_possibly_replaces'),
url(r'^%(name)s/edit/status/$' % settings.URL_REGEXPS, views_draft.change_intention, name='doc_change_intended_status'),
url(r'^%(name)s/edit/telechat/$' % settings.URL_REGEXPS, views_doc.telechat_date, name='doc_change_telechat_date'),
url(r'^%(name)s/edit/iesgnote/$' % settings.URL_REGEXPS, views_draft.edit_iesg_note, name='doc_change_iesg_note'),
url(r'^%(name)s/edit/ad/$' % settings.URL_REGEXPS, views_draft.edit_ad, name='doc_change_ad'),
url(r'^%(name)s/edit/consensus/$' % settings.URL_REGEXPS, views_draft.edit_consensus, name='doc_edit_consensus'),
url(r'^%(name)s/edit/shepherd/$' % settings.URL_REGEXPS, views_draft.edit_shepherd, name='doc_edit_shepherd'),
url(r'^%(name)s/edit/shepherdemail/$' % settings.URL_REGEXPS, views_draft.change_shepherd_email, name='doc_change_shepherd_email'),
url(r'^%(name)s/edit/shepherdwriteup/$' % settings.URL_REGEXPS, views_draft.edit_shepherd_writeup, name='doc_edit_shepherd_writeup'),
url(r'^%(name)s/edit/requestpublication/$' % settings.URL_REGEXPS, views_draft.request_publication, name='doc_request_publication'),
url(r'^%(name)s/edit/adopt/$' % settings.URL_REGEXPS, views_draft.adopt_draft, name='doc_adopt_draft'),
url(r'^%(name)s/edit/state/(?P<state_type>draft-stream-[a-z]+)/$' % settings.URL_REGEXPS, views_draft.change_stream_state, name='doc_change_stream_state'),
url(r'^%(name)s/edit/stream/$' % settings.URL_REGEXPS, views_draft.change_stream),
url(r'^%(name)s/edit/replaces/$' % settings.URL_REGEXPS, views_draft.replaces),
url(r'^%(name)s/edit/notify/$' % settings.URL_REGEXPS, views_doc.edit_notify),
url(r'^%(name)s/edit/suggested-replaces/$' % settings.URL_REGEXPS, views_draft.review_possibly_replaces),
url(r'^%(name)s/edit/status/$' % settings.URL_REGEXPS, views_draft.change_intention),
url(r'^%(name)s/edit/telechat/$' % settings.URL_REGEXPS, views_doc.telechat_date),
url(r'^%(name)s/edit/iesgnote/$' % settings.URL_REGEXPS, views_draft.edit_iesg_note),
url(r'^%(name)s/edit/ad/$' % settings.URL_REGEXPS, views_draft.edit_ad),
url(r'^%(name)s/edit/consensus/$' % settings.URL_REGEXPS, views_draft.edit_consensus),
url(r'^%(name)s/edit/shepherd/$' % settings.URL_REGEXPS, views_draft.edit_shepherd),
url(r'^%(name)s/edit/shepherdemail/$' % settings.URL_REGEXPS, views_draft.change_shepherd_email),
url(r'^%(name)s/edit/shepherdwriteup/$' % settings.URL_REGEXPS, views_draft.edit_shepherd_writeup),
url(r'^%(name)s/edit/requestpublication/$' % settings.URL_REGEXPS, views_draft.request_publication),
url(r'^%(name)s/edit/adopt/$' % settings.URL_REGEXPS, views_draft.adopt_draft),
url(r'^%(name)s/edit/state/(?P<state_type>draft-stream-[a-z]+)/$' % settings.URL_REGEXPS, views_draft.change_stream_state),
url(r'^%(name)s/edit/clearballot/$' % settings.URL_REGEXPS, views_ballot.clear_ballot, name='doc_clear_ballot'),
url(r'^%(name)s/edit/deferballot/$' % settings.URL_REGEXPS, views_ballot.defer_ballot, name='doc_defer_ballot'),
url(r'^%(name)s/edit/undeferballot/$' % settings.URL_REGEXPS, views_ballot.undefer_ballot, name='doc_undefer_ballot'),
url(r'^%(name)s/edit/lastcalltext/$' % settings.URL_REGEXPS, views_ballot.lastcalltext, name='doc_ballot_lastcall'),
url(r'^%(name)s/edit/ballotwriteupnotes/$' % settings.URL_REGEXPS, views_ballot.ballot_writeupnotes, name='doc_ballot_writeupnotes'),
url(r'^%(name)s/edit/ballotrfceditornote/$' % settings.URL_REGEXPS, views_ballot.ballot_rfceditornote, name='doc_ballot_rfceditornote'),
url(r'^%(name)s/edit/approvaltext/$' % settings.URL_REGEXPS, views_ballot.ballot_approvaltext, name='doc_ballot_approvaltext'),
url(r'^%(name)s/edit/approveballot/$' % settings.URL_REGEXPS, views_ballot.approve_ballot, name='doc_approve_ballot'),
url(r'^%(name)s/edit/makelastcall/$' % settings.URL_REGEXPS, views_ballot.make_last_call, name='doc_make_last_call'),
url(r'^%(name)s/edit/clearballot/$' % settings.URL_REGEXPS, views_ballot.clear_ballot),
url(r'^%(name)s/edit/deferballot/$' % settings.URL_REGEXPS, views_ballot.defer_ballot),
url(r'^%(name)s/edit/undeferballot/$' % settings.URL_REGEXPS, views_ballot.undefer_ballot),
url(r'^%(name)s/edit/lastcalltext/$' % settings.URL_REGEXPS, views_ballot.lastcalltext),
url(r'^%(name)s/edit/ballotwriteupnotes/$' % settings.URL_REGEXPS, views_ballot.ballot_writeupnotes),
url(r'^%(name)s/edit/ballotrfceditornote/$' % settings.URL_REGEXPS, views_ballot.ballot_rfceditornote),
url(r'^%(name)s/edit/approvaltext/$' % settings.URL_REGEXPS, views_ballot.ballot_approvaltext),
url(r'^%(name)s/edit/approveballot/$' % settings.URL_REGEXPS, views_ballot.approve_ballot),
url(r'^%(name)s/edit/makelastcall/$' % settings.URL_REGEXPS, views_ballot.make_last_call),
url(r'^help/state/(?P<type>[\w-]+)/$', views_help.state_help, name="state_help"),
url(r'^help/relationships/$', views_help.relationship_help, name="relationship_help"),
url(r'^help/relationships/(?P<subset>\w+)/$', views_help.relationship_help, name="relationship_subset_help"),
url(r'^help/state/(?P<type>[\w-]+)/$', views_help.state_help),
url(r'^help/relationships/$', views_help.relationship_help),
url(r'^help/relationships/(?P<subset>\w+)/$', views_help.relationship_help),
url(r'^%(name)s/meetings/?$' % settings.URL_REGEXPS, views_doc.all_presentations),

View file

@ -6,16 +6,16 @@ from ietf.doc import views_charter, views_doc
from ietf.utils.urls import url
urlpatterns = [
url(r'^state/$', views_charter.change_state, name='charter_change_state'),
url(r'^title/$', views_charter.change_title, name='charter_change_title'),
url(r'^(?P<option>initcharter|recharter|abandon)/$', views_charter.change_state, name='charter_startstop_process'),
url(r'^telechat/$', views_doc.telechat_date, name='charter_telechat_date'),
url(r'^notify/$', views_doc.edit_notify, name='charter_edit_notify'),
url(r'^ad/$', views_charter.edit_ad, name='charter_edit_ad'),
url(r'^state/$', views_charter.change_state),
url(r'^title/$', views_charter.change_title),
url(r'^(?P<option>initcharter|recharter|abandon)/$', views_charter.change_state),
url(r'^telechat/$', views_doc.telechat_date, name='ietf.doc.views_doc.telechat_date;charter'),
url(r'^notify/$', views_doc.edit_notify, name='ietf.doc.views_doc.edit_notify;charter'),
url(r'^ad/$', views_charter.edit_ad),
url(r'^action/$', views_charter.action_announcement_text),
url(r'^review/$', views_charter.review_announcement_text),
url(r'^ballotwriteupnotes/$', views_charter.ballot_writeupnotes),
url(r'^approve/$', views_charter.approve, name='charter_approve'),
url(r'^submit/(?:(?P<option>initcharter|recharter)/)?$', views_charter.submit, name='charter_submit'),
url(r'^withmilestones-%(rev)s.txt$' % settings.URL_REGEXPS, views_charter.charter_with_milestones_txt, name='charter_with_milestones_txt'),
url(r'^approve/$', views_charter.approve),
url(r'^submit/(?:(?P<option>initcharter|recharter)/)?$', views_charter.submit),
url(r'^withmilestones-%(rev)s.txt$' % settings.URL_REGEXPS, views_charter.charter_with_milestones_txt),
]

View file

@ -3,13 +3,13 @@ from ietf.doc import views_conflict_review, views_doc
from ietf.utils.urls import url
urlpatterns = [
url(r'^state/$', views_conflict_review.change_state, name='conflict_review_change_state'),
url(r'^submit/$', views_conflict_review.submit, name='conflict_review_submit'),
url(r'^ad/$', views_conflict_review.edit_ad, name='conflict_review_ad'),
url(r'^approve/$', views_conflict_review.approve, name='conflict_review_approve'),
url(r'^start_conflict_review/$', views_conflict_review.start_review, name='conflict_review_start'),
url(r'^telechat/$', views_doc.telechat_date, name='conflict_review_telechat_date'),
url(r'^notices/$', views_doc.edit_notify, name='conflict_review_notices'),
url(r'^state/$', views_conflict_review.change_state),
url(r'^submit/$', views_conflict_review.submit),
url(r'^ad/$', views_conflict_review.edit_ad),
url(r'^approve/$', views_conflict_review.approve),
url(r'^start_conflict_review/$', views_conflict_review.start_review),
url(r'^telechat/$', views_doc.telechat_date, name='ietf.doc.views_doc.telechat_date;conflict-review'),
url(r'^notices/$', views_doc.edit_notify, name='ietf.doc.views_doc.edit_notify;conflict-review'),
]

View file

@ -3,6 +3,6 @@ from ietf.doc import views_material
from ietf.utils.urls import url
urlpatterns = [
url(r'^(?P<action>state|title|abstract|revise)/$', views_material.edit_material, name="material_edit"),
url(r'^(?P<action>state|title|abstract|revise)/$', views_material.edit_material),
]

View file

@ -4,14 +4,14 @@ from ietf.utils.urls import url
urlpatterns = [
url(r'^state/$', views_status_change.change_state),
url(r'^submit/$', views_status_change.submit, name='status_change_submit'),
url(r'^ad/$', views_status_change.edit_ad, name='status_change_ad'),
url(r'^title/$', views_status_change.edit_title, name='status_change_title'),
url(r'^approve/$', views_status_change.approve, name='status_change_approve'),
url(r'^relations/$', views_status_change.edit_relations, name='status_change_relations'),
url(r'^last-call/$', views_status_change.last_call, name='status_change_last_call'),
url(r'^telechat/$', views_doc.telechat_date, name='status_change_telechat_date'),
url(r'^notices/$', views_doc.edit_notify, name='status_change_notices'),
url(r'^submit/$', views_status_change.submit),
url(r'^ad/$', views_status_change.edit_ad),
url(r'^title/$', views_status_change.edit_title),
url(r'^approve/$', views_status_change.approve),
url(r'^relations/$', views_status_change.edit_relations),
url(r'^last-call/$', views_status_change.last_call),
url(r'^telechat/$', views_doc.telechat_date, name='ietf.doc.views_doc.telechat_date;status-change'),
url(r'^notices/$', views_doc.edit_notify, name='ietf.doc.views_doc.edit_notify;status-change'),
]

View file

@ -201,11 +201,11 @@ def edit_position(request, name, ballot_id):
qstr=""
if request.GET.get('ad'):
qstr += "?ad=%s" % request.GET.get('ad')
return HttpResponseRedirect(urlreverse("doc_send_ballot_comment", kwargs=dict(name=doc.name, ballot_id=ballot_id)) + qstr)
return HttpResponseRedirect(urlreverse('ietf.doc.views_ballot.send_ballot_comment', kwargs=dict(name=doc.name, ballot_id=ballot_id)) + qstr)
elif request.POST.get("Defer"):
return redirect("doc_defer_ballot", name=doc)
return redirect('ietf.doc.views_ballot.defer_ballot', name=doc)
elif request.POST.get("Undefer"):
return redirect("doc_undefer_ballot", name=doc)
return redirect('ietf.doc.views_ballot.undefer_ballot', name=doc)
else:
return HttpResponseRedirect(return_to_url)
else:

View file

@ -422,7 +422,7 @@ def submit(request, name, option=None):
charter.save_with_history(events)
if option:
return redirect('charter_startstop_process', name=charter.name, option=option)
return redirect('ietf.doc.views_charter.change_state', name=charter.name, option=option)
else:
return redirect("ietf.doc.views_doc.document_main", name=charter.name)
else:
@ -533,9 +533,9 @@ def review_announcement_text(request, name):
charter.save_with_history(events)
if request.GET.get("next", "") == "approve":
return redirect('charter_approve', name=charter.canonical_name())
return redirect('ietf.doc.views_charter.approve', name=charter.canonical_name())
return redirect('doc_writeup', name=charter.canonical_name())
return redirect('ietf.doc.views_doc.document_writeup', name=charter.canonical_name())
if "regenerate_text" in request.POST:
(existing, existing_new_work) = default_review_text(group, charter, by)
@ -551,11 +551,11 @@ def review_announcement_text(request, name):
if any(x in request.POST for x in ['send_nw_only','send_both']):
parsed_msg = send_mail_preformatted(request, form.cleaned_data['new_work_text'])
messages.success(request, "The email To: '%s' with Subject: '%s' has been sent." % (parsed_msg["To"],parsed_msg["Subject"],))
return redirect('doc_writeup', name=charter.name)
return redirect('ietf.doc.views_doc.document_writeup', name=charter.name)
return render(request, 'doc/charter/review_announcement_text.html',
dict(charter=charter,
back_url=urlreverse("doc_writeup", kwargs=dict(name=charter.name)),
back_url=urlreverse('ietf.doc.views_doc.document_writeup', kwargs=dict(name=charter.name)),
announcement_text_form=form,
))
@ -591,9 +591,9 @@ def action_announcement_text(request, name):
existing.save()
if request.GET.get("next", "") == "approve":
return redirect('charter_approve', name=charter.canonical_name())
return redirect('ietf.doc.views_charter.approve', name=charter.canonical_name())
return redirect('doc_writeup', name=charter.canonical_name())
return redirect('ietf.doc.views_doc.document_writeup', name=charter.canonical_name())
if "regenerate_text" in request.POST:
e = default_action_text(group, charter, by)
@ -603,11 +603,11 @@ def action_announcement_text(request, name):
if "send_text" in request.POST and form.is_valid():
parsed_msg = send_mail_preformatted(request, form.cleaned_data['announcement_text'])
messages.success(request, "The email To: '%s' with Subject: '%s' has been sent." % (parsed_msg["To"],parsed_msg["Subject"],))
return redirect('doc_writeup', name=charter.name)
return redirect('ietf.doc.views_doc.document_writeup', name=charter.name)
return render(request, 'doc/charter/action_announcement_text.html',
dict(charter=charter,
back_url=urlreverse("doc_writeup", kwargs=dict(name=charter.name)),
back_url=urlreverse('ietf.doc.views_doc.document_writeup', kwargs=dict(name=charter.name)),
announcement_text_form=form,
))

View file

@ -81,7 +81,7 @@ def change_state(request, name, option=None):
dict(form=form,
doc=review,
login=login,
help_url=reverse('state_help', kwargs=dict(type="conflict-review")),
help_url=reverse('ietf.doc.views_help.state_help', kwargs=dict(type="conflict-review")),
))
def send_conflict_review_started_email(request, review):

View file

@ -78,10 +78,10 @@ def render_document_top(request, doc, tab, name):
tabs.append(("IESG Review", "ballot", urlreverse("ietf.doc.views_doc.document_ballot", kwargs=dict(name=name)), ballot, None if ballot else "IESG Review Ballot has not been created yet"))
if doc.type_id == "draft" or (doc.type_id == "charter" and doc.group.type_id == "wg"):
tabs.append(("IESG Writeups", "writeup", urlreverse("doc_writeup", kwargs=dict(name=name)), True, None))
tabs.append(("IESG Writeups", "writeup", urlreverse('ietf.doc.views_doc.document_writeup', kwargs=dict(name=name)), True, None))
tabs.append(("Email expansions","email",urlreverse("ietf.doc.views_doc.document_email", kwargs=dict(name=name)), True, None))
tabs.append(("History", "history", urlreverse("doc_history", kwargs=dict(name=name)), True, None))
tabs.append(("Email expansions","email",urlreverse('ietf.doc.views_doc.document_email', kwargs=dict(name=name)), True, None))
tabs.append(("History", "history", urlreverse('ietf.doc.views_doc.document_history', kwargs=dict(name=name)), True, None))
if name.startswith("rfc"):
name = "RFC %s" % name[3:]
@ -321,20 +321,20 @@ def document_main(request, name, rev=None):
actions = []
if can_adopt_draft(request.user, doc) and not doc.get_state_slug() in ["rfc"] and not snapshot:
actions.append(("Manage Document Adoption in Group", urlreverse('doc_adopt_draft', kwargs=dict(name=doc.name))))
actions.append(("Manage Document Adoption in Group", urlreverse('ietf.doc.views_draft.adopt_draft', kwargs=dict(name=doc.name))))
if doc.get_state_slug() == "expired" and not resurrected_by and can_edit and not snapshot:
actions.append(("Request Resurrect", urlreverse('doc_request_resurrect', kwargs=dict(name=doc.name))))
actions.append(("Request Resurrect", urlreverse('ietf.doc.views_draft.request_resurrect', kwargs=dict(name=doc.name))))
if doc.get_state_slug() == "expired" and has_role(request.user, ("Secretariat",)) and not snapshot:
actions.append(("Resurrect", urlreverse('doc_resurrect', kwargs=dict(name=doc.name))))
actions.append(("Resurrect", urlreverse('ietf.doc.views_draft.resurrect', kwargs=dict(name=doc.name))))
if (doc.get_state_slug() not in ["rfc", "expired"] and doc.stream_id in ("ise", "irtf")
and can_edit_stream_info and not conflict_reviews and not snapshot):
label = "Begin IETF Conflict Review"
if not doc.intended_std_level:
label += " (note that intended status is not set)"
actions.append((label, urlreverse('conflict_review_start', kwargs=dict(name=doc.name))))
actions.append((label, urlreverse('ietf.doc.views_conflict_review.start_review', kwargs=dict(name=doc.name))))
if (doc.get_state_slug() not in ["rfc", "expired"] and doc.stream_id in ("iab", "ise", "irtf")
and can_edit_stream_info and not snapshot):
@ -344,13 +344,13 @@ def document_main(request, name, rev=None):
label += " (note that intended status is not set)"
if iesg_state and iesg_state.slug != 'dead':
label += " (Warning: the IESG state indicates ongoing IESG processing)"
actions.append((label, urlreverse('doc_request_publication', kwargs=dict(name=doc.name))))
actions.append((label, urlreverse('ietf.doc.views_draft.request_publication', kwargs=dict(name=doc.name))))
if doc.get_state_slug() not in ["rfc", "expired"] and doc.stream_id in ("ietf",) and not snapshot:
if not iesg_state and can_edit:
actions.append(("Begin IESG Processing", urlreverse('doc_edit_info', kwargs=dict(name=doc.name)) + "?new=1"))
actions.append(("Begin IESG Processing", urlreverse('ietf.doc.views_draft.edit_info', kwargs=dict(name=doc.name)) + "?new=1"))
elif can_edit_stream_info and (not iesg_state or iesg_state.slug == 'watching'):
actions.append(("Submit to IESG for Publication", urlreverse('doc_to_iesg', kwargs=dict(name=doc.name))))
actions.append(("Submit to IESG for Publication", urlreverse('ietf.doc.views_draft.to_iesg', kwargs=dict(name=doc.name))))
augment_docs_with_tracking_info([doc], request.user)
@ -673,7 +673,7 @@ def document_history(request, name):
url = ""
if name.startswith("charter"):
url = request.build_absolute_uri(urlreverse("charter_with_milestones_txt", kwargs=dict(name=e.doc.name, rev=e.rev)))
url = request.build_absolute_uri(urlreverse('ietf.doc.views_charter.charter_with_milestones_txt', kwargs=dict(name=e.doc.name, rev=e.rev)))
elif name.startswith("conflict-review"):
url = find_history_active_at(e.doc, e.time).href()
elif name.startswith("status-change"):
@ -756,15 +756,15 @@ def document_writeup(request, name):
if doc.get_state("draft-iesg"):
writeups.append(("Announcement",
text_from_writeup("changed_ballot_approval_text"),
urlreverse("doc_ballot_approvaltext", kwargs=dict(name=doc.name))))
urlreverse('ietf.doc.views_ballot.ballot_approvaltext', kwargs=dict(name=doc.name))))
writeups.append(("Ballot Text",
text_from_writeup("changed_ballot_writeup_text"),
urlreverse("doc_ballot_writeupnotes", kwargs=dict(name=doc.name))))
urlreverse('ietf.doc.views_ballot.ballot_writeupnotes', kwargs=dict(name=doc.name))))
writeups.append(("RFC Editor Note",
text_from_writeup("changed_rfc_editor_note_text"),
urlreverse("doc_ballot_rfceditornote", kwargs=dict(name=doc.name))))
urlreverse('ietf.doc.views_ballot.ballot_rfceditornote', kwargs=dict(name=doc.name))))
elif doc.type_id == "charter":
sections.append(("WG Review Announcement",
@ -1004,7 +1004,7 @@ def add_comment(request, name):
email_comment(request, doc, e)
return redirect("doc_history", name=doc.name)
return redirect('ietf.doc.views_doc.document_history', name=doc.name)
else:
form = AddCommentForm()

View file

@ -73,7 +73,7 @@ class UploadMaterialForm(forms.Form):
existing = Document.objects.filter(type=self.doc_type, name=name)
if existing:
url = urlreverse("material_edit", kwargs={ 'name': existing[0].name, 'action': 'revise' })
url = urlreverse('ietf.doc.views_material.edit_material', kwargs={ 'name': existing[0].name, 'action': 'revise' })
raise forms.ValidationError(mark_safe("Can't upload: %s with name %s already exists. Choose another title and name for what you're uploading or <a href=\"%s\">revise the existing %s</a>." % (self.doc_type.name, name, url, name)))
return name

View file

@ -287,7 +287,7 @@ def search_for_name(request, name):
else:
search_args += "&rfcs=on&activedrafts=on&olddrafts=on"
return cached_redirect(cache_key, urlreverse("doc_search") + search_args)
return cached_redirect(cache_key, urlreverse('ietf.doc.views_search.search') + search_args)
def ad_dashboard_group(doc):

View file

@ -91,7 +91,7 @@ def change_state(request, name, option=None):
dict(form=form,
doc=status_change,
login=login,
help_url=reverse('state_help', kwargs=dict(type="status-change")),
help_url=reverse('ietf.doc.views_help.state_help', kwargs=dict(type="status-change")),
))
def send_status_change_eval_email(request,doc):

View file

@ -132,7 +132,7 @@ def edit_milestones(request, acronym, group_type=None, milestone_set="current"):
m.state = GroupMilestoneStateName.objects.get(slug="active")
elif milestone_set == "charter":
m.state = GroupMilestoneStateName.objects.get(slug="charter")
m.desc = c["desc"]
m.due = due_month_year_to_date(c)
m.resolved = c["resolved"]
@ -374,7 +374,7 @@ def reset_charter_milestones(request, group_type, acronym):
)
return redirect('group_edit_charter_milestones', group_type=group.type_id, acronym=group.acronym)
return redirect('ietf.group.milestones.edit_milestones;charter', group_type=group.type_id, acronym=group.acronym)
return render(request, 'group/reset_charter_milestones.html',
dict(group=group,

View file

@ -753,7 +753,7 @@ class MilestoneTests(TestCase):
def test_milestone_sets(self):
m1, m2, group = self.create_test_milestones()
for url in group_urlreverse_list(group, 'group_edit_milestones'):
for url in group_urlreverse_list(group, 'ietf.group.milestones.edit_milestones;current'):
login_testing_unauthorized(self, "secretary", url)
r = self.client.get(url)
@ -764,7 +764,7 @@ class MilestoneTests(TestCase):
login_testing_unauthorized(self, "secretary", url)
for url in group_urlreverse_list(group, 'group_edit_charter_milestones'):
for url in group_urlreverse_list(group, 'ietf.group.milestones.edit_milestones;charter'):
r = self.client.get(url)
self.assertEqual(r.status_code, 200)
self.assertTrue(m1.desc not in unicontent(r))
@ -773,7 +773,7 @@ class MilestoneTests(TestCase):
def test_add_milestone(self):
m1, m2, group = self.create_test_milestones()
url = urlreverse('group_edit_milestones', kwargs=dict(group_type=group.type_id, acronym=group.acronym))
url = urlreverse('ietf.group.milestones.edit_milestones;current', kwargs=dict(group_type=group.type_id, acronym=group.acronym))
login_testing_unauthorized(self, "secretary", url)
# normal get
@ -831,7 +831,7 @@ class MilestoneTests(TestCase):
def test_add_milestone_as_chair(self):
m1, m2, group = self.create_test_milestones()
url = urlreverse('group_edit_milestones', kwargs=dict(group_type=group.type_id, acronym=group.acronym))
url = urlreverse('ietf.group.milestones.edit_milestones;current', kwargs=dict(group_type=group.type_id, acronym=group.acronym))
login_testing_unauthorized(self, "marschairman", url)
# normal get
@ -868,7 +868,7 @@ class MilestoneTests(TestCase):
m1.state_id = "review"
m1.save()
url = urlreverse('group_edit_milestones', kwargs=dict(group_type=group.type_id, acronym=group.acronym))
url = urlreverse('ietf.group.milestones.edit_milestones;current', kwargs=dict(group_type=group.type_id, acronym=group.acronym))
login_testing_unauthorized(self, "ad", url)
# normal get
@ -897,7 +897,7 @@ class MilestoneTests(TestCase):
def test_delete_milestone(self):
m1, m2, group = self.create_test_milestones()
url = urlreverse('group_edit_milestones', kwargs=dict(group_type=group.type_id, acronym=group.acronym))
url = urlreverse('ietf.group.milestones.edit_milestones;current', kwargs=dict(group_type=group.type_id, acronym=group.acronym))
login_testing_unauthorized(self, "secretary", url)
milestones_before = GroupMilestone.objects.count()
@ -924,7 +924,7 @@ class MilestoneTests(TestCase):
def test_edit_milestone(self):
m1, m2, group = self.create_test_milestones()
url = urlreverse('group_edit_milestones', kwargs=dict(group_type=group.type_id, acronym=group.acronym))
url = urlreverse('ietf.group.milestones.edit_milestones;current', kwargs=dict(group_type=group.type_id, acronym=group.acronym))
login_testing_unauthorized(self, "secretary", url)
milestones_before = GroupMilestone.objects.count()
@ -979,7 +979,7 @@ class MilestoneTests(TestCase):
def test_reset_charter_milestones(self):
m1, m2, group = self.create_test_milestones()
url = urlreverse('group_reset_charter_milestones', kwargs=dict(group_type=group.type_id, acronym=group.acronym))
url = urlreverse('ietf.group.milestones.reset_charter_milestones', kwargs=dict(group_type=group.type_id, acronym=group.acronym))
login_testing_unauthorized(self, "secretary", url)
# normal get
@ -1095,12 +1095,12 @@ expand-ames-chairs@virtual.ietf.org mars_chair@ietf
os.unlink(self.group_alias_file.name)
def testAliases(self):
url = urlreverse('old_group_email_aliases', kwargs=dict(acronym="mars"))
url = urlreverse('ietf.group.urls_info_details.redirect.email', kwargs=dict(acronym="mars"))
r = self.client.get(url)
self.assertEqual(r.status_code, 302)
for testdict in [dict(acronym="mars"),dict(acronym="mars",group_type="wg")]:
url = urlreverse('old_group_email_aliases', kwargs=testdict)
url = urlreverse('ietf.group.urls_info_details.redirect.email', kwargs=testdict)
r = self.client.get(url,follow=True)
self.assertTrue(all([x in unicontent(r) for x in ['mars-ads@','mars-chairs@']]))
self.assertFalse(any([x in unicontent(r) for x in ['ames-ads@','ames-chairs@']]))
@ -1135,7 +1135,7 @@ class AjaxTests(TestCase):
def test_group_menu_data(self):
make_test_data()
r = self.client.get(urlreverse("group_menu_data"))
r = self.client.get(urlreverse('ietf.group.views_ajax.group_menu_data'))
self.assertEqual(r.status_code, 200)
parents = json.loads(r.content)

View file

@ -8,7 +8,7 @@ from ietf.utils.urls import url
urlpatterns = [
url(r'^$', views.active_groups),
url(r'^groupmenu.json', views_ajax.group_menu_data, None, "group_menu_data"),
url(r'^groupmenu.json', views_ajax.group_menu_data, None, 'ietf.group.views_ajax.group_menu_data'),
url(r'^%(acronym)s.json$' % settings.URL_REGEXPS, views_ajax.group_json),
url(r'^chartering/$', views.chartering_groups),
url(r'^chartering/create/(?P<group_type>(wg|rg))/$', views_edit.edit, {'action': "charter"}),

View file

@ -25,13 +25,13 @@ urlpatterns = [
url(r'^edit/$', views_edit.edit, {'action': "edit"}),
url(r'^edit/(?P<field>\w+)/?$', views_edit.edit, {'action': "edit"}),
url(r'^conclude/$', views_edit.conclude),
url(r'^milestones/$', milestone_views.edit_milestones, {'milestone_set': "current"}, "group_edit_milestones"),
url(r'^milestones/charter/$', milestone_views.edit_milestones, {'milestone_set': "charter"}, "group_edit_charter_milestones"),
url(r'^milestones/charter/reset/$', milestone_views.reset_charter_milestones, None, "group_reset_charter_milestones"),
url(r'^milestones/$', milestone_views.edit_milestones, {'milestone_set': "current"}, name='ietf.group.milestones.edit_milestones;current'),
url(r'^milestones/charter/$', milestone_views.edit_milestones, {'milestone_set': "charter"}, name='ietf.group.milestones.edit_milestones;charter'),
url(r'^milestones/charter/reset/$', milestone_views.reset_charter_milestones, None, 'ietf.group.milestones.reset_charter_milestones'),
url(r'^workflow/$', views_edit.customize_workflow),
url(r'^materials/$', views.materials),
url(r'^materials/new/$', material_views.choose_material_type),
url(r'^materials/new/(?P<doc_type>[\w-]+)/$', material_views.edit_material, { 'action': "new" }, "group_new_material"),
url(r'^materials/new/(?P<doc_type>[\w-]+)/$', material_views.edit_material, { 'action': "new" }, 'ietf.doc.views_material.edit_material'),
url(r'^archives/$', views.derived_archives),
url(r'^photos/$', views.group_photos),
url(r'^reviews/$', views_review.review_requests),
@ -40,5 +40,5 @@ urlpatterns = [
url(r'^reviewers/$', views_review.reviewer_overview),
url(r'^reviewers/(?P<reviewer_email>[\w%+-.@]+)/settings/$', views_review.change_reviewer_settings),
url(r'^secretarysettings/$', views_review.change_review_secretary_settings),
url(r'^email-aliases/$', RedirectView.as_view(pattern_name=views.email,permanent=False),name='old_group_email_aliases'),
url(r'^email-aliases/$', RedirectView.as_view(pattern_name=views.email,permanent=False),name='ietf.group.urls_info_details.redirect.email'),
]

View file

@ -200,7 +200,7 @@ def construct_group_menu_context(request, group, selected, group_type, others):
if group.features.has_milestones:
if group.state_id != "proposed" and (is_admin or can_manage):
actions.append((u"Edit milestones", urlreverse("group_edit_milestones", kwargs=kwargs)))
actions.append((u"Edit milestones", urlreverse('ietf.group.milestones.edit_milestones;current', kwargs=kwargs)))
if group.features.has_documents:
clist = CommunityList.objects.filter(group=group).first()

View file

@ -428,7 +428,7 @@ def group_about(request, acronym, group_type=None):
can_manage = can_manage_group_type(request.user, group)
charter_submit_url = ""
if group.features.has_chartering_process:
charter_submit_url = urlreverse("charter_submit", kwargs={ "name": charter_name_for_group(group) })
charter_submit_url = urlreverse('ietf.doc.views_charter.submit', kwargs={ "name": charter_name_for_group(group) })
can_provide_update = can_provide_status_update(request.user, group)
status_update = group.latest_event(type="status_update")

View file

@ -230,7 +230,7 @@ def format_urls(urls, fs="\n"):
# group.charter = get_or_create_initial_charter(group, group_type)
# group.save()
#
# return redirect('charter_submit', name=group.charter.name, option="initcharter")
# return redirect('ietf.doc.views_charter.submit', name=group.charter.name, option="initcharter")
@login_required
def edit(request, group_type=None, acronym=None, action="edit", field=None):
@ -377,7 +377,7 @@ def edit(request, group_type=None, acronym=None, action="edit", field=None):
group.save()
if action=="charter":
return redirect('charter_submit', name=charter_name_for_group(group), option="initcharter")
return redirect('ietf.doc.views_charter.submit', name=charter_name_for_group(group), option="initcharter")
return HttpResponseRedirect(group.about_url())
else: # form.is_valid()

View file

@ -53,7 +53,7 @@ class SearchableIprDisclosuresField(forms.CharField):
# doing this in the constructor is difficult because the URL
# patterns may not have been fully constructed there yet
self.widget.attrs["data-ajax-url"] = urlreverse("ipr_ajax_search")
self.widget.attrs["data-ajax-url"] = urlreverse('ietf.ipr.views.ajax_search')
return u",".join(unicode(e.pk) for e in value)

View file

@ -439,7 +439,7 @@ class IprTests(TestCase):
def test_addcomment(self):
make_test_data()
ipr = IprDisclosureBase.objects.get(title='Statement regarding rights')
url = urlreverse("ipr_add_comment", kwargs={ "id": ipr.id })
url = urlreverse('ietf.ipr.views.add_comment', kwargs={ "id": ipr.id })
self.client.login(username="secretary", password="secretary+password")
r = self.client.get(url)
self.assertEqual(r.status_code,200)
@ -462,7 +462,7 @@ class IprTests(TestCase):
def test_addemail(self):
make_test_data()
ipr = IprDisclosureBase.objects.get(title='Statement regarding rights')
url = urlreverse("ipr_add_email", kwargs={ "id": ipr.id })
url = urlreverse('ietf.ipr.views.add_email', kwargs={ "id": ipr.id })
self.client.login(username="secretary", password="secretary+password")
r = self.client.get(url)
self.assertEqual(r.status_code,200)
@ -485,7 +485,7 @@ I would like to revoke this declaration.
def test_admin_pending(self):
make_test_data()
url = urlreverse("ipr_admin",kwargs={'state':'pending'})
url = urlreverse('ietf.ipr.views.admin',kwargs={'state':'pending'})
self.client.login(username="secretary", password="secretary+password")
# test for presence of pending ipr
@ -502,7 +502,7 @@ I would like to revoke this declaration.
def test_admin_removed(self):
make_test_data()
url = urlreverse("ipr_admin",kwargs={'state':'removed'})
url = urlreverse('ietf.ipr.views.admin',kwargs={'state':'removed'})
self.client.login(username="secretary", password="secretary+password")
# test for presence of pending ipr
@ -523,7 +523,7 @@ I would like to revoke this declaration.
def test_post(self):
make_test_data()
ipr = IprDisclosureBase.objects.get(title='Statement regarding rights')
url = urlreverse("ipr_post", kwargs={ "id": ipr.id })
url = urlreverse('ietf.ipr.views.post', kwargs={ "id": ipr.id })
login_testing_unauthorized(self, "secretary", url)
r = self.client.get(url,follow=True)
@ -535,7 +535,7 @@ I would like to revoke this declaration.
self.assertEqual(r.status_code,200)
ipr = IprDisclosureBase.objects.get(title='Statement regarding rights')
self.assertEqual(ipr.state.slug,'posted')
url = urlreverse('ipr_notify',kwargs={ 'id':ipr.id, 'type':'posted'})
url = urlreverse('ietf.ipr.views.notify',kwargs={ 'id':ipr.id, 'type':'posted'})
r = self.client.get(url,follow=True)
q = PyQuery(r.content)
data = dict()
@ -560,7 +560,7 @@ I would like to revoke this declaration.
# first send a mail
make_test_data()
ipr = IprDisclosureBase.objects.get(title='Statement regarding rights')
url = urlreverse("ipr_email",kwargs={ "id": ipr.id })
url = urlreverse('ietf.ipr.views.email',kwargs={ "id": ipr.id })
self.client.login(username="secretary", password="secretary+password")
yesterday = datetime.date.today() - datetime.timedelta(1)
data = dict(

View file

@ -9,20 +9,20 @@ from ietf.utils.urls import url
urlpatterns = [
url(r'^$', views.showlist),
url(r'^about/$', views.about),
url(r'^admin/$', RedirectView.as_view(url=reverse_lazy('ipr_admin',kwargs={'state':'pending'}), permanent=True),name="ipr_admin_main"),
url(r'^admin/(?P<state>pending|removed|parked)/$', views.admin, name='ipr_admin'),
url(r'^ajax/search/$', views.ajax_search, name='ipr_ajax_search'),
url(r'^admin/$', RedirectView.as_view(url=reverse_lazy('ietf.ipr.views.admin',kwargs={'state':'pending'}), permanent=True)),
url(r'^admin/(?P<state>pending|removed|parked)/$', views.admin),
url(r'^ajax/search/$', views.ajax_search),
url(r'^by-draft/$', views.by_draft_txt),
url(r'^by-draft-recursive/$', views.by_draft_recursive_txt),
url(r'^(?P<id>\d+)/$', views.show),
url(r'^(?P<id>\d+)/addcomment/$', views.add_comment, name='ipr_add_comment'),
url(r'^(?P<id>\d+)/addemail/$', views.add_email, name='ipr_add_email'),
url(r'^(?P<id>\d+)/edit/$', views.edit, name='ipr_edit'),
url(r'^(?P<id>\d+)/email/$', views.email, name='ipr_email'),
url(r'^(?P<id>\d+)/addcomment/$', views.add_comment),
url(r'^(?P<id>\d+)/addemail/$', views.add_email),
url(r'^(?P<id>\d+)/edit/$', views.edit),
url(r'^(?P<id>\d+)/email/$', views.email),
url(r'^(?P<id>\d+)/history/$', views.history),
url(r'^(?P<id>\d+)/notify/(?P<type>update|posted)/$', views.notify, name='ipr_notify'),
url(r'^(?P<id>\d+)/post/$', views.post, name='ipr_post'),
url(r'^(?P<id>\d+)/state/$', views.state, name='ipr_state'),
url(r'^(?P<id>\d+)/notify/(?P<type>update|posted)/$', views.notify),
url(r'^(?P<id>\d+)/post/$', views.post),
url(r'^(?P<id>\d+)/state/$', views.state),
url(r'^update/$', RedirectView.as_view(url=reverse_lazy('ietf.ipr.views.showlist'), permanent=True)),
url(r'^update/(?P<id>\d+)/$', views.update),
url(r'^new-(?P<type>(specific|generic|third-party))/$', views.new),

View file

@ -232,9 +232,9 @@ def admin(request, state):
tabs = [
t + (t[0].lower() == state.lower(),)
for t in [
('Pending', urlreverse('ipr_admin', kwargs={'state':'pending'})),
('Removed', urlreverse('ipr_admin', kwargs={'state':'removed'})),
('Parked', urlreverse('ipr_admin', kwargs={'state':'parked'})),
('Pending', urlreverse('ietf.ipr.views.admin', kwargs={'state':'pending'})),
('Removed', urlreverse('ietf.ipr.views.admin', kwargs={'state':'removed'})),
('Parked', urlreverse('ietf.ipr.views.admin', kwargs={'state':'parked'})),
]]
return render(request, 'ipr/admin_list.html', {
@ -561,7 +561,7 @@ def post(request, id):
desc="Disclosure Posted")
messages.success(request, 'Disclosure Posted')
return redirect("ipr_notify", id=ipr.id, type='posted')
return redirect('ietf.ipr.views.notify', id=ipr.id, type='posted')
def search(request):
search_type = request.GET.get("submit")

View file

@ -7,7 +7,7 @@ from ietf.utils.urls import url
urlpatterns = [
url(r'^help/$', TemplateView.as_view(template_name='liaisons/help.html')),
url(r'^help/fields/$', TemplateView.as_view(template_name='liaisons/field_help.html'), name='liaisons_field_help'),
url(r'^help/fields/$', TemplateView.as_view(template_name='liaisons/field_help.html')),
url(r'^help/from_ietf/$', TemplateView.as_view(template_name='liaisons/guide_from_ietf.html')),
url(r'^help/to_ietf/$', TemplateView.as_view(template_name='liaisons/guide_to_ietf.html')),
url(r'^managers/$', RedirectView.as_view(url='https://www.ietf.org/liaison/managers.html', permanent=True)),
@ -37,4 +37,4 @@ urlpatterns += [
url(r'^add/$', views.redirect_add),
url(r'^for_approval/$', views.redirect_for_approval),
url(r'^for_approval/(?P<object_id>\d+)/$', views.redirect_for_approval),
]
]

View file

@ -6,6 +6,8 @@ import urlparse
from django.conf import settings
from django.template.loader import render_to_string
import debug # pyflakes:ignore
from ietf.dbtemplate.models import DBTemplate
from ietf.meeting.models import Session
from ietf.group.utils import can_manage_materials

View file

@ -11,7 +11,7 @@ def nomcom_private_key_required(view_func):
if not year:
raise Exception, 'View decorated with nomcom_private_key_required must receive a year argument'
if not 'NOMCOM_PRIVATE_KEY_%s' % year in request.session:
return HttpResponseRedirect('%s?back_to=%s' % (reverse('nomcom_private_key', None, args=(year, )), urlquote(request.get_full_path())))
return HttpResponseRedirect('%s?back_to=%s' % (reverse('ietf.nomcom.views.private_key', None, args=(year, )), urlquote(request.get_full_path())))
else:
return view_func(request, *args, **kwargs)
return functools.update_wrapper(inner, view_func)

View file

@ -192,7 +192,7 @@ class EditMembersFormPreview(FormPreview):
person=member['person'],
email=member['email_obj'])
return redirect('nomcom_edit_members', year=self.year)
return redirect('ietf.nomcom.forms.EditMembersFormPreview', year=self.year)
class EditNomcomForm(forms.ModelForm):
@ -351,7 +351,7 @@ class NominateForm(forms.ModelForm):
super(NominateForm, self).__init__(*args, **kwargs)
new_person_url_name = 'nomcom_%s_nominate_newperson' % ('public' if self.public else 'private' )
new_person_url_name = 'ietf.nomcom.views.%s_nominate_newperson' % ('public' if self.public else 'private' )
self.fields['searched_email'].label = 'Candidate email'
self.fields['searched_email'].help_text = 'Search by name or email address. Click <a href="%s">here</a> if the search does not find the candidate you want to nominate.' % reverse(new_person_url_name,kwargs={'year':self.nomcom.year()})
self.fields['nominator_email'].label = 'Nominator email'
@ -476,7 +476,7 @@ class NominateNewPersonForm(forms.ModelForm):
def clean_candidate_email(self):
candidate_email = self.cleaned_data['candidate_email']
if Email.objects.filter(address=candidate_email).exists():
normal_url_name = 'nomcom_%s_nominate' % 'public' if self.public else 'private'
normal_url_name = 'ietf.nomcom.views.%s_nominate' % 'public' if self.public else 'private'
msg = '%s is already in the datatracker. \
Use the <a href="%s">normal nomination form</a> to nominate the person \
with this address.\

View file

@ -79,22 +79,22 @@ class NomcomViewsTest(TestCase):
self.private_index_url = reverse('ietf.nomcom.views.private_index', kwargs={'year': self.year})
self.private_merge_person_url = reverse('ietf.nomcom.views.private_merge_person', kwargs={'year': self.year})
self.private_merge_nominee_url = reverse('ietf.nomcom.views.private_merge_nominee', kwargs={'year': self.year})
self.edit_members_url = reverse('nomcom_edit_members', kwargs={'year': self.year})
self.edit_nomcom_url = reverse('nomcom_edit_nomcom', kwargs={'year': self.year})
self.private_nominate_url = reverse('nomcom_private_nominate', kwargs={'year': self.year})
self.private_nominate_newperson_url = reverse('nomcom_private_nominate_newperson', kwargs={'year': self.year})
self.add_questionnaire_url = reverse('nomcom_private_questionnaire', kwargs={'year': self.year})
self.private_feedback_url = reverse('nomcom_private_feedback', kwargs={'year': self.year})
self.positions_url = reverse("nomcom_list_positions", kwargs={'year': self.year})
self.edit_position_url = reverse("nomcom_add_position", kwargs={'year': self.year})
self.edit_members_url = reverse('ietf.nomcom.forms.EditMembersFormPreview', kwargs={'year': self.year})
self.edit_nomcom_url = reverse('ietf.nomcom.views.edit_nomcom', kwargs={'year': self.year})
self.private_nominate_url = reverse('ietf.nomcom.views.private_nominate', kwargs={'year': self.year})
self.private_nominate_newperson_url = reverse('ietf.nomcom.views.private_nominate_newperson', kwargs={'year': self.year})
self.add_questionnaire_url = reverse('ietf.nomcom.views.private_questionnaire', kwargs={'year': self.year})
self.private_feedback_url = reverse('ietf.nomcom.views.private_feedback', kwargs={'year': self.year})
self.positions_url = reverse('ietf.nomcom.views.list_positions', kwargs={'year': self.year})
self.edit_position_url = reverse('ietf.nomcom.views.edit_position', kwargs={'year': self.year})
# public urls
self.index_url = reverse('nomcom_year_index', kwargs={'year': self.year})
self.requirements_url = reverse('nomcom_requirements', kwargs={'year': self.year})
self.questionnaires_url = reverse('nomcom_questionnaires', kwargs={'year': self.year})
self.public_feedback_url = reverse('nomcom_public_feedback', kwargs={'year': self.year})
self.public_nominate_url = reverse('nomcom_public_nominate', kwargs={'year': self.year})
self.public_nominate_newperson_url = reverse('nomcom_public_nominate_newperson', kwargs={'year': self.year})
self.index_url = reverse('ietf.nomcom.views.year_index', kwargs={'year': self.year})
self.requirements_url = reverse('ietf.nomcom.views.requirements', kwargs={'year': self.year})
self.questionnaires_url = reverse('ietf.nomcom.views.questionnaires', kwargs={'year': self.year})
self.public_feedback_url = reverse('ietf.nomcom.views.public_feedback', kwargs={'year': self.year})
self.public_nominate_url = reverse('ietf.nomcom.views.public_nominate', kwargs={'year': self.year})
self.public_nominate_newperson_url = reverse('ietf.nomcom.views.public_nominate_newperson', kwargs={'year': self.year})
def tearDown(self):
clean_test_public_keys_dir(self)
@ -1026,7 +1026,7 @@ class ReminderTest(TestCase):
self.assertTrue('please accept' in outbox[-1]['Subject'])
def test_remind_accept_view(self):
url = reverse('nomcom_send_reminder_mail', kwargs={'year': NOMCOM_YEAR,'type':'accept'})
url = reverse('ietf.nomcom.views.send_reminder_mail', kwargs={'year': NOMCOM_YEAR,'type':'accept'})
login_testing_unauthorized(self, CHAIR_USER, url)
messages_before=len(outbox)
test_data = {'selected': [x.id for x in Nominee.objects.filter(nomcom=self.nomcom)]}
@ -1037,7 +1037,7 @@ class ReminderTest(TestCase):
self.assertTrue('nominee2@' in outbox[-1]['To'])
def test_remind_questionnaire_view(self):
url = reverse('nomcom_send_reminder_mail', kwargs={'year': NOMCOM_YEAR,'type':'questionnaire'})
url = reverse('ietf.nomcom.views.send_reminder_mail', kwargs={'year': NOMCOM_YEAR,'type':'questionnaire'})
login_testing_unauthorized(self, CHAIR_USER, url)
messages_before=len(outbox)
test_data = {'selected': [x.id for x in Nominee.objects.filter(nomcom=self.nomcom)]}
@ -1059,7 +1059,7 @@ class InactiveNomcomTests(TestCase):
clean_test_public_keys_dir(self)
def test_feedback_closed(self):
for view in ['nomcom_public_feedback', 'nomcom_private_feedback']:
for view in ['ietf.nomcom.views.public_feedback', 'ietf.nomcom.views.private_feedback']:
url = reverse(view, kwargs={'year': self.nc.year()})
who = self.plain_person if 'public' in view else self.member
login_testing_unauthorized(self, who.user.username, url)
@ -1090,7 +1090,7 @@ class InactiveNomcomTests(TestCase):
self.assertEqual( fb_before, self.nc.feedback_set.count() )
def test_nominations_closed(self):
for view in ['nomcom_public_nominate', 'nomcom_private_nominate']:
for view in ['ietf.nomcom.views.public_nominate', 'ietf.nomcom.views.private_nominate']:
url = reverse(view, kwargs={'year': self.nc.year() })
who = self.plain_person if 'public' in view else self.member
login_testing_unauthorized(self, who.user.username, url)
@ -1114,7 +1114,7 @@ class InactiveNomcomTests(TestCase):
self.assertEqual(response.status_code, 403)
def test_can_view_but_cannot_edit_nomcom_settings(self):
url = reverse('nomcom_edit_nomcom',kwargs={'year':self.nc.year() })
url = reverse('ietf.nomcom.views.edit_nomcom',kwargs={'year':self.nc.year() })
login_testing_unauthorized(self, self.chair.user.username, url)
response = self.client.get(url)
self.assertEqual(response.status_code, 200)
@ -1122,7 +1122,7 @@ class InactiveNomcomTests(TestCase):
self.assertEqual(response.status_code, 403)
def test_cannot_classify_feedback(self):
url = reverse('nomcom_view_feedback_pending',kwargs={'year':self.nc.year() })
url = reverse('ietf.nomcom.views.view_feedback_pending',kwargs={'year':self.nc.year() })
login_testing_unauthorized(self, self.chair.user.username, url)
provide_private_key_to_test_client(self)
response = self.client.get(url)
@ -1145,7 +1145,7 @@ class InactiveNomcomTests(TestCase):
self.assertTrue('not active' in q('.alert-warning').text() )
def test_email_pasting_closed(self):
url = reverse('nomcom_private_feedback_email', kwargs={'year':self.nc.year()})
url = reverse('ietf.nomcom.views.private_feedback_email', kwargs={'year':self.nc.year()})
login_testing_unauthorized(self, self.chair.user.username, url)
response = self.client.get(url)
self.assertEqual(response.status_code, 200)
@ -1159,7 +1159,7 @@ class InactiveNomcomTests(TestCase):
self.assertTrue('not active' in q('.alert-warning').text() )
def test_questionnaire_entry_closed(self):
url = reverse('nomcom_private_questionnaire', kwargs={'year':self.nc.year()})
url = reverse('ietf.nomcom.views.private_questionnaire', kwargs={'year':self.nc.year()})
login_testing_unauthorized(self, self.chair.user.username, url)
response = self.client.get(url)
self.assertEqual(response.status_code, 200)
@ -1171,7 +1171,7 @@ class InactiveNomcomTests(TestCase):
self.assertTrue('not active' in q('.alert-warning').text() )
def _test_send_reminders_closed(self,rtype):
url = reverse('nomcom_send_reminder_mail', kwargs={'year':self.nc.year(),'type':rtype })
url = reverse('ietf.nomcom.views.send_reminder_mail', kwargs={'year':self.nc.year(),'type':rtype })
login_testing_unauthorized(self, self.chair.user.username, url)
response = self.client.get(url)
self.assertEqual(response.status_code, 200)
@ -1200,7 +1200,7 @@ class InactiveNomcomTests(TestCase):
self.assertTrue('not active' in q('.alert-warning').text() )
def test_cannot_edit_position(self):
url = reverse('nomcom_edit_position',kwargs={'year':self.nc.year(),'position_id':self.nc.position_set.first().id})
url = reverse('ietf.nomcom.views.edit_position',kwargs={'year':self.nc.year(),'position_id':self.nc.position_set.first().id})
login_testing_unauthorized(self, self.chair.user.username, url)
provide_private_key_to_test_client(self)
response = self.client.get(url)
@ -1209,7 +1209,7 @@ class InactiveNomcomTests(TestCase):
self.assertEqual(response.status_code, 403)
def test_cannot_add_position(self):
url = reverse('nomcom_add_position',kwargs={'year':self.nc.year()})
url = reverse('ietf.nomcom.views.edit_position',kwargs={'year':self.nc.year()})
login_testing_unauthorized(self, self.chair.user.username, url)
provide_private_key_to_test_client(self)
response = self.client.get(url)
@ -1218,7 +1218,7 @@ class InactiveNomcomTests(TestCase):
self.assertEqual(response.status_code, 403)
def test_cannot_delete_position(self):
url = reverse('nomcom_remove_position',kwargs={'year':self.nc.year(),'position_id':self.nc.position_set.first().id})
url = reverse('ietf.nomcom.views.remove_position',kwargs={'year':self.nc.year(),'position_id':self.nc.position_set.first().id})
login_testing_unauthorized(self, self.chair.user.username, url)
provide_private_key_to_test_client(self)
response = self.client.get(url)
@ -1233,7 +1233,7 @@ class InactiveNomcomTests(TestCase):
variables='',
type_id='plain',
content='test content')
url = reverse('nomcom_edit_template',kwargs={'year':self.nc.year(), 'template_id':template.id})
url = reverse('ietf.nomcom.views.edit_template',kwargs={'year':self.nc.year(), 'template_id':template.id})
login_testing_unauthorized(self, self.chair.user.username, url)
response = self.client.get(url)
self.assertEqual(response.status_code, 200)
@ -1262,7 +1262,7 @@ class FeedbackLastSeenTests(TestCase):
clean_test_public_keys_dir(self)
def test_feedback_index_badges(self):
url = reverse('nomcom_view_feedback',kwargs={'year':self.nc.year()})
url = reverse('ietf.nomcom.views.view_feedback',kwargs={'year':self.nc.year()})
login_testing_unauthorized(self, self.member.user.username, url)
provide_private_key_to_test_client(self)
response = self.client.get(url)
@ -1324,7 +1324,7 @@ class NewActiveNomComTests(TestCase):
settings.DAYS_TO_EXPIRE_NOMINATION_LINK = self.saved_days_to_expire_nomination_link
def test_help(self):
url = reverse('nomcom_chair_help',kwargs={'year':self.nc.year()})
url = reverse('ietf.nomcom.views.configuration_help',kwargs={'year':self.nc.year()})
login_testing_unauthorized(self, self.chair.user.username, url)
response = self.client.get(url)
self.assertEqual(response.status_code,200)
@ -1386,7 +1386,7 @@ class NewActiveNomComTests(TestCase):
self.assertEqual(Feedback.objects.count(),feedback_count_before+1)
def test_provide_private_key(self):
url = reverse('nomcom_private_key',kwargs={'year':self.nc.year()})
url = reverse('ietf.nomcom.views.private_key',kwargs={'year':self.nc.year()})
login_testing_unauthorized(self,self.chair.user.username,url)
response = self.client.get(url)
self.assertEqual(response.status_code,200)
@ -1394,7 +1394,7 @@ class NewActiveNomComTests(TestCase):
self.assertEqual(response.status_code,302)
def test_email_pasting(self):
url = reverse('nomcom_private_feedback_email',kwargs={'year':self.nc.year()})
url = reverse('ietf.nomcom.views.private_feedback_email',kwargs={'year':self.nc.year()})
login_testing_unauthorized(self,self.chair.user.username,url)
response = self.client.get(url)
self.assertEqual(response.status_code,200)
@ -1414,7 +1414,7 @@ Junk body for testing
self.assertEqual(Feedback.objects.count(),fb_count_before+1)
def test_simple_feedback_pending(self):
url = reverse('nomcom_view_feedback_pending',kwargs={'year':self.nc.year() })
url = reverse('ietf.nomcom.views.view_feedback_pending',kwargs={'year':self.nc.year() })
login_testing_unauthorized(self, self.chair.user.username, url)
provide_private_key_to_test_client(self)
@ -1523,7 +1523,7 @@ Junk body for testing
self.assertEqual(np.nominee.feedback_set.count(),fb_count_before+1)
def test_complicated_feedback_pending(self):
url = reverse('nomcom_view_feedback_pending',kwargs={'year':self.nc.year() })
url = reverse('ietf.nomcom.views.view_feedback_pending',kwargs={'year':self.nc.year() })
login_testing_unauthorized(self, self.chair.user.username, url)
provide_private_key_to_test_client(self)
@ -1597,7 +1597,7 @@ Junk body for testing
def test_feedback_unrelated(self):
FeedbackFactory(nomcom=self.nc,type_id='junk')
url=reverse('nomcom_view_feedback_unrelated',kwargs={'year':self.nc.year()})
url=reverse('ietf.nomcom.views.view_feedback_unrelated',kwargs={'year':self.nc.year()})
login_testing_unauthorized(self,self.chair.user.username,url)
provide_private_key_to_test_client(self)
response = self.client.get(url)
@ -1610,7 +1610,7 @@ Junk body for testing
variables='',
type_id='plain',
content='test content')
url=reverse('nomcom_list_templates',kwargs={'year':self.nc.year()})
url=reverse('ietf.nomcom.views.list_templates',kwargs={'year':self.nc.year()})
login_testing_unauthorized(self,self.chair.user.username,url)
response = self.client.get(url)
self.assertEqual(response.status_code,200)
@ -1622,7 +1622,7 @@ Junk body for testing
variables='',
type_id='plain',
content='test content')
url=reverse('nomcom_edit_template',kwargs={'year':self.nc.year(),'template_id':template.id})
url=reverse('ietf.nomcom.views.edit_template',kwargs={'year':self.nc.year(),'template_id':template.id})
login_testing_unauthorized(self,self.chair.user.username,url)
response = self.client.get(url)
self.assertEqual(response.status_code,200)
@ -1632,7 +1632,7 @@ Junk body for testing
self.assertEqual('more interesting test content',template.content)
def test_list_positions(self):
url = reverse('nomcom_list_positions',kwargs={'year':self.nc.year()})
url = reverse('ietf.nomcom.views.list_positions',kwargs={'year':self.nc.year()})
login_testing_unauthorized(self,self.chair.user.username,url)
response = self.client.get(url)
self.assertEqual(response.status_code,200)
@ -1641,7 +1641,7 @@ Junk body for testing
position = self.nc.position_set.filter(nomineeposition__isnull=False).first()
f = FeedbackFactory(nomcom=self.nc)
f.positions.add(position)
url = reverse('nomcom_remove_position',kwargs={'year':self.nc.year(),'position_id':position.id})
url = reverse('ietf.nomcom.views.remove_position',kwargs={'year':self.nc.year(),'position_id':position.id})
login_testing_unauthorized(self,self.chair.user.username,url)
response = self.client.get(url)
self.assertEqual(response.status_code,200)
@ -1653,14 +1653,14 @@ Junk body for testing
def test_remove_invalid_position(self):
no_such_position_id = self.nc.position_set.aggregate(Max('id'))['id__max']+1
url = reverse('nomcom_remove_position',kwargs={'year':self.nc.year(),'position_id':no_such_position_id})
url = reverse('ietf.nomcom.views.remove_position',kwargs={'year':self.nc.year(),'position_id':no_such_position_id})
login_testing_unauthorized(self,self.chair.user.username,url)
response = self.client.get(url)
self.assertEqual(response.status_code, 404)
def test_edit_position(self):
position = self.nc.position_set.filter(is_open=True).first()
url = reverse('nomcom_edit_position',kwargs={'year':self.nc.year(),'position_id':position.id})
url = reverse('ietf.nomcom.views.edit_position',kwargs={'year':self.nc.year(),'position_id':position.id})
login_testing_unauthorized(self,self.chair.user.username,url)
response = self.client.get(url)
self.assertEqual(response.status_code, 200)
@ -1672,7 +1672,7 @@ Junk body for testing
def test_edit_invalid_position(self):
no_such_position_id = self.nc.position_set.aggregate(Max('id'))['id__max']+1
url = reverse('nomcom_edit_position',kwargs={'year':self.nc.year(),'position_id':no_such_position_id})
url = reverse('ietf.nomcom.views.edit_position',kwargs={'year':self.nc.year(),'position_id':no_such_position_id})
login_testing_unauthorized(self,self.chair.user.username,url)
response = self.client.get(url)
self.assertEqual(response.status_code, 404)
@ -1680,7 +1680,7 @@ Junk body for testing
def test_edit_nominee(self):
nominee = self.nc.nominee_set.order_by('pk').first()
new_email = EmailFactory(person=nominee.person)
url = reverse('nomcom_edit_nominee',kwargs={'year':self.nc.year(),'nominee_id':nominee.id})
url = reverse('ietf.nomcom.views.edit_nominee',kwargs={'year':self.nc.year(),'nominee_id':nominee.id})
login_testing_unauthorized(self,self.chair.user.username,url)
response = self.client.get(url)
self.assertEqual(response.status_code, 200)
@ -1735,17 +1735,17 @@ class NoPublicKeyTests(TestCase):
def test_not_yet(self):
# Warn reminder mail
self.do_common_work(reverse('nomcom_send_reminder_mail',kwargs={'year':self.nc.year(),'type':'accept'}),True)
self.do_common_work(reverse('ietf.nomcom.views.send_reminder_mail',kwargs={'year':self.nc.year(),'type':'accept'}),True)
# No nominations
self.do_common_work(reverse('nomcom_private_nominate',kwargs={'year':self.nc.year()}),False)
self.do_common_work(reverse('ietf.nomcom.views.private_nominate',kwargs={'year':self.nc.year()}),False)
# No feedback
self.do_common_work(reverse('nomcom_private_feedback',kwargs={'year':self.nc.year()}),False)
self.do_common_work(reverse('ietf.nomcom.views.private_feedback',kwargs={'year':self.nc.year()}),False)
# No feedback email
self.do_common_work(reverse('nomcom_private_feedback_email',kwargs={'year':self.nc.year()}),False)
self.do_common_work(reverse('ietf.nomcom.views.private_feedback_email',kwargs={'year':self.nc.year()}),False)
# No questionnaire responses
self.do_common_work(reverse('nomcom_private_questionnaire',kwargs={'year':self.nc.year()}),False)
self.do_common_work(reverse('ietf.nomcom.views.private_questionnaire',kwargs={'year':self.nc.year()}),False)
# Warn on edit nomcom
self.do_common_work(reverse('nomcom_edit_nomcom',kwargs={'year':self.nc.year()}),True)
self.do_common_work(reverse('ietf.nomcom.views.edit_nomcom',kwargs={'year':self.nc.year()}),True)
class MergePersonTests(TestCase):
def setUp(self):

View file

@ -8,38 +8,37 @@ urlpatterns = [
url(r'^$', views.index),
url(r'^ann/$', views.announcements),
url(r'^(?P<year>\d{4})/private/$', views.private_index),
url(r'^(?P<year>\d{4})/private/key/$', views.private_key, name='nomcom_private_key'),
url(r'^(?P<year>\d{4})/private/help/$', views.configuration_help, name='nomcom_chair_help'),
url(r'^(?P<year>\d{4})/private/nominate/$', views.private_nominate, name='nomcom_private_nominate'),
url(r'^(?P<year>\d{4})/private/nominate/newperson$', views.private_nominate_newperson, name='nomcom_private_nominate_newperson'),
url(r'^(?P<year>\d{4})/private/feedback/$', views.private_feedback, name='nomcom_private_feedback'),
url(r'^(?P<year>\d{4})/private/feedback-email/$', views.private_feedback_email, name='nomcom_private_feedback_email'),
url(r'^(?P<year>\d{4})/private/questionnaire-response/$', views.private_questionnaire, name='nomcom_private_questionnaire'),
url(r'^(?P<year>\d{4})/private/view-feedback/$', views.view_feedback, name='nomcom_view_feedback'),
url(r'^(?P<year>\d{4})/private/view-feedback/unrelated/$', views.view_feedback_unrelated, name='nomcom_view_feedback_unrelated'),
url(r'^(?P<year>\d{4})/private/view-feedback/pending/$', views.view_feedback_pending, name='nomcom_view_feedback_pending'),
url(r'^(?P<year>\d{4})/private/key/$', views.private_key),
url(r'^(?P<year>\d{4})/private/help/$', views.configuration_help),
url(r'^(?P<year>\d{4})/private/nominate/$', views.private_nominate),
url(r'^(?P<year>\d{4})/private/nominate/newperson$', views.private_nominate_newperson),
url(r'^(?P<year>\d{4})/private/feedback/$', views.private_feedback),
url(r'^(?P<year>\d{4})/private/feedback-email/$', views.private_feedback_email),
url(r'^(?P<year>\d{4})/private/questionnaire-response/$', views.private_questionnaire),
url(r'^(?P<year>\d{4})/private/view-feedback/$', views.view_feedback),
url(r'^(?P<year>\d{4})/private/view-feedback/unrelated/$', views.view_feedback_unrelated),
url(r'^(?P<year>\d{4})/private/view-feedback/pending/$', views.view_feedback_pending),
url(r'^(?P<year>\d{4})/private/view-feedback/nominee/(?P<nominee_id>\d+)$', views.view_feedback_nominee),
url(r'^(?P<year>\d{4})/private/edit/nominee/(?P<nominee_id>\d+)$', views.edit_nominee, name='nomcom_edit_nominee'),
url(r'^(?P<year>\d{4})/private/edit/nominee/(?P<nominee_id>\d+)$', views.edit_nominee),
url(r'^(?P<year>\d{4})/private/merge-nominee/?$', views.private_merge_nominee),
url(r'^(?P<year>\d{4})/private/merge-person/?$', views.private_merge_person),
# url(r'^(?P<year>\d{4})/private/send-reminder-mail/$', RedirectView.as_view(url=reverse_lazy('nomcom_send_reminder_mail',kwargs={'year':year,'type':'accept'}))),
url(r'^(?P<year>\d{4})/private/send-reminder-mail/(?P<type>\w+)/$', views.send_reminder_mail, name='nomcom_send_reminder_mail'),
url(r'^(?P<year>\d{4})/private/edit-members/$', EditMembersFormPreview(EditMembersForm), name='nomcom_edit_members'),
url(r'^(?P<year>\d{4})/private/edit-nomcom/$', views.edit_nomcom, name='nomcom_edit_nomcom'),
url(r'^(?P<year>\d{4})/private/chair/templates/$', views.list_templates, name='nomcom_list_templates'),
url(r'^(?P<year>\d{4})/private/chair/templates/(?P<template_id>\d+)/$', views.edit_template, name='nomcom_edit_template'),
url(r'^(?P<year>\d{4})/private/chair/position/$', views.list_positions, name='nomcom_list_positions'),
url(r'^(?P<year>\d{4})/private/chair/position/add/$', views.edit_position, name='nomcom_add_position'),
url(r'^(?P<year>\d{4})/private/chair/position/(?P<position_id>\d+)/$', views.edit_position, name='nomcom_edit_position'),
url(r'^(?P<year>\d{4})/private/chair/position/(?P<position_id>\d+)/remove/$', views.remove_position, name='nomcom_remove_position'),
url(r'^(?P<year>\d{4})/private/send-reminder-mail/(?P<type>\w+)/$', views.send_reminder_mail),
url(r'^(?P<year>\d{4})/private/edit-members/$', EditMembersFormPreview(EditMembersForm), name='ietf.nomcom.forms.EditMembersFormPreview'),
url(r'^(?P<year>\d{4})/private/edit-nomcom/$', views.edit_nomcom),
url(r'^(?P<year>\d{4})/private/chair/templates/$', views.list_templates),
url(r'^(?P<year>\d{4})/private/chair/templates/(?P<template_id>\d+)/$', views.edit_template),
url(r'^(?P<year>\d{4})/private/chair/position/$', views.list_positions),
url(r'^(?P<year>\d{4})/private/chair/position/add/$', views.edit_position),
url(r'^(?P<year>\d{4})/private/chair/position/(?P<position_id>\d+)/$', views.edit_position),
url(r'^(?P<year>\d{4})/private/chair/position/(?P<position_id>\d+)/remove/$', views.remove_position),
url(r'^(?P<year>\d{4})/$', views.year_index, name='nomcom_year_index'),
url(r'^(?P<year>\d{4})/requirements/$', views.requirements, name='nomcom_requirements'),
url(r'^(?P<year>\d{4})/expertise/$', views.requirements, name='nomcom_requirements'),
url(r'^(?P<year>\d{4})/questionnaires/$', views.questionnaires, name='nomcom_questionnaires'),
url(r'^(?P<year>\d{4})/feedback/$', views.public_feedback, name='nomcom_public_feedback'),
url(r'^(?P<year>\d{4})/nominate/$', views.public_nominate, name='nomcom_public_nominate'),
url(r'^(?P<year>\d{4})/nominate/newperson$', views.public_nominate_newperson, name='nomcom_public_nominate_newperson'),
url(r'^(?P<year>\d{4})/$', views.year_index),
url(r'^(?P<year>\d{4})/requirements/$', views.requirements),
url(r'^(?P<year>\d{4})/expertise/$', views.requirements),
url(r'^(?P<year>\d{4})/questionnaires/$', views.questionnaires),
url(r'^(?P<year>\d{4})/feedback/$', views.public_feedback),
url(r'^(?P<year>\d{4})/nominate/$', views.public_nominate),
url(r'^(?P<year>\d{4})/nominate/newperson$', views.public_nominate_newperson),
url(r'^(?P<year>\d{4})/process-nomination-status/(?P<nominee_position_id>\d+)/(?P<state>[\w]+)/(?P<date>[\d]+)/(?P<hash>[a-f0-9]+)/$', views.process_nomination_status),
# use the generic view from message
url(r'^ann/(?P<message_id>\d+)/$', message_views.message, {'group_type': "nomcom" }),

View file

@ -383,7 +383,7 @@ def nominate(request, year, public, newperson):
form.save()
messages.success(request, 'Your nomination has been registered. Thank you for the nomination.')
if newperson:
return redirect('nomcom_%s_nominate' % ('public' if public else 'private'), year=year)
return redirect('ietf.nomcom.views.%s_nominate' % ('public' if public else 'private'), year=year)
else:
form = NominateForm(nomcom=nomcom, user=request.user, public=public)
else:
@ -700,7 +700,7 @@ def view_feedback_pending(request, year):
extra_ids = None
else:
messages.success(request, 'Feedback saved')
return redirect('nomcom_view_feedback_pending', year=year)
return redirect('ietf.nomcom.views.view_feedback_pending', year=year)
elif request.method == 'POST':
formset = FeedbackFormSet(request.POST)
for form in formset.forms:
@ -734,7 +734,7 @@ def view_feedback_pending(request, year):
messages.success(request, '%s messages classified. You must enter more information for the following feedback.' % moved)
else:
messages.success(request, 'Feedback saved')
return redirect('nomcom_view_feedback_pending', year=year)
return redirect('ietf.nomcom.views.view_feedback_pending', year=year)
else:
formset = FeedbackFormSet(queryset=feedbacks)
for form in formset.forms:
@ -932,7 +932,7 @@ def remove_position(request, year, position_id):
if request.POST.get('remove', None):
position.delete()
return redirect('nomcom_list_positions', year=year)
return redirect('ietf.nomcom.views.list_positions', year=year)
return render(request, 'nomcom/remove_position.html',
{'year': year,
'position': position,
@ -960,7 +960,7 @@ def edit_position(request, year, position_id=None):
form = PositionForm(request.POST, instance=position, nomcom=nomcom)
if form.is_valid():
form.save()
return redirect('nomcom_list_positions', year=year)
return redirect('ietf.nomcom.views.list_positions', year=year)
else:
form = PositionForm(instance=position, nomcom=nomcom)

View file

@ -17,6 +17,7 @@ class PersonResource(ModelResource):
queryset = Person.objects.all()
serializer = api.Serializer()
#resource_name = 'person'
ordering = ['id', ]
filtering = {
"id": ALL,
"time": ALL,

View file

@ -41,6 +41,9 @@ class PersonTests(TestCase):
url = urlreverse("ietf.person.views.profile", kwargs={ "email_or_name": person.plain_name()})
r = self.client.get(url)
#debug.show('person.name')
#debug.show('person.plain_name()')
#debug.show('person.photo_name()')
self.assertContains(r, person.photo_name(), status_code=200)
q = PyQuery(r.content)
self.assertIn("Photo of %s"%person, q("div.bio-text img.bio-photo").attr("alt"))

View file

@ -17,7 +17,7 @@ class SecrAnnouncementTestCase(TestCase):
def test_main(self):
"Main Test"
make_test_data()
url = reverse('announcement')
url = reverse('ietf.secr.announcement.views.main')
self.client.login(username="secretary", password="secretary+password")
r = self.client.get(url)
self.assertEqual(r.status_code, 200)
@ -29,7 +29,7 @@ class UnauthorizedAnnouncementCase(TestCase):
def test_unauthorized(self):
"Unauthorized Test"
make_test_data()
url = reverse('announcement')
url = reverse('ietf.secr.announcement.views.main')
person = Person.objects.filter(role__group__acronym='mars')[0]
self.client.login(username=person.user.username, password=person.user.username+"+password")
r = self.client.get(url)
@ -39,7 +39,7 @@ class SubmitAnnouncementCase(TestCase):
def test_invalid_submit(self):
"Invalid Submit"
make_test_data()
url = reverse('announcement')
url = reverse('ietf.secr.announcement.views.main')
post_data = {'id_subject':''}
#self.client.login(username='rcross', password='rcross+password")
self.client.login(username="secretary", password="secretary+password")
@ -52,8 +52,8 @@ class SubmitAnnouncementCase(TestCase):
"Valid Submit"
make_test_data()
#ietf.utils.mail.test_mode = True
url = reverse('announcement')
redirect = reverse('announcement_confirm')
url = reverse('ietf.secr.announcement.views.main')
redirect = reverse('ietf.secr.announcement.views.confirm')
post_data = {'to':'Other...',
'to_custom':'rcross@amsl.com',
'frm':'IETF Secretariat &lt;ietf-secretariat@ietf.org&gt;',

View file

@ -3,6 +3,6 @@ from ietf.secr.announcement import views
from ietf.utils.urls import url
urlpatterns = [
url(r'^$', views.main, name='announcement'),
url(r'^confirm/$', views.confirm, name='announcement_confirm'),
url(r'^$', views.main),
url(r'^confirm/$', views.confirm),
]

View file

@ -65,7 +65,7 @@ def main(request):
data['nomcom'] = data['nomcom'].pk
request.session['data'] = data
return redirect('announcement_confirm')
return redirect('ietf.secr.announcement.views.confirm')
return render(request, 'announcement/main.html', { 'form': form} )
@ -77,7 +77,7 @@ def confirm(request):
data = request.session['data']
else:
messages.error(request, 'No session data. Your session may have expired or cookies are disallowed.')
return redirect('announcement')
return redirect('ietf.secr.announcement.views.main')
if request.method == 'POST':
form = AnnounceForm(data, user=request.user)
@ -96,7 +96,7 @@ def confirm(request):
clear_non_auth(request.session)
messages.success(request, 'The announcement was sent.')
return redirect('announcement')
return redirect('ietf.secr.announcement.views.main')
if data['to'] == 'Other...':
to = ','.join(data['to_custom'])

View file

@ -3,5 +3,5 @@ from ietf.secr.console import views
from ietf.utils.urls import url
urlpatterns = [
url(r'^$', views.main, name='console'),
url(r'^$', views.main),
]

View file

@ -45,7 +45,7 @@ class SecrDraftsTestCase(TestCase):
def test_abstract(self):
draft = make_test_data()
url = urlreverse('drafts_abstract', kwargs={'id':draft.name})
url = urlreverse('ietf.secr.drafts.views.abstract', kwargs={'id':draft.name})
self.client.login(username="secretary", password="secretary+password")
response = self.client.get(url)
self.assertEqual(response.status_code, 200)
@ -72,7 +72,7 @@ class SecrDraftsTestCase(TestCase):
def test_announce(self):
draft = make_test_data()
url = urlreverse('drafts_announce', kwargs={'id':draft.name})
url = urlreverse('ietf.secr.drafts.views.announce', kwargs={'id':draft.name})
self.client.login(username="secretary", password="secretary+password")
response = self.client.get(url)
self.assertEqual(response.status_code, 302)
@ -89,7 +89,7 @@ class SecrDraftsTestCase(TestCase):
def test_edit(self):
draft = make_test_data()
url = urlreverse('drafts_edit', kwargs={'id':draft.name})
url = urlreverse('ietf.secr.drafts.views.edit', kwargs={'id':draft.name})
self.client.login(username="secretary", password="secretary+password")
response = self.client.get(url)
self.assertEqual(response.status_code, 200)
@ -113,7 +113,7 @@ class SecrDraftsTestCase(TestCase):
draft = make_test_data()
state = State.objects.get(type='draft-iesg',slug='rfcqueue')
draft.set_state(state)
url = urlreverse('drafts_revision', kwargs={'id':draft.name})
url = urlreverse('ietf.secr.drafts.views.revision', kwargs={'id':draft.name})
self.client.login(username="secretary", password="secretary+password")
rev = str(int(draft.rev) + 1).zfill(2)
file = StringIO("This is a test.")
@ -126,7 +126,7 @@ class SecrDraftsTestCase(TestCase):
def test_makerfc(self):
draft = make_test_data()
url = urlreverse('drafts_edit', kwargs={'id':draft.name})
url = urlreverse('ietf.secr.drafts.views.edit', kwargs={'id':draft.name})
self.client.login(username="secretary", password="secretary+password")
response = self.client.get(url)
self.assertEqual(response.status_code, 200)

View file

@ -6,21 +6,21 @@ urlpatterns = [
url(r'^$', views.search),
url(r'^add/$', views.add),
url(r'^approvals/$', views.approvals),
url(r'^dates/$', views.dates, name='drafts_dates'),
url(r'^nudge-report/$', views.nudge_report, name='drafts_nudge_report'),
url(r'^dates/$', views.dates),
url(r'^nudge-report/$', views.nudge_report),
url(r'^(?P<id>[A-Za-z0-9._\-\+]+)/$', views.view),
url(r'^(?P<id>[A-Za-z0-9._\-\+]+)/abstract/$', views.abstract, name='drafts_abstract'),
url(r'^(?P<id>[A-Za-z0-9._\-\+]+)/announce/$', views.announce, name='drafts_announce'),
url(r'^(?P<id>[A-Za-z0-9._\-\+]+)/authors/$', views.authors, name='drafts_authors'),
url(r'^(?P<id>[A-Za-z0-9._\-\+]+)/author_delete/(?P<oid>\d{1,6})$', views.author_delete, name='drafts_author_delete'),
url(r'^(?P<id>[A-Za-z0-9._\-\+]+)/confirm/$', views.confirm, name='drafts_confirm'),
url(r'^(?P<id>[A-Za-z0-9._\-\+]+)/edit/$', views.edit, name='drafts_edit'),
url(r'^(?P<id>[A-Za-z0-9._\-\+]+)/extend/$', views.extend, name='drafts_extend'),
url(r'^(?P<id>[A-Za-z0-9._\-\+]+)/email/$', views.email, name='drafts_email'),
url(r'^(?P<id>[A-Za-z0-9._\-\+]+)/makerfc/$', views.makerfc, name='drafts_makerfc'),
url(r'^(?P<id>[A-Za-z0-9._\-\+]+)/replace/$', views.replace, name='drafts_replace'),
url(r'^(?P<id>[A-Za-z0-9._\-\+]+)/resurrect/$', views.resurrect, name='drafts_resurrect'),
url(r'^(?P<id>[A-Za-z0-9._\-\+]+)/revision/$', views.revision, name='drafts_revision'),
url(r'^(?P<id>[A-Za-z0-9._\-\+]+)/abstract/$', views.abstract),
url(r'^(?P<id>[A-Za-z0-9._\-\+]+)/announce/$', views.announce),
url(r'^(?P<id>[A-Za-z0-9._\-\+]+)/authors/$', views.authors),
url(r'^(?P<id>[A-Za-z0-9._\-\+]+)/author_delete/(?P<oid>\d{1,6})$', views.author_delete),
url(r'^(?P<id>[A-Za-z0-9._\-\+]+)/confirm/$', views.confirm),
url(r'^(?P<id>[A-Za-z0-9._\-\+]+)/edit/$', views.edit),
url(r'^(?P<id>[A-Za-z0-9._\-\+]+)/extend/$', views.extend),
url(r'^(?P<id>[A-Za-z0-9._\-\+]+)/email/$', views.email),
url(r'^(?P<id>[A-Za-z0-9._\-\+]+)/makerfc/$', views.makerfc),
url(r'^(?P<id>[A-Za-z0-9._\-\+]+)/replace/$', views.replace),
url(r'^(?P<id>[A-Za-z0-9._\-\+]+)/resurrect/$', views.resurrect),
url(r'^(?P<id>[A-Za-z0-9._\-\+]+)/revision/$', views.revision),
url(r'^(?P<id>[A-Za-z0-9._\-\+]+)/update/$', views.update),
url(r'^(?P<id>[A-Za-z0-9._\-\+]+)/withdraw/$', views.withdraw, name='drafts_withdraw'),
]
url(r'^(?P<id>[A-Za-z0-9._\-\+]+)/withdraw/$', views.withdraw),
]

View file

@ -484,7 +484,7 @@ def add(request):
request.session['action'] = 'add'
messages.success(request, 'New draft added successfully!')
return redirect('drafts_authors', id=draft.name)
return redirect('ietf.secr.drafts.views.authors', id=draft.name)
else:
form = AddModelForm()
@ -541,7 +541,7 @@ def author_delete(request, id, oid):
'''
DocumentAuthor.objects.get(id=oid).delete()
messages.success(request, 'The author was deleted successfully')
return redirect('drafts_authors', id=id)
return redirect('ietf.secr.drafts.views.authors', id=id)
@role_required('Secretariat')
def authors(request, id):
@ -566,7 +566,7 @@ def authors(request, id):
action = request.session.get('action','')
if action == 'add':
del request.session['action']
return redirect('drafts_announce', id=id)
return redirect('ietf.secr.drafts.views.announce', id=id)
return redirect('ietf.secr.drafts.views.view', id=id)
@ -580,7 +580,7 @@ def authors(request, id):
DocumentAuthor.objects.create(document=draft,author=author,order=order)
messages.success(request, 'Author added successfully!')
return redirect('drafts_authors', id=id)
return redirect('ietf.secr.drafts.views.authors', id=id)
else:
form = AuthorForm()
@ -729,7 +729,7 @@ def email(request, id):
form = EmailForm(request.POST)
if form.is_valid():
request.session['email'] = form.data
return redirect('drafts_confirm', id=id)
return redirect('ietf.secr.drafts.views.confirm', id=id)
else:
# the resurrect email body references the last revision number, handle
# exception if no last revision found
@ -746,7 +746,7 @@ def email(request, id):
# for "revision" action skip email page and go directly to confirm
if request.session['action'] == 'revision':
request.session['email'] = form.initial
return redirect('drafts_confirm', id=id)
return redirect('ietf.secr.drafts.views.confirm', id=id)
return render(request, 'drafts/email.html', {
'form': form,
@ -774,7 +774,7 @@ def extend(request, id):
if form.is_valid():
request.session['data'] = form.cleaned_data
request.session['action'] = 'extend'
return redirect('drafts_email', id=id)
return redirect('ietf.secr.drafts.views.email', id=id)
else:
form = ExtendForm(initial={'revision_date':datetime.date.today().isoformat()})
@ -894,7 +894,7 @@ def replace(request, id):
if form.is_valid():
request.session['data'] = form.cleaned_data
request.session['action'] = 'replace'
return redirect('drafts_email', id=id)
return redirect('ietf.secr.drafts.views.email', id=id)
else:
form = ReplaceForm(draft=draft)
@ -913,7 +913,7 @@ def resurrect(request, id):
'''
request.session['action'] = 'resurrect'
return redirect('drafts_email', id=id)
return redirect('ietf.secr.drafts.views.email', id=id)
@role_required('Secretariat')
def revision(request, id):
@ -942,7 +942,7 @@ def revision(request, id):
request.session['revision'] = revision
request.session['file_type'] = file_type_list
return redirect('drafts_email', id=id)
return redirect('ietf.secr.drafts.views.email', id=id)
else:
form = RevisionModelForm(instance=draft,initial={'revision_date':datetime.date.today().isoformat()})
@ -1054,7 +1054,7 @@ def update(request, id):
request.session['data']['filename'] = filename
request.session['file_type'] = file_type_list
return redirect('drafts_email', id=id)
return redirect('ietf.secr.drafts.views.email', id=id)
else:
form = RevisionModelForm(instance=draft,initial={'revision_date':datetime.date.today().isoformat()})
@ -1147,7 +1147,7 @@ def withdraw(request, id):
request.session['data'] = form.data
request.session['action'] = 'withdraw'
return redirect('drafts_email', id=id)
return redirect('ietf.secr.drafts.views.email', id=id)
else:
form = WithdrawForm()

View file

@ -12,7 +12,7 @@ class GroupsTest(TestCase):
"Test Search"
make_test_data()
group = Group.objects.all()[0]
url = reverse('groups_search')
url = reverse('ietf.secr.groups.views.search')
post_data = {'group_acronym':group.acronym,'submit':'Search'}
self.client.login(username="secretary", password="secretary+password")
response = self.client.post(url,post_data,follow=True)
@ -22,15 +22,15 @@ class GroupsTest(TestCase):
# ------- Test Add -------- #
def test_add_button(self):
url = reverse('groups_search')
target = reverse('groups_add')
url = reverse('ietf.secr.groups.views.search')
target = reverse('ietf.secr.groups.views.add')
post_data = {'submit':'Add'}
self.client.login(username="secretary", password="secretary+password")
response = self.client.post(url,post_data,follow=True)
self.assertRedirects(response, target)
def test_add_group_invalid(self):
url = reverse('groups_add')
url = reverse('ietf.secr.groups.views.add')
post_data = {'acronym':'test',
'type':'wg',
'awp-TOTAL_FORMS':'2',
@ -45,7 +45,7 @@ class GroupsTest(TestCase):
make_test_data()
group = Group.objects.all()[0]
area = Group.objects.filter(type='area')[0]
url = reverse('groups_add')
url = reverse('ietf.secr.groups.views.add')
post_data = {'acronym':group.acronym,
'name':'Test Group',
'state':'active',
@ -63,7 +63,7 @@ class GroupsTest(TestCase):
def test_add_group_success(self):
make_test_data()
area = Group.objects.filter(type='area')[0]
url = reverse('groups_add')
url = reverse('ietf.secr.groups.views.add')
post_data = {'acronym':'test',
'name':'Test Group',
'type':'wg',
@ -80,7 +80,7 @@ class GroupsTest(TestCase):
def test_view(self):
make_test_data()
group = Group.objects.all()[0]
url = reverse('groups_view', kwargs={'acronym':group.acronym})
url = reverse('ietf.secr.groups.views.view', kwargs={'acronym':group.acronym})
self.client.login(username="secretary", password="secretary+password")
response = self.client.get(url)
self.assertEqual(response.status_code, 200)
@ -91,8 +91,8 @@ class GroupsTest(TestCase):
group = Group.objects.filter(acronym='mars')[0]
area = Group.objects.filter(acronym='farfut')[0]
ad = Person.objects.get(name='Areað Irector')
url = reverse('groups_edit', kwargs={'acronym':group.acronym})
target = reverse('groups_view', kwargs={'acronym':group.acronym})
url = reverse('ietf.secr.groups.views.edit', kwargs={'acronym':group.acronym})
target = reverse('ietf.secr.groups.views.view', kwargs={'acronym':group.acronym})
post_data = {'acronym':group.acronym,
'name':group.name,
'type':'wg',
@ -112,8 +112,8 @@ class GroupsTest(TestCase):
make_test_data()
group = Group.objects.filter(acronym='mars')[0]
role = group.role_set.all()[0]
url = reverse('groups_delete_role', kwargs={'acronym':group.acronym,'id':role.id})
target = reverse('groups_people', kwargs={'acronym':group.acronym})
url = reverse('ietf.secr.groups.views.delete_role', kwargs={'acronym':group.acronym,'id':role.id})
target = reverse('ietf.secr.groups.views.people', kwargs={'acronym':group.acronym})
self.client.login(username="secretary", password="secretary+password")
response = self.client.get(url,follow=True)
self.assertRedirects(response, target)
@ -123,7 +123,7 @@ class GroupsTest(TestCase):
make_test_data()
person = Person.objects.get(name='Areað Irector')
group = Group.objects.filter(acronym='mars')[0]
url = reverse('groups_people', kwargs={'acronym':group.acronym})
url = reverse('ietf.secr.groups.views.people', kwargs={'acronym':group.acronym})
post_data = {'name':'chair',
'person':'Joe Smith - (%s)' % person.id,
'email':person.email_set.all()[0].address,

View file

@ -4,16 +4,16 @@ from ietf.secr.groups import views
from ietf.utils.urls import url
urlpatterns = [
url(r'^$', views.search, name='groups'),
url(r'^add/$', views.add, name='groups_add'),
url(r'^$', views.search),
url(r'^add/$', views.add),
url(r'^blue-dot-report/$', views.blue_dot),
url(r'^search/$', views.search, name='groups_search'),
url(r'^search/$', views.search),
#(r'^ajax/get_ads/$', views.get_ads),
url(r'^%(acronym)s/$' % settings.URL_REGEXPS, views.view, name='groups_view'),
url(r'^%(acronym)s/delete/(?P<id>\d{1,6})/$' % settings.URL_REGEXPS, views.delete_role, name='groups_delete_role'),
url(r'^%(acronym)s/charter/$' % settings.URL_REGEXPS, views.charter, name='groups_charter'),
url(r'^%(acronym)s/edit/$' % settings.URL_REGEXPS, views.edit, name='groups_edit'),
url(r'^%(acronym)s/$' % settings.URL_REGEXPS, views.view),
url(r'^%(acronym)s/delete/(?P<id>\d{1,6})/$' % settings.URL_REGEXPS, views.delete_role),
url(r'^%(acronym)s/charter/$' % settings.URL_REGEXPS, views.charter),
url(r'^%(acronym)s/edit/$' % settings.URL_REGEXPS, views.edit),
url(r'^%(acronym)s/gm/$' % settings.URL_REGEXPS, views.view_gm),
url(r'^%(acronym)s/gm/edit/$' % settings.URL_REGEXPS, views.edit_gm),
url(r'^%(acronym)s/people/$' % settings.URL_REGEXPS, views.people, name='groups_people'),
url(r'^%(acronym)s/people/$' % settings.URL_REGEXPS, views.people),
]

View file

@ -89,7 +89,7 @@ def add(request):
if request.method == 'POST':
button_text = request.POST.get('submit', '')
if button_text == 'Cancel':
return redirect('groups')
return redirect('ietf.secr.groups.views.search')
form = GroupModelForm(request.POST)
awp_formset = AWPFormSet(request.POST, prefix='awp')
@ -113,7 +113,7 @@ def add(request):
desc='Started group')
messages.success(request, 'The Group was created successfully!')
return redirect('groups_view', acronym=group.acronym)
return redirect('ietf.secr.groups.views.view', acronym=group.acronym)
else:
form = GroupModelForm(initial={'state':'active','type':'wg'})
@ -197,7 +197,7 @@ def delete_role(request, acronym, id):
role.delete()
messages.success(request, 'The entry was deleted successfully')
return redirect('groups_people', acronym=acronym)
return redirect('ietf.secr.groups.views.people', acronym=acronym)
@role_required('Secretariat')
def edit(request, acronym):
@ -220,7 +220,7 @@ def edit(request, acronym):
if request.method == 'POST':
button_text = request.POST.get('submit', '')
if button_text == 'Cancel':
return redirect('groups_view', acronym=acronym)
return redirect('ietf.secr.groups.views.view', acronym=acronym)
form = GroupModelForm(request.POST, instance=group)
awp_formset = AWPFormSet(request.POST, instance=group)
@ -261,7 +261,7 @@ def edit(request, acronym):
messages.success(request, 'The Group was changed successfully')
return redirect('groups_view', acronym=acronym)
return redirect('ietf.secr.groups.views.view', acronym=acronym)
else:
form = GroupModelForm(instance=group)
@ -296,13 +296,13 @@ def edit_gm(request, acronym):
if request.method == 'POST':
button_text = request.POST.get('submit', '')
if button_text == 'Cancel':
return redirect('groups_view', acronym=acronym)
return redirect('ietf.secr.groups.views.view', acronym=acronym)
formset = GMFormset(request.POST, instance=group, prefix='goalmilestone')
if formset.is_valid():
formset.save()
messages.success(request, 'The Goals Milestones were changed successfully')
return redirect('groups_view', acronym=acronym)
return redirect('ietf.secr.groups.views.view', acronym=acronym)
else:
formset = GMFormset(instance=group, prefix='goalmilestone')
@ -345,7 +345,7 @@ def people(request, acronym):
group=group)
messages.success(request, 'New %s added successfully!' % name)
return redirect('groups_people', acronym=group.acronym)
return redirect('ietf.secr.groups.views.people', acronym=group.acronym)
else:
form = RoleForm(initial={'name':'chair'},group=group)
@ -372,7 +372,7 @@ def search(request):
if request.method == 'POST':
form = SearchForm(request.POST)
if request.POST['submit'] == 'Add':
return redirect('groups_add')
return redirect('ietf.secr.groups.views.add')
if form.is_valid():
kwargs = {}
@ -412,7 +412,7 @@ def search(request):
# if there's just one result go straight to view
if len(results) == 1:
return redirect('groups_view', acronym=results[0].acronym)
return redirect('ietf.secr.groups.views.view', acronym=results[0].acronym)
# process GET argument to support link from area app
elif 'primary_area' in request.GET:

View file

@ -606,4 +606,4 @@ def post_process(doc):
doc=doc,
desc='Converted document to PDF',
)
doc.save_with_history([e])
doc.save_with_history([e])

View file

@ -22,7 +22,7 @@ class ProceedingsTestCase(TestCase):
def test_main(self):
"Main Test"
make_test_data()
url = reverse('proceedings')
url = reverse('ietf.secr.proceedings.views.main')
self.client.login(username="secretary", password="secretary+password")
response = self.client.get(url)
self.assertEqual(response.status_code, 200)
@ -35,7 +35,7 @@ class ProceedingsTestCase(TestCase):
class RecordingTestCase(TestCase):
def test_page(self):
meeting = make_meeting_test_data()
url = reverse('proceedings_recording', kwargs={'meeting_num':meeting.number})
url = reverse('ietf.secr.proceedings.views.recording', kwargs={'meeting_num':meeting.number})
self.client.login(username="secretary", password="secretary+password")
response = self.client.get(url)
self.assertEqual(response.status_code, 200)
@ -48,7 +48,7 @@ class RecordingTestCase(TestCase):
status = SessionStatusName.objects.get(slug='sched')
session.status = status
session.save()
url = reverse('proceedings_recording', kwargs={'meeting_num':meeting.number})
url = reverse('ietf.secr.proceedings.views.recording', kwargs={'meeting_num':meeting.number})
data = dict(group=group.acronym,external_url='http://youtube.com/xyz',session=session.pk)
self.client.login(username="secretary", password="secretary+password")
response = self.client.post(url,data,follow=True)
@ -58,7 +58,7 @@ class RecordingTestCase(TestCase):
# now test edit
doc = session.materials.filter(type='recording').first()
external_url = 'http://youtube.com/aaa'
url = reverse('proceedings_recording_edit', kwargs={'meeting_num':meeting.number,'name':doc.name})
url = reverse('ietf.secr.proceedings.views.recording_edit', kwargs={'meeting_num':meeting.number,'name':doc.name})
response = self.client.post(url,dict(external_url=external_url),follow=True)
self.assertEqual(response.status_code, 200)
self.failUnless(external_url in response.content)

View file

@ -5,14 +5,14 @@ from ietf.utils.urls import url
from ietf.secr.proceedings import views
urlpatterns = [
url(r'^$', views.main, name='proceedings'),
url(r'^$', views.main),
url(r'^ajax/generate-proceedings/(?P<meeting_num>\d{1,3})/$', views.ajax_generate_proceedings),
# special offline URL for testing proceedings build
url(r'^process-pdfs/(?P<meeting_num>\d{1,3})/$', views.process_pdfs, name='proceedings_process_pdfs'),
url(r'^progress-report/(?P<meeting_num>\d{1,3})/$', views.progress_report, name='proceedings_progress_report'),
url(r'^(?P<meeting_num>\d{1,3})/$', views.select, name='proceedings_select'),
url(r'^(?P<meeting_num>\d{1,3})/recording/$', views.recording, name='proceedings_recording'),
url(r'^(?P<meeting_num>\d{1,3})/recording/edit/(?P<name>[A-Za-z0-9_\-\+]+)$', views.recording_edit, name='proceedings_recording_edit'),
url(r'^process-pdfs/(?P<meeting_num>\d{1,3})/$', views.process_pdfs),
url(r'^progress-report/(?P<meeting_num>\d{1,3})/$', views.progress_report),
url(r'^(?P<meeting_num>\d{1,3})/$', views.select),
url(r'^(?P<meeting_num>\d{1,3})/recording/$', views.recording),
url(r'^(?P<meeting_num>\d{1,3})/recording/edit/(?P<name>[A-Za-z0-9_\-\+]+)$', views.recording_edit),
url(r'^(?P<num>\d{1,3}|interim-\d{4}-[A-Za-z0-9_\-\+]+)/%(acronym)s/$' % settings.URL_REGEXPS,
OldUploadRedirect.as_view(permanent=True)),
]

View file

@ -262,7 +262,7 @@ def process_pdfs(request, meeting_num):
messages.warning(request, '%s PDF files processed. %s PowerPoint files still not converted.' % (count, warn_count))
else:
messages.success(request, '%s PDF files processed' % count)
url = reverse('proceedings_select', kwargs={'meeting_num':meeting_num})
url = reverse('ietf.secr.proceedings.views.select', kwargs={'meeting_num':meeting_num})
return HttpResponseRedirect(url)
@role_required('Secretariat')
@ -273,7 +273,7 @@ def progress_report(request, meeting_num):
meeting = get_object_or_404(Meeting, number=meeting_num)
gen_progress({'meeting':meeting},final=False)
url = reverse('proceedings_select', kwargs={'meeting_num':meeting_num})
url = reverse('ietf.secr.proceedings.views.select', kwargs={'meeting_num':meeting_num})
return HttpResponseRedirect(url)
@role_required('Secretariat')
@ -295,7 +295,7 @@ def recording(request, meeting_num):
if Document.objects.filter(type='recording',external_url=external_url):
messages.error(request, "Recording already exists")
return redirect('proceedings_recording', meeting_num=meeting_num)
return redirect('ietf.secr.proceedings.views.recording', meeting_num=meeting_num)
else:
create_recording(session,external_url)
@ -303,7 +303,7 @@ def recording(request, meeting_num):
create_proceedings(meeting,session.group)
messages.success(request,'Recording added')
return redirect('proceedings_recording', meeting_num=meeting_num)
return redirect('ietf.secr.proceedings.views.recording', meeting_num=meeting_num)
else:
form = RecordingForm(meeting=meeting)
@ -326,7 +326,7 @@ def recording_edit(request, meeting_num, name):
if request.method == 'POST':
button_text = request.POST.get('submit', '')
if button_text == 'Cancel':
return redirect("proceedings_recording", meeting_num=meeting_num)
return redirect('ietf.secr.proceedings.views.recording', meeting_num=meeting_num)
form = RecordingEditForm(request.POST, instance=recording)
if form.is_valid():
@ -342,7 +342,7 @@ def recording_edit(request, meeting_num, name):
create_proceedings(meeting,recording.group)
messages.success(request,'Recording saved')
return redirect('proceedings_recording', meeting_num=meeting_num)
return redirect('ietf.secr.proceedings.views.recording', meeting_num=meeting_num)
else:
form = RecordingEditForm(instance=recording)

View file

@ -18,7 +18,7 @@ class SecrRolesMainTestCase(TestCase):
def test_main(self):
"Main Test"
augment_data()
url = reverse('roles')
url = reverse('ietf.secr.roles.views.main')
self.client.login(username="secretary", password="secretary+password")
response = self.client.get(url)
self.assertEqual(response.status_code, 200)
@ -28,8 +28,8 @@ class SecrRolesMainTestCase(TestCase):
augment_data()
group = Group.objects.filter(acronym='mars')[0]
role = group.role_set.all()[0]
url = reverse('roles_delete_role', kwargs={'acronym':group.acronym,'id':role.id})
target = reverse('roles') + '?group=%s' % group.acronym
url = reverse('ietf.secr.roles.views.delete_role', kwargs={'acronym':group.acronym,'id':role.id})
target = reverse('ietf.secr.roles.views.main') + '?group=%s' % group.acronym
self.client.login(username="secretary", password="secretary+password")
response = self.client.get(url,follow=True)
self.assertRedirects(response, target)
@ -40,8 +40,8 @@ class SecrRolesMainTestCase(TestCase):
augment_data()
person = Person.objects.get(name='Areað Irector')
group = Group.objects.filter(acronym='mars')[0]
url = reverse('roles')
target = reverse('roles') + '?group=%s' % group.acronym
url = reverse('ietf.secr.roles.views.main')
target = reverse('ietf.secr.roles.views.main') + '?group=%s' % group.acronym
post_data = {'group_acronym':group.acronym,
'name':'chair',
'person':'Joe Smith - (%s)' % person.id,

View file

@ -4,7 +4,7 @@ from ietf.secr.roles import views
from ietf.utils.urls import url
urlpatterns = [
url(r'^$', views.main, name='roles'),
url(r'^$', views.main),
url(r'^ajax/get-roles/%(acronym)s/$' % settings.URL_REGEXPS, views.ajax_get_roles),
url(r'^%(acronym)s/delete/(?P<id>\d{1,6})/$' % settings.URL_REGEXPS, views.delete_role, name='roles_delete_role'),
url(r'^%(acronym)s/delete/(?P<id>\d{1,6})/$' % settings.URL_REGEXPS, views.delete_role),
]

View file

@ -59,7 +59,7 @@ def delete_role(request, acronym, id):
role.delete()
messages.success(request, 'The entry was deleted successfully')
url = reverse('roles') + '?group=%s' % group.acronym
url = reverse('ietf.secr.roles.views.main') + '?group=%s' % group.acronym
return HttpResponseRedirect(url)
@role_required('Secretariat')
@ -94,7 +94,7 @@ def main(request):
group=group)
messages.success(request, 'New %s added successfully!' % name)
url = reverse('roles') + '?group=%s' % group.acronym
url = reverse('ietf.secr.roles.views.main') + '?group=%s' % group.acronym
return HttpResponseRedirect(url)
else:

View file

@ -10,7 +10,7 @@ SECR_USER='secretary'
class RolodexTestCase(TestCase):
def test_main(self):
"Main Test"
url = reverse('rolodex')
url = reverse('ietf.secr.rolodex.views.search')
self.client.login(username="secretary", password="secretary+password")
response = self.client.get(url)
self.assertEqual(response.status_code, 200)
@ -19,7 +19,7 @@ class RolodexTestCase(TestCase):
"View Test"
make_test_data()
person = Person.objects.all()[0]
url = reverse('rolodex_view', kwargs={'id':person.id})
url = reverse('ietf.secr.rolodex.views.view', kwargs={'id':person.id})
self.client.login(username="secretary", password="secretary+password")
response = self.client.get(url)
self.assertEqual(response.status_code, 200)

View file

@ -3,10 +3,10 @@ from ietf.secr.rolodex import views
from ietf.utils.urls import url
urlpatterns = [
url(r'^$', views.search, name='rolodex'),
url(r'^add/$', views.add, name='rolodex_add'),
url(r'^$', views.search),
url(r'^add/$', views.add),
url(r'^add-proceed/$', views.add_proceed),
url(r'^(?P<id>\d{1,6})/edit/$', views.edit),
#url(r'^(?P<id>\d{1,6})/delete/$', views.delete, name='rolodex_delete'),
url(r'^(?P<id>\d{1,6})/$', views.view, name='rolodex_view'),
#url(r'^(?P<id>\d{1,6})/delete/$', views.delete),
url(r'^(?P<id>\d{1,6})/$', views.view),
]

View file

@ -72,7 +72,7 @@ def add_proceed(request):
post_data = request.session['post_data']
else:
messages.error('ERROR: unable to save session data (enable cookies)') # pylint: disable=no-value-for-parameter
return redirect('rolodex_add')
return redirect('ietf.secr.rolodex.views.add')
name = post_data['name']
@ -97,7 +97,7 @@ def add_proceed(request):
person.save()
messages.success(request, 'The Rolodex entry was added successfully')
return redirect('rolodex_view', id=person.id)
return redirect('ietf.secr.rolodex.views.view', id=person.id)
else:
form = NewPersonForm(initial={'name':name,'ascii':name})
@ -133,7 +133,7 @@ def delete(request, id):
#person.delete()
messages.warning(request, 'This feature is disabled')
return redirect('rolodex')
return redirect('ietf.secr.rolodex.views.search')
return render(request, 'rolodex/delete.html', { 'person': person}, )
@ -158,7 +158,7 @@ def edit(request, id):
if request.method == 'POST':
button_text = request.POST.get('submit', '')
if button_text == 'Cancel':
return redirect('rolodex_view', id=id)
return redirect('ietf.secr.rolodex.views.view', id=id)
person_form = EditPersonForm(request.POST, instance=person)
email_formset = EmailFormset(request.POST, instance=person, prefix='email')
@ -177,7 +177,7 @@ def edit(request, id):
# add new names to alias
messages.success(request, 'The Rolodex entry was changed successfully')
return redirect('rolodex_view', id=id)
return redirect('ietf.secr.rolodex.views.view', id=id)
else:
person_form = EditPersonForm(instance=person)
@ -235,7 +235,7 @@ def search(request):
# if there's just one result go straight to view
if len(results) == 1:
return redirect('rolodex_view', id=results[0].person.id)
return redirect('ietf.secr.rolodex.views.view', id=results[0].person.id)
if not results:
not_found = 'No record found'

View file

@ -15,7 +15,7 @@ class SecrTelechatTestCase(TestCase):
def test_main(self):
"Main Test"
augment_data()
url = reverse('telechat')
url = reverse('ietf.secr.telechat.views.main')
self.client.login(username="secretary", password="secretary+password")
response = self.client.get(url)
self.assertEqual(response.status_code, 200)
@ -25,7 +25,7 @@ class SecrTelechatTestCase(TestCase):
augment_data()
d = TelechatDate.objects.all()[0]
date = d.date.strftime('%Y-%m-%d')
url = reverse('telechat_doc', kwargs={'date':date})
url = reverse('ietf.secr.telechat.views.doc', kwargs={'date':date})
self.client.login(username="secretary", password="secretary+password")
response = self.client.get(url)
self.assertEqual(response.status_code, 200)

View file

@ -3,14 +3,13 @@ from ietf.secr.telechat import views
from ietf.utils.urls import url
urlpatterns = [
url(r'^$', views.main, name='telechat'),
url(r'^(?P<date>[0-9\-]+)/bash/$', views.bash, name='telechat_bash'),
url(r'^(?P<date>[0-9\-]+)/doc/$', views.doc, name='telechat_doc'),
url(r'^(?P<date>[0-9\-]+)/doc/(?P<name>[A-Za-z0-9.-]+)/$', views.doc_detail, name='telechat_doc_detail'),
url(r'^(?P<date>[0-9\-]+)/doc/(?P<name>[A-Za-z0-9.-]+)/(?P<nav>next|previous)/$', views.doc_navigate,
name='telechat_doc_navigate'),
url(r'^(?P<date>[0-9\-]+)/management/$', views.management, name='telechat_management'),
url(r'^(?P<date>[0-9\-]+)/minutes/$', views.minutes, name='telechat_minutes'),
url(r'^(?P<date>[0-9\-]+)/roll-call/$', views.roll_call, name='telechat_roll_call'),
url(r'^$', views.main),
url(r'^(?P<date>[0-9\-]+)/bash/$', views.bash),
url(r'^(?P<date>[0-9\-]+)/doc/$', views.doc),
url(r'^(?P<date>[0-9\-]+)/doc/(?P<name>[A-Za-z0-9.-]+)/$', views.doc_detail),
url(r'^(?P<date>[0-9\-]+)/doc/(?P<name>[A-Za-z0-9.-]+)/(?P<nav>next|previous)/$', views.doc_navigate),
url(r'^(?P<date>[0-9\-]+)/management/$', views.management),
url(r'^(?P<date>[0-9\-]+)/minutes/$', views.minutes),
url(r'^(?P<date>[0-9\-]+)/roll-call/$', views.roll_call),
url(r'^new/$', views.new),
]

View file

@ -146,7 +146,7 @@ def doc(request, date):
agenda = agenda_data(date=date)
doc = get_first_doc(agenda)
if doc:
return redirect('telechat_doc_detail', date=date, name=doc.name)
return redirect('ietf.secr.telechat.views.doc_detail', date=date, name=doc.name)
else:
return render(request, 'telechat/doc.html', {
'agenda': agenda,
@ -233,7 +233,7 @@ def doc_detail(request, date, name):
if has_changed:
messages.success(request,'Ballot position changed.')
return redirect('telechat_doc_detail', date=date, name=name)
return redirect('ietf.secr.telechat.views.doc_detail', date=date, name=name)
# logic from doc/views_draft.py change_state
elif button_text == 'update_state':
@ -269,7 +269,7 @@ def doc_detail(request, date, name):
request_last_call(request, doc)
messages.success(request,'Document state updated')
return redirect('telechat_doc_detail', date=date, name=name)
return redirect('ietf.secr.telechat.views.doc_detail', date=date, name=name)
else:
formset = BallotFormset(initial=initial_ballot)
state_form = ChangeStateForm(initial=initial_state)
@ -315,7 +315,7 @@ def doc_navigate(request, date, name, nav):
elif nav == 'previous' and index != 0:
target = docs[index - 1].name
return redirect('telechat_doc_detail', date=date, name=target)
return redirect('ietf.secr.telechat.views.doc_detail', date=date, name=target)
@role_required('Secretariat')
def main(request):
@ -324,7 +324,7 @@ def main(request):
'''
if request.method == 'POST':
date = request.POST['date']
return redirect('telechat_doc', date=date)
return redirect('ietf.secr.telechat.views.doc', date=date)
choices = [ (d.date.strftime('%Y-%m-%d'),
d.date.strftime('%Y-%m-%d')) for d in TelechatDate.objects.all() ]
@ -388,7 +388,7 @@ def new(request):
Telechat.objects.create(telechat_date=date)
messages.success(request,'New Telechat Agenda created')
return redirect('telechat_doc', date=date)
return redirect('ietf.secr.telechat.views.doc', date=date)
@role_required('Secretariat')
def roll_call(request, date):

View file

@ -30,7 +30,7 @@
<h2>Directors</h2>
<table class="full-width">
{% for director in directors %}
<tr><td><a href="{% url "rolodex_view" id=director.person.id %}">{{ director.person.name }}</a>{% if director.name.slug == "pre-ad" %} (Incoming){% endif %}</td></tr>
<tr><td><a href="{% url 'ietf.secr.rolodex.views.view' id=director.person.id %}">{{ director.person.name }}</a>{% if director.name.slug == "pre-ad" %} (Incoming){% endif %}</td></tr>
{% endfor %}
</table>
</div> <!-- inline-group -->
@ -44,7 +44,7 @@
<!-- <li><button onclick="window.location='../../'">Back</button></li> -->
<li><button onclick="window.location='edit/'">Edit</button></li>
<li><button onclick="window.location='people/'">People</button></li>
<li><button onclick="window.location='{% url "groups_search" %}?primary_area={{ area.id }}'">Groups</button></li>
<li><button onclick="window.location='{% url 'ietf.secr.groups.views.search' %}?primary_area={{ area.id }}'">Groups</button></li>
</ul>
</div> <!-- button-group -->
</div> <!-- module -->

View file

@ -34,7 +34,7 @@
<td>{{ author.author.person }}</td>
<td>{{ author.author }}</td>
<td>{{ author.order }}</td>
<td><a href="{% url "drafts_author_delete" id=draft.pk oid=author.id %}">Delete</a></td>
<td><a href="{% url 'ietf.secr.drafts.views.author_delete' id=draft.pk oid=author.id %}">Delete</a></td>
</tr>
{% endfor %}
</tbody>

View file

@ -22,7 +22,7 @@
<table class="full-width">
<tr><td>Document Name:</td><td>{{ draft.title }}</td></tr>
<tr><td>Area:</td><td>{% if draft.group.parent %}<a href="{% url "ietf.secr.areas.views.view" name=draft.group.parent.acronym %}">{{ draft.group.parent }}{% endif %}</td></tr>
<tr><td>Group:</td><td>{% if draft.group %}<a href="{% url "groups_view" acronym=draft.group.acronym %}">{{ draft.group.acronym }}{% endif %}</td></tr>
<tr><td>Group:</td><td>{% if draft.group %}<a href="{% url 'ietf.secr.groups.views.view' acronym=draft.group.acronym %}">{{ draft.group.acronym }}{% endif %}</td></tr>
<tr><td>Area Director:</td><td>{{ draft.ad }}</td></tr>
<tr><td>Shepherd:</td><td>{% if draft.shepherd %}{{ draft.shepherd.person }} &lt;{{ draft.shepherd.address }}&gt;{% else %}None{% endif %}</td></tr>
<tr><td>Notify:</td><td>{{ draft.notify }}</td></tr>
@ -49,7 +49,7 @@
<tr><td>Start Date:</td><td>{{ draft.start_date }}</td></tr>
<tr><td>Number of Pages:</td><td>{{ draft.pages }}</td></tr>
{% comment %}<tr><td>Local Path:</td><td>/ftp/internet-drafts/{{ draft.local_path|default_if_none:"" }}</td></tr>{% endcomment %}
<tr><td>Abstract:</td><td><a href="{% url "drafts_abstract" id=draft.name %}">Click here to view the abstract</td></tr>
<tr><td>Abstract:</td><td><a href="{% url 'ietf.secr.drafts.views.abstract' id=draft.name %}">Click here to view the abstract</td></tr>
<tr><td>Expiration Date:</td><td>{{ draft.expires|date:"M. d, Y" }}</td></tr>
<tr><td>Intended Status:</td><td>{{ draft.intended_std_level|default_if_none:"" }}</td></tr>
<tr><td>Standardization Level:</td><td>{{ draft.std_level|default_if_none:"" }}</td></tr>
@ -73,7 +73,7 @@
<h2>Author(s)</h2>
<table class="full-width">
{% for author in draft.documentauthor_set.all %}
<tr><td><a href="{% url "rolodex_view" id=author.author.person.id %}">{{ author.author.person.name }}</a></td></tr>
<tr><td><a href="{% url 'ietf.secr.rolodex.views.view' id=author.author.person.id %}">{{ author.author.person.name }}</a></td></tr>
{% endfor %}
</table>
</div> <!-- inline-related -->

View file

@ -34,7 +34,7 @@
<td>{{ role.name }}</td>
<td>{{ role.person }}</td>
<td>{{ role.email }}</td>
<td><a href="{% url "groups_delete_role" acronym=group.acronym id=role.id %}">Delete</a></td>
<td><a href="{% url 'ietf.secr.groups.views.delete_role' acronym=group.acronym id=role.id %}">Delete</a></td>
</tr>
{% endfor %}
</tbody>

View file

@ -39,7 +39,7 @@
</tr>
<tr><td>Primary Area Director:</td>
<td>{% if group.ad_role %}
<a href="{% url "rolodex_view" id=group.ad_role.person.id %}">{{ group.ad_role.person }}</a>
<a href="{% url 'ietf.secr.rolodex.views.view' id=group.ad_role.person.id %}">{{ group.ad_role.person }}</a>
{% endif %}
</td></tr>
<tr><td>Meeting Scheduled:</td><td>{{ group.meeting_scheduled}}</td></tr>
@ -50,7 +50,7 @@
<tr><td>Default Liaison Contacts:</td><td>{{ group.liaison_contacts.contacts }}</td></tr>
{% endif %}
{% if group.features.has_chartering_process %}
<tr><td>Charter:</td><td><a href="{% url "groups_charter" acronym=group.acronym %}">View Charter</a></td></tr>
<tr><td>Charter:</td><td><a href="{% url 'ietf.secr.groups.views.charter' acronym=group.acronym %}">View Charter</a></td></tr>
{% else %}
<tr><td>Description:</td><td>{{ group.description }}</td></tr>
{% endif %}
@ -68,7 +68,7 @@
<h2>Chairperson(s)</h2>
<table>
{% for role in group.chairs %}
<tr><td><a href="{% url "rolodex_view" id=role.person.id %}">{{ role.person }}</a></td></tr>
<tr><td><a href="{% url 'ietf.secr.rolodex.views.view' id=role.person.id %}">{{ role.person }}</a></td></tr>
{% endfor %}
</table>
</div> <!-- inline-related -->
@ -77,7 +77,7 @@
<h2>Document Editor(s)</h2>
<table>
{% for role in group.editors %}
<tr><td><a href="{% url "rolodex_view" id=role.person.id %}">{{ role.person }}</a></td></tr>
<tr><td><a href="{% url 'ietf.secr.rolodex.views.view' id=role.person.id %}">{{ role.person }}</a></td></tr>
{% endfor %}
</table>
</div> <!-- inline-related -->
@ -86,7 +86,7 @@
<h2>Technical Advisor(s)</h2>
<table>
{% for role in group.techadvisors %}
<tr><td><a href="{% url "rolodex_view" id=role.person.id %}">{{ role.person }}</a></td></tr>
<tr><td><a href="{% url 'ietf.secr.rolodex.views.view' id=role.person.id %}">{{ role.person }}</a></td></tr>
{% endfor %}
</table>
</div> <!-- inline-related -->
@ -95,7 +95,7 @@
<h2>Secretary(ies)</h2>
<table>
{% for role in group.secretaries %}
<tr><td><a href="{% url "rolodex_view" id=role.person.id %}">{{ role.person }}</a></td></tr>
<tr><td><a href="{% url 'ietf.secr.rolodex.views.view' id=role.person.id %}">{{ role.person }}</a></td></tr>
{% endfor %}
</table>
</div> <!-- inline-related -->

View file

@ -11,7 +11,7 @@
<tbody>
{% for item in results %}
<tr class="{% cycle 'row1' 'row2' %}">
<td><a href="{% url "groups_view" acronym=item.acronym %}">{{item.name}}</a></td>
<td><a href="{% url 'ietf.secr.groups.views.view' acronym=item.acronym %}">{{item.name}}</a></td>
<td>{{item.acronym}}</td>
<td>{{item.state}}</td>
<td>{{item.type}}</td>

View file

@ -14,18 +14,18 @@
<p>Use this to process meeting materials files that have been converted to PDF and uploaded to the server.</p>
<ul class="none">
<li>
<button onclick="window.location='{% url "proceedings_process_pdfs" meeting_num=meeting.number %}'">Process PDFs</button>
<button onclick="window.location='{% url 'ietf.secr.proceedings.views.process_pdfs' meeting_num=meeting.number %}'">Process PDFs</button>
&nbsp;&nbsp;<span class="{% if ppt_count > 0 %}alert{% endif %}">{{ ppt_count }} PowerPoint files waiting to be converted</span>
</li>
</ul>
<p>Use this to generate the progress report for the plenary.</p>
<ul class="none">
<li><button onclick="window.location='{% url "proceedings_progress_report" meeting_num=meeting.number %}'">Generate Progress Report</button>
<li><button onclick="window.location='{% url 'ietf.secr.proceedings.views.progress_report' meeting_num=meeting.number %}'">Generate Progress Report</button>
&nbsp;&nbsp;<a href="{{ MEDIA_URL }}proceedings/{{ meeting.number }}/progress-report.html">Progress Report</a>
</li>
</ul>
<p>Use this to input session recording information.</p>
<ul class="none">
<li><button onclick="window.location='{% url "proceedings_recording" meeting_num=meeting.number %}'">Recordings</button>
<li><button onclick="window.location='{% url 'ietf.secr.proceedings.views.recording' meeting_num=meeting.number %}'">Recordings</button>
</li>
</ul>

View file

@ -10,7 +10,7 @@
<tbody>
{% for item in results %}
<tr class="{% cycle 'row1' 'row2' %}">
<td><a href="{% url "rolodex_view" id=item.person.id %}">{{item.name}}</a></td>
<td><a href="{% url 'ietf.secr.rolodex.views.view' id=item.person.id %}">{{item.name}}</a></td>
<td>{{item.person.affiliation}}</td>
<td>{{item.person.email_address}}</td>
<td>{{item.person.id}}</a></td>

View file

@ -1,4 +1,4 @@
<li><a href="https://www.ietf.org/wg/request-tool-instructions.html" target="_blank">Instructions</a>.</li>
<li><a href="{% url "proceedings" %}">IETF Meeting Materials Management Tool</a>.</li>
<li><a href="{% url 'ietf.secr.proceedings.views.main' %}">IETF Meeting Materials Management Tool</a>.</li>
<li>If you require assistance in using this tool, or wish to report a bug, then please send a message to <a href="mailto:ietf-action@ietf.org">ietf-action@ietf.org</a>.</li>
<li>To submit your request via email, please send your request to <a href="mailto:agenda@ietf.org">agenda@ietf.org</a>.</li>

View file

@ -10,31 +10,31 @@
<tr valign="top">
<td>
<h3>IESG</h3>
<li> <a href="{% url "announcement" %}"><b>Announcement</b></a></li><br>
<li> <a href="{% url "telechat" %}"><b>Telechat</b></a></li><br>
<li> <a href="{% url "console" %}"><b>Console</b></a></li><br>
<li> <a href="{% url 'ietf.secr.announcement.views.main' %}"><b>Announcement</b></a></li><br>
<li> <a href="{% url 'ietf.secr.telechat.views.main' %}"><b>Telechat</b></a></li><br>
<li> <a href="{% url 'ietf.secr.console.views.main' %}"><b>Console</b></a></li><br>
</td>
<td>
<h3>IDs and WGs Process</h3>
<li> <a href="{% url "ietf.secr.drafts.views.search" %}"><b>Drafts</b></a></li><br>
<li> <a href="{% url "ietf.secr.areas.views.list_areas" %}"><b>Areas</b></a></li><br>
<li> <a href="{% url "groups" %}"><b>Groups</b></a></li><br>
<li> <a href="{% url "rolodex" %}"><b>Rolodex</b></a></li><br>
<li> <a href="{% url "roles" %}"><b>Roles</b></a></li><br>
<li> <a href="{% url 'ietf.secr.groups.views.search' %}"><b>Groups</b></a></li><br>
<li> <a href="{% url 'ietf.secr.rolodex.views.search' %}"><b>Rolodex</b></a></li><br>
<li> <a href="{% url 'ietf.secr.roles.views.main' %}"><b>Roles</b></a></li><br>
</td>
</tr>
<tr valign="top">
<td>
<h3>Meetings and Proceedings</h3>
<li> <a href="{% url "drafts_dates" %}"><b>Draft Submission Dates</b></a></li><br>
<li> <a href="{% url 'ietf.secr.drafts.views.dates' %}"><b>Draft Submission Dates</b></a></li><br>
<li> <a href="{% url "ietf.secr.sreq.views.main" %}"><b>Session Requests</b></a></li><br>
<li> <a href="{% url "proceedings" %}"><b>Meeting Materials Manager (Proceedings)</b></a></li><br>
<li> <a href="{% url 'ietf.secr.proceedings.views.main' %}"><b>Meeting Materials Manager (Proceedings)</b></a></li><br>
<li> <a href="{% url "ietf.secr.meetings.views.main" %}"><b>Meeting Manager</b></a></li><br>
<li> <a href="{% url "ietf.secr.meetings.views.blue_sheet_redirect" %}"><b>Blue Sheets</b></a></li><br>
</td>
<td>
<h3>IPR</h3>
<li> <a href="{% url "ipr_admin_main" %}"><b>IPR Admin</b></a></li><br>
<li> <a href="{% url 'ietf.ipr.views.admin' state='pending' %}"><b>IPR Admin</b></a></li><br>
</td>
</tr>
</table>
@ -46,8 +46,8 @@
<td>
<h3>Section 1</h3>
<li> <a href="{% url "ietf.secr.sreq.views.main" %}"><b>Session Requests</b></a></li><br>
<li> <a href="{% url "proceedings" %}"><b>Meeting Material Manager</b></a></li><br>
<li> <a href="{% url "announcement" %}"><b>Announcements</b></a></li><br>
<li> <a href="{% url 'ietf.secr.proceedings.views.main' %}"><b>Meeting Material Manager</b></a></li><br>
<li> <a href="{% url 'ietf.secr.announcement.views.main' %}"><b>Announcements</b></a></li><br>
</td>
<td>
<h3>Section 2</h3>

View file

@ -26,7 +26,7 @@
{% for meeting in meetings %}
<tr class = "{% cycle 'row1' 'row2' %}{% if meeting.get_submission_correction_date < today %} frozen{% else %} open{% endif %}">
<td>
<a href="{% url "proceedings_select" meeting_num=meeting.number %}">{{ meeting.number }}</a>
<a href="{% url 'ietf.secr.proceedings.views.select' meeting_num=meeting.number %}">{{ meeting.number }}</a>
</td>
</tr>
{% endfor %}

View file

@ -16,11 +16,11 @@
{% block breadcrumbs %}{{ block.super }}
{% if meeting.type_id == "interim" %}
&raquo; <a href="{% url "proceedings" %}">Proceedings</a>
&raquo; <a href="{% url 'ietf.secr.proceedings.views.main' %}">Proceedings</a>
&raquo; {{ meeting }}
{% else %}
&raquo; <a href="{% url "proceedings" %}">Proceedings</a>
&raquo; <a href="{% url "proceedings_select" meeting_num=meeting.number %}">{{ meeting.number }}</a>
&raquo; <a href="{% url 'ietf.secr.proceedings.views.main' %}">Proceedings</a>
&raquo; <a href="{% url 'ietf.secr.proceedings.views.select' meeting_num=meeting.number %}">{{ meeting.number }}</a>
&raquo; Recording
{% endif %}
{% endblock %}
@ -66,7 +66,7 @@
<td>{{ session.official_timeslotassignment.timeslot.time|date:"m-d H:i" }}</td>
<td class="document-name" >{{ recording.name }}</td>
<td><a href="{{ recording.href }}">{{ recording.href }}</a></td>
<td><a href="{% url "proceedings_recording_edit" meeting_num=meeting.number name=recording.name %}">Edit</a></td>
<td><a href="{% url 'ietf.secr.proceedings.views.recording_edit' meeting_num=meeting.number name=recording.name %}">Edit</a></td>
</tr>
{% endfor %}
{% else %}

View file

@ -8,14 +8,14 @@
{% block breadcrumbs %}{{ block.super }}
{% if meeting.type_id == "interim" %}
&raquo; <a href="{% url "proceedings" %}">Proceedings</a>
&raquo; <a href="{% url 'ietf.secr.proceedings.views.main' %}">Proceedings</a>
&raquo; {{ meeting }}
&raquo; <a href="{% url "proceedings_recording" meeting_num=meeting.number %}">Recording</a>
&raquo; <a href="{% url 'ietf.secr.proceedings.views.recording' meeting_num=meeting.number %}">Recording</a>
&raquo; {{ recording.name }}
{% else %}
&raquo; <a href="{% url "proceedings" %}">Proceedings</a>
&raquo; <a href="{% url "proceedings_select" meeting_num=meeting.number %}">{{ meeting.number }}</a>
&raquo; <a href="{% url "proceedings_recording" meeting_num=meeting.number %}">Recording</a>
&raquo; <a href="{% url 'ietf.secr.proceedings.views.main' %}">Proceedings</a>
&raquo; <a href="{% url 'ietf.secr.proceedings.views.select' meeting_num=meeting.number %}">{{ meeting.number }}</a>
&raquo; <a href="{% url 'ietf.secr.proceedings.views.recording' meeting_num=meeting.number %}">Recording</a>
&raquo; {{ recording.name }}
{% endif %}
{% endblock %}

View file

@ -28,7 +28,7 @@
{% block breadcrumbs %}{{ block.super }}
&raquo; <a href="{% url "proceedings" %}">Proceedings</a>
&raquo; <a href="{% url 'ietf.secr.proceedings.views.main' %}">Proceedings</a>
&raquo; {{ meeting.number }}
{% endblock %}

View file

@ -41,7 +41,7 @@
<div class="button-group">
{% if meeting.frozen == 0 %}
<ul>
<li><button onclick="window.location='{% url "proceedings_select" meeting_num=meeting.number %}'">Upload Materials</button></li>
<li><button onclick="window.location='{% url 'ietf.secr.proceedings.views.select' meeting_num=meeting.number %}'">Upload Materials</button></li>
<li><button onclick="window.location='convert/'">Convert Materials</button></li>
<li><button onclick="window.location='status/'">Proceedings {{ meeting.number }} Status</button></li>
</ul>

View file

@ -47,7 +47,7 @@
<form id="roles-form".>
{{ group_form.as_p }}
</form>
<p><a href="{% url "groups_add" %}">Add a new group...</a></p>
<p><a href="{% url 'ietf.secr.groups.views.add' %}">Add a new group...</a></p>
</div> <!-- inline-related -->
<br>

View file

@ -13,7 +13,7 @@
<td>{{ role.name }}</td>
<td>{{ role.person }}</td>
<td>{{ role.email }}</td>
<td><a href="{% url "roles_delete_role" acronym=group.acronym id=role.id %}">Delete</a></td>
<td><a href="{% url 'ietf.secr.roles.views.delete_role' acronym=group.acronym id=role.id %}">Delete</a></td>
</tr>
{% endfor %}
</tbody>

View file

@ -12,7 +12,7 @@
<h1>Are you sure?</h1>
<p>Are you sure you want to delete the Rolodex Entry "{{ person.name }} ({{ person.id }})"? All of the following related items will be deleted:</p>
<ul><li>Rolodex Entry: <a href="{% url "rolodex_view" id=person.id %}">{{ person.name }} ({{ person.id }})</a>
<ul><li>Rolodex Entry: <a href="{% url 'ietf.secr.rolodex.views.view' id=person.id %}">{{ person.name }} ({{ person.id }})</a>
<ul>
{% for email in person.email_set.all %}
<li>Email Address: {{ email.address }}</li>

View file

@ -46,7 +46,7 @@
{% if role.group.type.slug == "area" %}
<a href="{% url "ietf.secr.areas.views.view" name=role.group.acronym %}">{{ role.group.acronym }}{% if role.group.state.slug == "conclude" %} (concluded){% endif %}</a>
{% else %}
<a href="{% url "groups_view" acronym=role.group.acronym %}">{{ role.group.acronym }}{% if role.group.state.slug == "conclude" %} (concluded){% endif %}</a>
<a href="{% url 'ietf.secr.groups.views.view' acronym=role.group.acronym %}">{{ role.group.acronym }}{% if role.group.state.slug == "conclude" %} (concluded){% endif %}</a>
{% endif %}
</td>
<td>{{ role.email }}</td>

View file

@ -9,7 +9,7 @@
{% endblock %}
{% block breadcrumbs %}{{ block.super }}
&raquo; <a href="{% url "telechat" %}">Telechat</a>
&raquo; <a href="{% url 'ietf.secr.telechat.views.main' %}">Telechat</a>
{% endblock %}
{% block content %}
@ -26,7 +26,7 @@
{% if section.docs %}
<ul class="doc-list">
{% for doc in section.docs %}
<li><a href="{% url "telechat_doc_detail" date=date name=doc.name %}">{{ doc.name }}</a></li>
<li><a href="{% url 'ietf.secr.telechat.views.doc_detail' date=date name=doc.name %}">{{ doc.name }}</a></li>
{% endfor %}
</ul>
{% else %}
@ -48,11 +48,11 @@
{% if date %}
<div id="telechat-nav">
<ul id="list-nav">
<li><a href="{% url "telechat_roll_call" date=date %}">Roll Call</a></li>
<li><a href="{% url "telechat_bash" date=date %}">Bash Agenda</a></li>
<li><a href="{% url "telechat_minutes" date=date %}">Minute Approval</a></li>
<li><a href="{% url "telechat_doc" date=date %}">Main Agenda</a></li>
<li><a href="{% url "telechat_management" date=date %}">Management Issues</a></li>
<li><a href="{% url 'ietf.secr.telechat.views.roll_call' date=date %}">Roll Call</a></li>
<li><a href="{% url 'ietf.secr.telechat.views.bash' date=date %}">Bash Agenda</a></li>
<li><a href="{% url 'ietf.secr.telechat.views.minutes' date=date %}">Minute Approval</a></li>
<li><a href="{% url 'ietf.secr.telechat.views.doc' date=date %}">Main Agenda</a></li>
<li><a href="{% url 'ietf.secr.telechat.views.management' date=date %}">Management Issues</a></li>
</ul>
</div>
{% endif %}

View file

@ -1,7 +1,7 @@
{% if section_docs %}
<ul class="doc-list">
{% for doc in section_docs %}
<li><a href="{% url "telechat_doc_detail" date=date name=doc.name %}">{{ doc.name }}</a></li>
<li><a href="{% url 'ietf.secr.telechat.views.doc_detail' date=date name=doc.name %}">{{ doc.name }}</a></li>
{% endfor %}
</ul>
{% else %}

View file

@ -2,7 +2,7 @@ from django.conf.urls import url, include
from django.views.generic import TemplateView
urlpatterns = [
url(r'^$', TemplateView.as_view(template_name='main.html'), name="home"),
url(r'^$', TemplateView.as_view(template_name='main.html')),
url(r'^announcement/', include('ietf.secr.announcement.urls')),
url(r'^areas/', include('ietf.secr.areas.urls')),
url(r'^console/', include('ietf.secr.console.urls')),
@ -14,4 +14,4 @@ urlpatterns = [
url(r'^rolodex/', include('ietf.secr.rolodex.urls')),
url(r'^sreq/', include('ietf.secr.sreq.urls')),
url(r'^telechat/', include('ietf.secr.telechat.urls')),
]
]

View file

@ -43,7 +43,7 @@
<link rel="apple-touch-icon" href="{% static 'ietf/images/apple-touch-icon.png' %}">
</head>
<body {% block bodyAttrs %}{%endblock%} data-group-menu-data-url="{% url "group_menu_data" %}">
<body {% block bodyAttrs %}{%endblock%} data-group-menu-data-url="{% url 'ietf.group.views_ajax.group_menu_data' %}">
{% with debug_server_mode="production" %}
<nav class="navbar {% if server_mode and server_mode == "production" %}navbar-inverse{% else %}navbar-default{% endif %} navbar-fixed-top">
<div class="container-fluid">

View file

@ -75,7 +75,7 @@
{% if user|has_role:"Area Director,Secretariat" %}
{% if flavor == "top" %}<li class="divider hidden-xs"></li>{% endif %}
<li><a href="{% url "ietf.doc.views_status_change.rfc_status_changes" %}">RFC status changes</a></li>
<li><a href="{% url 'ietf.doc.views_status_change.rfc_status_changes' %}">RFC status changes</a></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 %}>RFC streams</li>

View file

@ -38,7 +38,7 @@
{% if user|has_role:"Area Director" %}
{% if flavor == "top" %}<li class="divider hidden-xs"></li>{% endif %}
<li {%if flavor == "top" %}class="dropdown-header hidden-xs"{% else %}class="nav-header"{% endif %}>AD dashboard</li>
<li><a href="{% url "docs_for_ad" name=user.person.full_name_as_key %}">My docs</a></li>
<li><a href="{% url 'ietf.doc.views_search.docs_for_ad' name=user.person.full_name_as_key %}">My docs</a></li>
<li><a href="{% url "ietf.iesg.views.agenda_documents" %}">Next telechat</a></li>
<li><a href="{% url "ietf.iesg.views.discusses" %}">Discusses</a></li>
<li><a href="{% url "ietf.iesg.views.milestones_needing_review" %}">Milestone review</a></li>

View file

@ -19,7 +19,7 @@
<button type="submit" class="btn btn-default" name="save_approval_text" value="Save text">Save text</button>
<button type="submit" class="btn btn-warning" name="regenerate_approval_text" value="Regenerate text">Regenerate text</button>
{% if user|has_role:"Secretariat" and can_announce %}
<a class="btn btn-primary" href="{% url "doc_approve_ballot" name=doc.name %}">Approve ballot</a>
<a class="btn btn-primary" href="{% url 'ietf.doc.views_ballot.approve_ballot' name=doc.name %}">Approve ballot</a>
{% endif %}
{% endbuttons %}
</form>

View file

@ -28,7 +28,7 @@
{% endif %}
<button type="submit" class="btn btn-warning" name="regenerate_last_call_text" value="Regenerate Last Call Text">Regenerate text</button>
{% if user|has_role:"Secretariat" and can_make_last_call %}
<a class="btn btn-primary" href="{% url "doc_make_last_call" name=doc.name %}">Issue last call</a>
<a class="btn btn-primary" href="{% url 'ietf.doc.views_ballot.make_last_call' name=doc.name %}">Issue last call</a>
{% endif %}
{% endbuttons %}
</form>

View file

@ -32,13 +32,13 @@
{% if doc.type_id == "draft" or doc.type_id == "conflrev" %}
{% if deferred %}
<a class="btn btn-default" href="{% url "doc_undefer_ballot" name=doc.name %}">Undefer ballot</a>
<a class="btn btn-default" href="{% url 'ietf.doc.views_ballot.undefer_ballot' name=doc.name %}">Undefer ballot</a>
{% else %}
<a class="btn btn-warning" href="{% url "doc_defer_ballot" name=doc.name %}">Defer ballot</a>
<a class="btn btn-warning" href="{% url 'ietf.doc.views_ballot.defer_ballot' name=doc.name %}">Defer ballot</a>
{% endif %}
{% if user|has_role:"Secretariat" %}
<a class="btn btn-danger" href="{% url "doc_clear_ballot" name=doc.name %}">Clear ballot</a>
<a class="btn btn-danger" href="{% url 'ietf.doc.views_ballot.clear_ballot' name=doc.name %}">Clear ballot</a>
{% endif %}
{% endif %}
{% endif %}

View file

@ -20,7 +20,7 @@
<button type="submit" class="btn btn-warning" name="regenerate_text" value="Reenerate"">Regenerate</button>
{% if user|has_role:"Secretariat" %}
<a type="submit" class="btn btn-default" href="{% url "charter_approve" name=charter.canonical_name %}">Charter approval page</a>
<a type="submit" class="btn btn-default" href="{% url 'ietf.doc.views_charter.approve' name=charter.canonical_name %}">Charter approval page</a>
{% endif %}
<a class="btn btn-default pull-right" href="{{ back_url }}">Back</a>

View file

@ -11,6 +11,6 @@
<p>Ballot has been sent out.</p>
<div class="buttonlist">
<a class="btn btn-default" href="{% url "doc_writeup" name=doc.name %}">Back</a>
<a class="btn btn-default" href="{% url 'ietf.doc.views_doc.document_writeup' name=doc.name %}">Back</a>
</div>
{% endblock %}

View file

@ -22,7 +22,7 @@
{% buttons %}
<button type="submit" class="btn btn-primary" name="save_ballot_writeup" value="Save Ballot Writeup">Save</button>
<button type="submit" class="btn btn-warning" name="send_ballot" value="Save and Re-Issue Ballot">Save & {% if ballot_issued %}re-{% endif %}issue ballot</button>
<a class="btn btn-default pull-right" href="{% url "doc_writeup" name=charter.name %}">Back</a>
<a class="btn btn-default pull-right" href="{% url 'ietf.doc.views_doc.document_writeup' name=charter.name %}">Back</a>
{% endbuttons %}
</form>

View file

@ -11,7 +11,7 @@
<h1>{{ title }}</h1>
{% if not option %}
<p><a class="btn btn-info" href="{% url "state_help" type="charter" %}">Help on states</a></p>
<p><a class="btn btn-info" href="{% url 'ietf.doc.views_help.state_help' type="charter" %}">Help on states</a></p>
{% endif %}
<form method="post">

View file

@ -13,7 +13,7 @@
<h1>Begin IETF conflict review<br><small>{{doc_to_review.canonical_name}}-{{doc_to_review.rev}}</small></h1>
{% if user|has_role:"Secretariat" %}
<p><a class="btn btn-info" href="{% url "state_help" type="conflict-review" %}">Help on states</a></p>
<p><a class="btn btn-info" href="{% url 'ietf.doc.views_help.state_help' type="conflict-review" %}">Help on states</a></p>
{% endif %}
<form method="post">

Some files were not shown because too many files have changed in this diff Show more