Replaced another bunch of explicit url names with dotted-path to the view function.

- Legacy-Id: 12849
This commit is contained in:
Henrik Levkowetz 2017-02-15 22:11:20 +00:00
parent 6b8ac1091f
commit 74af0f5658
34 changed files with 177 additions and 176 deletions

View file

@ -50,7 +50,7 @@ urlpatterns = [
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'^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='rfc_status_changes'),
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'^email-aliases/$', views_doc.email_aliases),

View file

@ -5,6 +5,8 @@ from StringIO import StringIO
from django.conf import settings
from django.core.urlresolvers import reverse as urlreverse
import debug # pyflakes:ignore
from ietf.doc.models import State
from ietf.person.models import Person
from ietf.submit.models import Preapproval
@ -50,7 +52,7 @@ class SecrDraftsTestCase(TestCase):
def test_add(self):
draft = make_test_data()
url = urlreverse('drafts_add')
url = urlreverse('ietf.secr.drafts.views.add')
self.client.login(username="secretary", password="secretary+password")
response = self.client.get(url)
self.assertEqual(response.status_code, 200)
@ -79,7 +81,7 @@ class SecrDraftsTestCase(TestCase):
make_test_data()
Preapproval.objects.create(name='draft-dummy',
by=Person.objects.get(name="(System)"))
url = urlreverse('drafts_approvals')
url = urlreverse('ietf.secr.drafts.views.approvals')
self.client.login(username="secretary", password="secretary+password")
response = self.client.get(url)
self.assertEqual(response.status_code, 200)
@ -132,26 +134,26 @@ class SecrDraftsTestCase(TestCase):
def test_search(self):
draft = make_test_data()
url = urlreverse('drafts')
url = urlreverse('ietf.secr.drafts.views.search')
self.client.login(username="secretary", password="secretary+password")
response = self.client.get(url)
self.assertEqual(response.status_code, 200)
post = dict(filename='draft',state=1,submit='submit')
response = self.client.post(url,post)
response = self.client.post(url, post)
self.assertEqual(response.status_code, 200)
self.assertTrue(draft.name in response.content)
def test_update(self):
draft = make_test_data()
url = urlreverse('drafts_update', kwargs={'id':draft.name})
url = urlreverse('ietf.secr.drafts.views.update', kwargs={'id':draft.name})
self.client.login(username="secretary", password="secretary+password")
response = self.client.get(url)
self.assertEqual(response.status_code, 200)
def test_view(self):
draft = make_test_data()
url = urlreverse('drafts_view', kwargs={'id':draft.name})
url = urlreverse('ietf.secr.drafts.views.view', 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

@ -3,12 +3,12 @@ from ietf.secr.drafts import views
from ietf.utils.urls import url
urlpatterns = [
url(r'^$', views.search, name='drafts'),
url(r'^add/$', views.add, name='drafts_add'),
url(r'^approvals/$', views.approvals, name='drafts_approvals'),
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'^(?P<id>[A-Za-z0-9._\-\+]+)/$', views.view, name='drafts_view'),
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'),
@ -21,6 +21,6 @@ urlpatterns = [
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._\-\+]+)/update/$', views.update, name='drafts_update'),
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'),
]

View file

@ -518,7 +518,7 @@ def announce(request, id):
content_type='Multipart/Mixed; Boundary="NextPart"')
messages.success(request, 'Announcement scheduled successfully!')
return redirect('drafts_view', id=id)
return redirect('ietf.secr.drafts.views.view', id=id)
@role_required('Secretariat')
def approvals(request):
@ -568,7 +568,7 @@ def authors(request, id):
del request.session['action']
return redirect('drafts_announce', id=id)
return redirect('drafts_view', id=id)
return redirect('ietf.secr.drafts.views.view', id=id)
if form.is_valid():
author = form.cleaned_data['email']
@ -605,7 +605,7 @@ def confirm(request, id):
# TODO do cancel functions from session (ie remove uploaded files?)
# clear session data
clear_non_auth(request.session)
return redirect('drafts_view', id=id)
return redirect('ietf.secr.drafts.views.view', id=id)
action = request.session['action']
if action == 'revision':
@ -627,7 +627,7 @@ def confirm(request, id):
clear_non_auth(request.session)
messages.success(request, '%s action performed successfully!' % action)
return redirect('drafts_view', id=id)
return redirect('ietf.secr.drafts.views.view', id=id)
details = get_action_details(draft, request.session)
email = request.session.get('email','')
@ -681,7 +681,7 @@ def edit(request, id):
if request.method == 'POST':
button_text = request.POST.get('submit', '')
if button_text == 'Cancel':
return redirect('drafts_view', id=id)
return redirect('ietf.secr.drafts.views.view', id=id)
form = EditModelForm(request.POST, instance=draft)
if form.is_valid():
@ -696,7 +696,7 @@ def edit(request, id):
messages.success(request, 'Draft modified successfully!')
return redirect('drafts_view', id=id)
return redirect('ietf.secr.drafts.views.view', id=id)
else:
#assert False, form.errors
pass
@ -724,7 +724,7 @@ def email(request, id):
if button_text == 'Cancel':
# clear session data
clear_non_auth(request.session)
return redirect('drafts_view', id=id)
return redirect('ietf.secr.drafts.views.view', id=id)
form = EmailForm(request.POST)
if form.is_valid():
@ -768,7 +768,7 @@ def extend(request, id):
if request.method == 'POST':
button_text = request.POST.get('submit', '')
if button_text == 'Cancel':
return redirect('drafts_view', id=id)
return redirect('ietf.secr.drafts.views.view', id=id)
form = ExtendForm(request.POST)
if form.is_valid():
@ -803,13 +803,13 @@ def makerfc(request, id):
# raise error if draft intended standard is empty
if not draft.intended_std_level:
messages.error(request, 'ERROR: intended RFC status is not set')
return redirect('drafts_view', id=id)
return redirect('ietf.secr.drafts.views.view', id=id)
ObsFormset = formset_factory(RfcObsoletesForm, extra=15, max_num=15)
if request.method == 'POST':
button_text = request.POST.get('submit', '')
if button_text == 'Cancel':
return redirect('drafts_view', id=id)
return redirect('ietf.secr.drafts.views.view', id=id)
form = RfcModelForm(request.POST, instance=draft)
obs_formset = ObsFormset(request.POST, prefix='obs')
@ -846,7 +846,7 @@ def makerfc(request, id):
rfc.save_with_history([e])
messages.success(request, 'RFC created successfully!')
return redirect('drafts_view', id=id)
return redirect('ietf.secr.drafts.views.view', id=id)
else:
# assert False, (form.errors, obs_formset.errors)
pass
@ -888,7 +888,7 @@ def replace(request, id):
if request.method == 'POST':
button_text = request.POST.get('submit', '')
if button_text == 'Cancel':
return redirect('drafts_view', id=id)
return redirect('ietf.secr.drafts.views.view', id=id)
form = ReplaceForm(request.POST, draft=draft)
if form.is_valid():
@ -927,7 +927,7 @@ def revision(request, id):
if request.method == 'POST':
button_text = request.POST.get('submit', '')
if button_text == 'Cancel':
return redirect('drafts_view', id=id)
return redirect('ietf.secr.drafts.views.view', id=id)
upload_form = UploadForm(request.POST, request.FILES, draft=draft)
form = RevisionModelForm(request.POST, instance=draft)
@ -1015,7 +1015,7 @@ def search(request):
# if there's just one result go straight to view
if len(results) == 1:
return redirect('drafts_view', id=results[0].name)
return redirect('ietf.secr.drafts.views.view', id=results[0].name)
else:
active_state = State.objects.get(type='draft',slug='active')
form = SearchForm(initial={'state':active_state.pk})
@ -1039,7 +1039,7 @@ def update(request, id):
if request.method == 'POST':
button_text = request.POST.get('submit', '')
if button_text == 'Cancel':
return redirect('drafts_view', id=id)
return redirect('ietf.secr.drafts.views.view', id=id)
upload_form = UploadForm(request.POST, request.FILES, draft=draft)
form = RevisionModelForm(request.POST, instance=draft)
@ -1139,7 +1139,7 @@ def withdraw(request, id):
if request.method == 'POST':
button_text = request.POST.get('submit', '')
if button_text == 'Cancel':
return redirect('drafts_view', id=id)
return redirect('ietf.secr.drafts.views.view', id=id)
form = WithdrawForm(request.POST)
if form.is_valid():

View file

@ -6,14 +6,14 @@ from ietf.utils.urls import url
urlpatterns = [
url(r'^$', views.search, name='groups'),
url(r'^add/$', views.add, name='groups_add'),
url(r'^blue-dot-report/$', views.blue_dot, name='groups_blue_dot'),
url(r'^blue-dot-report/$', views.blue_dot),
url(r'^search/$', views.search, name='groups_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/gm/$' % settings.URL_REGEXPS, views.view_gm, name='groups_view_gm'),
url(r'^%(acronym)s/gm/edit/$' % settings.URL_REGEXPS, views.edit_gm, name='groups_edit_gm'),
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'),
]

View file

@ -49,7 +49,7 @@ class SecrMeetingTestCase(TestCase):
def test_main(self):
"Main Test"
url = reverse('meetings')
url = reverse('ietf.secr.meetings.views.main')
self.client.login(username="secretary", password="secretary+password")
response = self.client.get(url)
self.assertEqual(response.status_code, 200)
@ -57,7 +57,7 @@ class SecrMeetingTestCase(TestCase):
def test_view(self):
"View Test"
meeting = make_meeting_test_data()
url = reverse('meetings_view', kwargs={'meeting_id':meeting.number})
url = reverse('ietf.secr.meetings.views.view', kwargs={'meeting_id':meeting.number})
self.client.login(username="secretary", password="secretary+password")
response = self.client.get(url)
self.assertEqual(response.status_code, 200)
@ -69,7 +69,7 @@ class SecrMeetingTestCase(TestCase):
meeting = make_meeting_test_data()
number = int(meeting.number) + 1
count = Meeting.objects.count()
url = reverse('meetings_add')
url = reverse('ietf.secr.meetings.views.add')
post_data = dict(number=number,city='Toronto',date='2014-07-20',country='CA',
time_zone='America/New_York',venue_name='Hilton',
venue_addr='100 First Ave',
@ -92,7 +92,7 @@ class SecrMeetingTestCase(TestCase):
type_id='ietf',
date=datetime.datetime(2014,7,20),
)
url = reverse('meetings_edit_meeting',kwargs={'meeting_id':1})
url = reverse('ietf.secr.meetings.views.edit_meeting',kwargs={'meeting_id':1})
post_data = dict(number='1',date='2014-07-20',city='Toronto',
idsubmit_cutoff_day_offset_00=13,
idsubmit_cutoff_day_offset_01=20,
@ -113,7 +113,7 @@ class SecrMeetingTestCase(TestCase):
meeting = make_meeting_test_data()
os.makedirs(os.path.join(self.proceedings_dir,str(meeting.number),'bluesheets'))
url = reverse('meetings_blue_sheet',kwargs={'meeting_id':meeting.number})
url = reverse('ietf.secr.meetings.views.blue_sheet',kwargs={'meeting_id':meeting.number})
self.client.login(username="secretary", password="secretary+password")
response = self.client.get(url)
self.assertEqual(response.status_code, 200)
@ -130,7 +130,7 @@ class SecrMeetingTestCase(TestCase):
def test_blue_sheets_generate(self):
meeting = make_meeting_test_data()
url = reverse('meetings_blue_sheet_generate',kwargs={'meeting_id':meeting.number})
url = reverse('ietf.secr.meetings.views.blue_sheet_generate',kwargs={'meeting_id':meeting.number})
self.client.login(username="secretary", password="secretary+password")
response = self.client.post(url)
self.assertEqual(response.status_code, 302)
@ -139,7 +139,7 @@ class SecrMeetingTestCase(TestCase):
def test_notifications(self):
"Test Notifications"
meeting = make_meeting_test_data()
url = reverse('meetings_notifications',kwargs={'meeting_id':42})
url = reverse('ietf.secr.meetings.views.notifications',kwargs={'meeting_id':42})
self.client.login(username="secretary", password="secretary+password")
response = self.client.get(url)
self.assertEqual(response.status_code, 200)
@ -172,14 +172,14 @@ class SecrMeetingTestCase(TestCase):
def test_meetings_select(self):
make_meeting_test_data()
url = reverse('meetings_select',kwargs={'meeting_id':42,'schedule_name':'test-agenda'})
url = reverse('ietf.secr.meetings.views.select',kwargs={'meeting_id':42,'schedule_name':'test-agenda'})
self.client.login(username="secretary", password="secretary+password")
response = self.client.get(url)
self.assertEqual(response.status_code, 200)
def test_meetings_rooms(self):
meeting = make_meeting_test_data()
url = reverse('meetings_rooms',kwargs={'meeting_id':42,'schedule_name':'test-agenda'})
url = reverse('ietf.secr.meetings.views.rooms',kwargs={'meeting_id':42,'schedule_name':'test-agenda'})
self.client.login(username="secretary", password="secretary+password")
response = self.client.get(url)
self.assertEqual(response.status_code, 200)
@ -205,7 +205,7 @@ class SecrMeetingTestCase(TestCase):
def test_meetings_times(self):
make_meeting_test_data()
url = reverse('meetings_times',kwargs={'meeting_id':42,'schedule_name':'test-agenda'})
url = reverse('ietf.secr.meetings.views.times',kwargs={'meeting_id':42,'schedule_name':'test-agenda'})
self.client.login(username="secretary", password="secretary+password")
response = self.client.get(url)
self.assertEqual(response.status_code, 200)
@ -215,7 +215,7 @@ class SecrMeetingTestCase(TestCase):
qs = TimeSlot.objects.filter(meeting=meeting,type='session')
before = qs.count()
expected_deletion_count = qs.filter(time=qs.first().time).count()
url = reverse('meetings_times_delete',kwargs={
url = reverse('ietf.secr.meetings.views.times_delete',kwargs={
'meeting_id':42,
'schedule_name':'test-agenda',
'time':qs.first().time.strftime("%Y:%m:%d:%H:%M")
@ -246,14 +246,14 @@ class SecrMeetingTestCase(TestCase):
def test_meetings_nonsession(self):
make_meeting_test_data()
url = reverse('meetings_non_session',kwargs={'meeting_id':42,'schedule_name':'test-agenda'})
url = reverse('ietf.secr.meetings.views.non_session',kwargs={'meeting_id':42,'schedule_name':'test-agenda'})
self.client.login(username="secretary", password="secretary+password")
response = self.client.get(url)
self.assertEqual(response.status_code, 200)
def test_meetings_select_group(self):
make_meeting_test_data()
url = reverse('meetings_select_group',kwargs={'meeting_id':42,'schedule_name':'test-agenda'})
url = reverse('ietf.secr.meetings.views.select_group',kwargs={'meeting_id':42,'schedule_name':'test-agenda'})
self.client.login(username="secretary", password="secretary+password")
response = self.client.get(url)
self.assertEqual(response.status_code, 200)

View file

@ -3,25 +3,25 @@ from ietf.secr.meetings import views
from ietf.utils.urls import url
urlpatterns = [
url(r'^$', views.main, name='meetings'),
url(r'^add/$', views.add, name='meetings_add'),
url(r'^ajax/get-times/(?P<meeting_id>\d{1,6})/(?P<day>\d)/$', views.ajax_get_times, name='meetings_ajax_get_times'),
url(r'^blue_sheet/$', views.blue_sheet_redirect, name='meetings_blue_sheet_redirect'),
url(r'^(?P<meeting_id>\d{1,6})/$', views.view, name='meetings_view'),
url(r'^(?P<meeting_id>\d{1,6})/blue_sheet/$', views.blue_sheet, name='meetings_blue_sheet'),
url(r'^(?P<meeting_id>\d{1,6})/blue_sheet/generate/$', views.blue_sheet_generate, name='meetings_blue_sheet_generate'),
url(r'^(?P<meeting_id>\d{1,6})/edit/$', views.edit_meeting, name='meetings_edit_meeting'),
url(r'^(?P<meeting_id>\d{1,6})/notifications/$', views.notifications, name='meetings_notifications'),
url(r'^(?P<meeting_id>\d{1,6})/(?P<schedule_name>[A-Za-z0-9_\-]+)/$', views.select, name='meetings_select'),
url(r'^(?P<meeting_id>\d{1,6})/(?P<schedule_name>[A-Za-z0-9_\-]+)/non_session/$', views.non_session, name='meetings_non_session'),
url(r'^(?P<meeting_id>\d{1,6})/(?P<schedule_name>[A-Za-z0-9_\-]+)/non_session/edit/(?P<slot_id>\d{1,6})/$', views.non_session_edit, name='meetings_non_session_edit'),
url(r'^(?P<meeting_id>\d{1,6})/(?P<schedule_name>[A-Za-z0-9_\-]+)/non_session/delete/(?P<slot_id>\d{1,6})/$', views.non_session_delete, name='meetings_non_session_delete'),
url(r'^(?P<meeting_id>\d{1,6})/(?P<schedule_name>[A-Za-z0-9_\-]+)/rooms/$', views.rooms, name='meetings_rooms'),
url(r'^(?P<meeting_id>\d{1,6})/(?P<schedule_name>[A-Za-z0-9_\-]+)/select/$', views.select_group, name='meetings_select_group'),
url(r'^(?P<meeting_id>\d{1,6})/(?P<schedule_name>[A-Za-z0-9_\-]+)/times/$', views.times, name='meetings_times'),
url(r'^(?P<meeting_id>\d{1,6})/(?P<schedule_name>[A-Za-z0-9_\-]+)/times/delete/(?P<time>[0-9\:]+)/$', views.times_delete, name='meetings_times_delete'),
url(r'^$', views.main),
url(r'^add/$', views.add),
url(r'^ajax/get-times/(?P<meeting_id>\d{1,6})/(?P<day>\d)/$', views.ajax_get_times),
url(r'^blue_sheet/$', views.blue_sheet_redirect),
url(r'^(?P<meeting_id>\d{1,6})/$', views.view),
url(r'^(?P<meeting_id>\d{1,6})/blue_sheet/$', views.blue_sheet),
url(r'^(?P<meeting_id>\d{1,6})/blue_sheet/generate/$', views.blue_sheet_generate),
url(r'^(?P<meeting_id>\d{1,6})/edit/$', views.edit_meeting),
url(r'^(?P<meeting_id>\d{1,6})/notifications/$', views.notifications),
url(r'^(?P<meeting_id>\d{1,6})/(?P<schedule_name>[A-Za-z0-9_\-]+)/$', views.select),
url(r'^(?P<meeting_id>\d{1,6})/(?P<schedule_name>[A-Za-z0-9_\-]+)/non_session/$', views.non_session),
url(r'^(?P<meeting_id>\d{1,6})/(?P<schedule_name>[A-Za-z0-9_\-]+)/non_session/edit/(?P<slot_id>\d{1,6})/$', views.non_session_edit),
url(r'^(?P<meeting_id>\d{1,6})/(?P<schedule_name>[A-Za-z0-9_\-]+)/non_session/delete/(?P<slot_id>\d{1,6})/$', views.non_session_delete),
url(r'^(?P<meeting_id>\d{1,6})/(?P<schedule_name>[A-Za-z0-9_\-]+)/rooms/$', views.rooms),
url(r'^(?P<meeting_id>\d{1,6})/(?P<schedule_name>[A-Za-z0-9_\-]+)/select/$', views.select_group),
url(r'^(?P<meeting_id>\d{1,6})/(?P<schedule_name>[A-Za-z0-9_\-]+)/times/$', views.times),
url(r'^(?P<meeting_id>\d{1,6})/(?P<schedule_name>[A-Za-z0-9_\-]+)/times/delete/(?P<time>[0-9\:]+)/$', views.times_delete),
url(r'^(?P<meeting_id>\d{1,6})/(?P<schedule_name>[A-Za-z0-9_\-]+)/times/edit/(?P<time>[0-9\:]+)/$', views.times_edit),
url(r'^(?P<meeting_id>\d{1,6})/(?P<schedule_name>[A-Za-z0-9_\-]+)/unschedule/(?P<session_id>\d{1,6})/$', views.unschedule, name='meetings_unschedule'),
url(r'^(?P<meeting_id>\d{1,6})/(?P<schedule_name>[A-Za-z0-9_\-]+)/(?P<acronym>[-a-z0-9]+)/schedule/$', views.schedule, name='meetings_schedule'),
url(r'^(?P<meeting_id>\d{1,6})/(?P<acronym>[-a-z0-9]+)/remove/$', views.remove_session, name='meetings_remove_session'),
url(r'^(?P<meeting_id>\d{1,6})/(?P<schedule_name>[A-Za-z0-9_\-]+)/unschedule/(?P<session_id>\d{1,6})/$', views.unschedule),
url(r'^(?P<meeting_id>\d{1,6})/(?P<schedule_name>[A-Za-z0-9_\-]+)/(?P<acronym>[-a-z0-9]+)/schedule/$', views.schedule),
url(r'^(?P<meeting_id>\d{1,6})/(?P<acronym>[-a-z0-9]+)/remove/$', views.remove_session),
]

View file

@ -295,7 +295,7 @@ def add(request):
if request.method == 'POST':
button_text = request.POST.get('submit', '')
if button_text == 'Cancel':
return redirect('meetings')
return redirect('ietf.secr.meetings.views.main')
form = MeetingModelForm(request.POST)
if form.is_valid():
@ -317,7 +317,7 @@ def add(request):
make_materials_directories(meeting)
messages.success(request, 'The Meeting was created successfully!')
return redirect('meetings')
return redirect('ietf.secr.meetings.views.main')
else:
# display initial forms
max_number = Meeting.objects.filter(type='ietf').aggregate(Max('number'))['number__max']
@ -348,7 +348,7 @@ def blue_sheet(request, meeting_id):
file = request.FILES['file']
handle_upload_file(file,file.name,meeting,'bluesheets')
messages.success(request, 'File Uploaded')
return redirect('meetings_blue_sheet', meeting_id=meeting.number)
return redirect('ietf.secr.meetings.views.blue_sheet', meeting_id=meeting.number)
else:
form = UploadBlueSheetForm()
@ -374,7 +374,7 @@ def blue_sheet_generate(request, meeting_id):
create_blue_sheets(meeting, groups)
messages.success(request, 'Blue Sheets generated')
return redirect('meetings_blue_sheet', meeting_id=meeting.number)
return redirect('ietf.secr.meetings.views.blue_sheet', meeting_id=meeting.number)
@role_required('Secretariat')
def blue_sheet_redirect(request):
@ -388,7 +388,7 @@ def blue_sheet_redirect(request):
meeting = qs[0]
else:
meeting = Meeting.objects.filter(type='ietf').order_by('-date')[0]
return redirect('meetings_blue_sheet', meeting_id=meeting.number)
return redirect('ietf.secr.meetings.views.blue_sheet', meeting_id=meeting.number)
@role_required('Secretariat')
def edit_meeting(request, meeting_id):
@ -409,13 +409,13 @@ def edit_meeting(request, meeting_id):
if request.method == 'POST':
button_text = request.POST.get('submit','')
if button_text == 'Cancel':
return redirect('meetings_view', meeting_id=meeting_id)
return redirect('ietf.secr.meetings.views.view', meeting_id=meeting_id)
form = MeetingModelForm(request.POST, instance=meeting)
if form.is_valid():
form.save()
messages.success(request,'The meeting entry was changed successfully')
return redirect('meetings_view', meeting_id=meeting_id)
return redirect('ietf.secr.meetings.views.view', meeting_id=meeting_id)
else:
form = MeetingModelForm(instance=meeting)
@ -433,7 +433,7 @@ def main(request):
meetings = Meeting.objects.filter(type='ietf').order_by('-number')
if request.method == 'POST':
return redirect('meetings_view', meeting_id=request.POST['group'])
return redirect('ietf.secr.meetings.views.view', meeting_id=request.POST['group'])
choices = [ (str(x.number),str(x.number)) for x in meetings ]
form = GroupSelectForm(choices=choices)
@ -499,7 +499,7 @@ def non_session(request, meeting_id, schedule_name):
schedule=schedule)
messages.success(request, 'Non-Sessions updated successfully')
return redirect('meetings_non_session', meeting_id=meeting_id, schedule_name=schedule_name)
return redirect('ietf.secr.meetings.views.non_session', meeting_id=meeting_id, schedule_name=schedule_name)
else:
form = NonSessionForm(initial={'show_location':True})
@ -529,13 +529,13 @@ def non_session_delete(request, meeting_id, schedule_name, slot_id):
for session in session_objects:
if session.materials.exclude(states__slug='deleted'):
messages.error(request, 'Materials have already been uploaded for "%s". You must delete those before deleting the timeslot.' % slot.name)
return redirect('meetings_non_session', meeting_id=meeting_id, schedule_name=schedule_name)
return redirect('ietf.secr.meetings.views.non_session', meeting_id=meeting_id, schedule_name=schedule_name)
else:
Session.objects.filter(pk__in=[ x.pk for x in session_objects ]).delete()
slot.delete()
messages.success(request, 'Non-Session timeslot deleted successfully')
return redirect('meetings_non_session', meeting_id=meeting_id, schedule_name=schedule_name)
return redirect('ietf.secr.meetings.views.non_session', meeting_id=meeting_id, schedule_name=schedule_name)
@role_required('Secretariat')
def non_session_edit(request, meeting_id, schedule_name, slot_id):
@ -550,7 +550,7 @@ def non_session_edit(request, meeting_id, schedule_name, slot_id):
if request.method == 'POST':
button_text = request.POST.get('submit', '')
if button_text == 'Cancel':
return redirect('meetings_non_session', meeting_id=meeting_id, schedule_name=schedule_name)
return redirect('ietf.secr.meetings.views.non_session', meeting_id=meeting_id, schedule_name=schedule_name)
form = NonSessionEditForm(request.POST,meeting=meeting, session=session)
if form.is_valid():
@ -568,7 +568,7 @@ def non_session_edit(request, meeting_id, schedule_name, slot_id):
session.save()
messages.success(request, 'Location saved')
return redirect('meetings_non_session', meeting_id=meeting_id, schedule_name=schedule_name)
return redirect('ietf.secr.meetings.views.non_session', meeting_id=meeting_id, schedule_name=schedule_name)
else:
# we need to pass the session to the form in order to disallow changing
@ -613,7 +613,7 @@ def notifications(request, meeting_id):
send_notifications(meeting,groups,request.user.person)
messages.success(request, "Notifications Sent")
return redirect('meetings_view', meeting_id=meeting.number)
return redirect('ietf.secr.meetings.views.view', meeting_id=meeting.number)
return render(request, 'meetings/notifications.html', {
'meeting': meeting,
@ -643,7 +643,7 @@ def remove_session(request, meeting_id, acronym):
session.save()
messages.success(request, '%s Session removed from agenda' % (group.acronym))
return redirect('meetings_select_group', meeting_id=meeting.number)
return redirect('ietf.secr.meetings.views.select_group', meeting_id=meeting.number)
@role_required('Secretariat')
def rooms(request, meeting_id, schedule_name):
@ -661,7 +661,7 @@ def rooms(request, meeting_id, schedule_name):
if request.method == 'POST':
button_text = request.POST.get('submit', '')
if button_text == 'Cancel':
return redirect('meetings', meeting_id=meeting_id,schedule_name=schedule_name)
return redirect('ietf.secr.meetings.views.main', meeting_id=meeting_id,schedule_name=schedule_name)
formset = RoomFormset(request.POST, instance=meeting, prefix='room')
if formset.is_valid():
@ -679,7 +679,7 @@ def rooms(request, meeting_id, schedule_name):
build_timeslots(meeting,room=form.instance)
messages.success(request, 'Meeting Rooms changed successfully')
return redirect('meetings_rooms', meeting_id=meeting_id, schedule_name=schedule_name)
return redirect('ietf.secr.meetings.views.rooms', meeting_id=meeting_id, schedule_name=schedule_name)
else:
formset = RoomFormset(instance=meeting, prefix='room')
@ -726,7 +726,7 @@ def schedule(request, meeting_id, schedule_name, acronym):
if request.method == 'POST':
button_text = request.POST.get('submit', '')
if button_text == 'Cancel':
return redirect('meetings_select_group', meeting_id=meeting_id,schedule_name=schedule_name)
return redirect('ietf.secr.meetings.views.select_group', meeting_id=meeting_id,schedule_name=schedule_name)
formset = NewSessionFormset(request.POST,initial=initial)
@ -788,7 +788,7 @@ def schedule(request, meeting_id, schedule_name, acronym):
if has_changed:
messages.success(request, 'Session(s) Scheduled for %s.' % group.acronym )
return redirect('meetings_select_group', meeting_id=meeting_id,schedule_name=schedule_name)
return redirect('ietf.secr.meetings.views.select_group', meeting_id=meeting_id,schedule_name=schedule_name)
else:
formset = NewSessionFormset(initial=initial)
@ -829,9 +829,9 @@ def select_group(request, meeting_id, schedule_name):
if request.method == 'POST':
group = request.POST.get('group',None)
if group:
redirect_url = reverse('meetings_schedule', kwargs={'meeting_id':meeting_id,'acronym':group,'schedule_name':schedule_name})
redirect_url = reverse('ietf.secr.meetings.views.schedule', kwargs={'meeting_id':meeting_id,'acronym':group,'schedule_name':schedule_name})
else:
redirect_url = reverse('meetings_select_group',kwargs={'meeting_id':meeting_id,'schedule_name':schedule_name})
redirect_url = reverse('ietf.secr.meetings.views.select_group',kwargs={'meeting_id':meeting_id,'schedule_name':schedule_name})
messages.error(request, 'No group selected')
return HttpResponseRedirect(redirect_url)
@ -901,7 +901,7 @@ def times(request, meeting_id, schedule_name):
# assert False, (new_time, time_seen)
if new_time in time_seen:
messages.error(request, 'There is already a timeslot for %s. To change you must delete the old one first.' % new_time.strftime('%a %H:%M'))
return redirect('meetings_times', meeting_id=meeting_id,schedule_name=schedule_name)
return redirect('ietf.secr.meetings.views.times', meeting_id=meeting_id,schedule_name=schedule_name)
for room in meeting.room_set.all():
TimeSlot.objects.create(type_id='session',
@ -912,7 +912,7 @@ def times(request, meeting_id, schedule_name):
duration=duration)
messages.success(request, 'Timeslots created')
return redirect('meetings_times', meeting_id=meeting_id,schedule_name=schedule_name)
return redirect('ietf.secr.meetings.views.times', meeting_id=meeting_id,schedule_name=schedule_name)
else:
form = TimeSlotForm()
@ -939,7 +939,7 @@ def times_edit(request, meeting_id, schedule_name, time):
if request.method == 'POST':
button_text = request.POST.get('submit', '')
if button_text == 'Cancel':
return redirect('meetings_times', meeting_id=meeting_id,schedule_name=schedule_name)
return redirect('ietf.secr.meetings.views.times', meeting_id=meeting_id,schedule_name=schedule_name)
form = TimeSlotForm(request.POST)
if form.is_valid():
@ -958,7 +958,7 @@ def times_edit(request, meeting_id, schedule_name, time):
timeslot.save()
messages.success(request, 'TimeSlot saved')
return redirect('meetings_times', meeting_id=meeting_id,schedule_name=schedule_name)
return redirect('ietf.secr.meetings.views.times', meeting_id=meeting_id,schedule_name=schedule_name)
else:
# we need to pass the session to the form in order to disallow changing
@ -992,7 +992,7 @@ def times_delete(request, meeting_id, schedule_name, time):
TimeSlot.objects.filter(meeting=meeting,time=dtime).delete()
messages.success(request, 'Timeslot deleted')
return redirect('meetings_times', meeting_id=meeting_id,schedule_name=schedule_name)
return redirect('ietf.secr.meetings.views.times', meeting_id=meeting_id,schedule_name=schedule_name)
@role_required('Secretariat')
def unschedule(request, meeting_id, schedule_name, session_id):
@ -1007,7 +1007,7 @@ def unschedule(request, meeting_id, schedule_name, session_id):
# TODO: change session state?
messages.success(request, 'Session unscheduled')
return redirect('meetings_select_group', meeting_id=meeting_id, schedule_name=schedule_name)
return redirect('ietf.secr.meetings.views.select_group', meeting_id=meeting_id, schedule_name=schedule_name)
@role_required('Secretariat')
def view(request, meeting_id):

View file

@ -6,7 +6,7 @@ from ietf.secr.proceedings import views
urlpatterns = [
url(r'^$', views.main, name='proceedings'),
url(r'^ajax/generate-proceedings/(?P<meeting_num>\d{1,3})/$', views.ajax_generate_proceedings, name='proceedings_ajax_generate_proceedings'),
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'),

View file

@ -5,6 +5,6 @@ from ietf.utils.urls import url
urlpatterns = [
url(r'^$', views.main, name='roles'),
url(r'^ajax/get-roles/%(acronym)s/$' % settings.URL_REGEXPS, views.ajax_get_roles, name='roles_ajax_get_roles'),
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'),
]

View file

@ -5,8 +5,8 @@ from ietf.utils.urls import url
urlpatterns = [
url(r'^$', views.search, name='rolodex'),
url(r'^add/$', views.add, name='rolodex_add'),
url(r'^add-proceed/$', views.add_proceed, name='rolodex_add_proceed'),
url(r'^(?P<id>\d{1,6})/edit/$', views.edit, name='rolodex_edit'),
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'),
]

View file

@ -32,7 +32,7 @@ class SreqUrlTests(TestCase):
class SessionRequestTestCase(TestCase):
def test_main(self):
make_meeting_test_data()
url = reverse('sessions')
url = reverse('ietf.secr.sreq.views.main')
self.client.login(username="secretary", password="secretary+password")
r = self.client.get(url)
self.assertEqual(r.status_code, 200)
@ -53,7 +53,7 @@ class SubmitRequestCase(TestCase):
'comments':'need projector'}
self.client.login(username="secretary", password="secretary+password")
r = self.client.post(url,post_data)
self.assertRedirects(r, reverse('sessions_confirm', kwargs={'acronym':group.acronym}))
self.assertRedirects(r, reverse('ietf.secr.sreq.views.confirm', kwargs={'acronym':group.acronym}))
def test_submit_request_invalid(self):
make_test_data()
@ -78,7 +78,7 @@ class SubmitRequestCase(TestCase):
ad = group.parent.role_set.filter(name='ad').first().person
resource = ResourceAssociation.objects.first()
url = reverse('ietf.secr.sreq.views.new',kwargs={'acronym':group.acronym})
confirm_url = reverse('sessions_confirm',kwargs={'acronym':group.acronym})
confirm_url = reverse('ietf.secr.sreq.views.confirm',kwargs={'acronym':group.acronym})
len_before = len(outbox)
post_data = {'num_session':'1',
'length_session1':'3600',
@ -93,7 +93,7 @@ class SubmitRequestCase(TestCase):
self.assertRedirects(r, confirm_url)
# confirm
r = self.client.post(confirm_url,{'submit':'Submit'})
self.assertRedirects(r, reverse('sessions'))
self.assertRedirects(r, reverse('ietf.secr.sreq.views.main'))
self.assertEqual(len(outbox),len_before+1)
notification = outbox[-1]
notification_payload = unicode(notification.get_payload(decode=True),"utf-8","replace")
@ -110,7 +110,7 @@ class LockAppTestCase(TestCase):
meeting.session_request_lock_message='locked'
meeting.save()
group = Group.objects.get(acronym='mars')
url = reverse('sessions_edit',kwargs={'acronym':group.acronym})
url = reverse('ietf.secr.sreq.views.edit',kwargs={'acronym':group.acronym})
self.client.login(username="secretary", password="secretary+password")
r = self.client.get(url)
self.assertEqual(r.status_code, 200)
@ -122,7 +122,7 @@ class LockAppTestCase(TestCase):
meeting.session_request_lock_message='locked'
meeting.save()
group = Group.objects.get(acronym='mars')
url = reverse('sessions_view',kwargs={'acronym':group.acronym})
url = reverse('ietf.secr.sreq.views.view',kwargs={'acronym':group.acronym})
self.client.login(username="secretary", password="secretary+password")
r = self.client.get(url,follow=True)
self.assertEqual(r.status_code, 200)
@ -138,7 +138,7 @@ class LockAppTestCase(TestCase):
# try as WG Chair
self.client.login(username="marschairman", password="marschairman+password")
r = self.client.get(url,follow=True)
r = self.client.get(url, follow=True)
self.assertEqual(r.status_code, 200)
q = PyQuery(r.content)
self.assertEqual(len(q('#session-request-form')),0)
@ -158,7 +158,7 @@ class NotMeetingCase(TestCase):
def test_not_meeting(self):
make_meeting_test_data()
group = Group.objects.get(acronym='mars')
url = reverse('sessions_no_session',kwargs={'acronym':group.acronym})
url = reverse('ietf.secr.sreq.views.no_session',kwargs={'acronym':group.acronym})
self.client.login(username="secretary", password="secretary+password")
empty_outbox()

View file

@ -4,15 +4,15 @@ from ietf.secr.sreq import views
from ietf.utils.urls import url
urlpatterns = [
url(r'^$', views.main, name='sessions'),
url(r'^status/$', views.tool_status, name='sessions_tool_status'),
url(r'^%(acronym)s/$' % settings.URL_REGEXPS, views.view, name='sessions_view'),
url(r'^(?P<num>[A-Za-z0-9_\-\+]+)/%(acronym)s/view/$' % settings.URL_REGEXPS, views.view, name='sessions_view'),
url(r'^%(acronym)s/approve/$' % settings.URL_REGEXPS, views.approve, name='sessions_approve'),
url(r'^%(acronym)s/cancel/$' % settings.URL_REGEXPS, views.cancel, name='sessions_cancel'),
url(r'^%(acronym)s/confirm/$' % settings.URL_REGEXPS, views.confirm, name='sessions_confirm'),
url(r'^%(acronym)s/edit/$' % settings.URL_REGEXPS, views.edit, name='sessions_edit'),
url(r'^$', views.main),
url(r'^status/$', views.tool_status),
url(r'^%(acronym)s/$' % settings.URL_REGEXPS, views.view),
url(r'^(?P<num>[A-Za-z0-9_\-\+]+)/%(acronym)s/view/$' % settings.URL_REGEXPS, views.view),
url(r'^%(acronym)s/approve/$' % settings.URL_REGEXPS, views.approve),
url(r'^%(acronym)s/cancel/$' % settings.URL_REGEXPS, views.cancel),
url(r'^%(acronym)s/confirm/$' % settings.URL_REGEXPS, views.confirm),
url(r'^%(acronym)s/edit/$' % settings.URL_REGEXPS, views.edit),
url(r'^%(acronym)s/new/$' % settings.URL_REGEXPS, views.new),
url(r'^%(acronym)s/no_session/$' % settings.URL_REGEXPS, views.no_session, name='sessions_no_session'),
url(r'^(?P<num>[A-Za-z0-9_\-\+]+)/%(acronym)s/edit/$' % settings.URL_REGEXPS, views.edit_mtg, name='sessions_edit'),
url(r'^%(acronym)s/no_session/$' % settings.URL_REGEXPS, views.no_session),
url(r'^(?P<num>[A-Za-z0-9_\-\+]+)/%(acronym)s/edit/$' % settings.URL_REGEXPS, views.edit_mtg),
]

View file

@ -174,11 +174,11 @@ def approve(request, acronym):
session_save(session)
messages.success(request, 'Third session approved')
return redirect('sessions_view', acronym=acronym)
return redirect('ietf.secr.sreq.views.view', acronym=acronym)
else:
# if an unauthorized user gets here return error
messages.error(request, 'Not authorized to approve the third session')
return redirect('sessions_view', acronym=acronym)
return redirect('ietf.secr.sreq.views.view', acronym=acronym)
@check_permissions
def cancel(request, acronym):
@ -217,7 +217,7 @@ def cancel(request, acronym):
'meeting':meeting}, cc=cc_list)
messages.success(request, 'The %s Session Request has been canceled' % group.acronym)
return redirect('sessions')
return redirect('ietf.secr.sreq.views.main')
@role_required(*AUTHORIZED_ROLES)
def confirm(request, acronym):
@ -246,7 +246,7 @@ def confirm(request, acronym):
button_text = request.POST.get('submit', '')
if button_text == 'Cancel':
messages.success(request, 'Session Request has been canceled')
return redirect('sessions')
return redirect('ietf.secr.sreq.views.main')
# delete any existing session records with status = canceled or notmeet
Session.objects.filter(group=group,meeting=meeting,status__in=('canceled','notmeet')).delete()
@ -295,7 +295,7 @@ def confirm(request, acronym):
status_text = 'IETF Agenda to be scheduled'
messages.success(request, 'Your request has been sent to %s' % status_text)
return redirect('sessions')
return redirect('ietf.secr.sreq.views.main')
# GET logic
session_conflicts = session_conflicts_as_string(group, meeting)
@ -353,7 +353,7 @@ def edit_mtg(request, num, acronym):
if request.method == 'POST':
button_text = request.POST.get('submit', '')
if button_text == 'Cancel':
return redirect('sessions_view', acronym=acronym)
return redirect('ietf.secr.sreq.views.view', acronym=acronym)
form = SessionForm(request.POST,initial=initial)
if form.is_valid():
@ -453,7 +453,7 @@ def edit_mtg(request, num, acronym):
session_constraint_expire(request,session)
messages.success(request, 'Session Request updated')
return redirect('sessions_view', acronym=acronym)
return redirect('ietf.secr.sreq.views.view', acronym=acronym)
else:
if not sessions:
@ -491,7 +491,7 @@ def main(request):
if request.method == 'POST':
button_text = request.POST.get('submit', '')
if button_text == 'Group will not meet':
return redirect('sessions_no_session', acronym=request.POST['group'])
return redirect('ietf.secr.sreq.views.no_session', acronym=request.POST['group'])
else:
return redirect('ietf.secr.sreq.views.new', acronym=request.POST['group'])
@ -542,24 +542,23 @@ def new(request, acronym):
is_locked = check_app_locked()
if is_locked and not has_role(request.user,'Secretariat'):
messages.warning(request, "The Session Request Tool is closed")
return redirect('sessions')
return redirect('ietf.secr.sreq.views.main')
if request.method == 'POST':
button_text = request.POST.get('submit', '')
if button_text == 'Cancel':
return redirect('sessions')
return redirect('ietf.secr.sreq.views.main')
form = SessionForm(request.POST)
if form.is_valid():
# check if request already exists for this group
if Session.objects.filter(group=group,meeting=meeting).exclude(status__in=('deleted','notmeet')):
messages.warning(request, 'Sessions for working group %s have already been requested once.' % group.acronym)
return redirect('sessions')
return redirect('ietf.secr.sreq.views.main')
# save in user session
request.session['session_form'] = form.data
return redirect('sessions_confirm',acronym=acronym)
return redirect('ietf.secr.sreq.views.confirm',acronym=acronym)
# the "previous" querystring causes the form to be returned
# pre-populated with data from last meeeting's session request
@ -606,7 +605,7 @@ def no_session(request, acronym):
# skip if state is already notmeet
if Session.objects.filter(group=group,meeting=meeting,status='notmeet'):
messages.info(request, 'The group %s is already marked as not meeting' % group.acronym)
return redirect('sessions')
return redirect('ietf.secr.sreq.views.main')
session = Session(group=group,
meeting=meeting,
@ -634,7 +633,7 @@ def no_session(request, acronym):
# redirect
messages.success(request, 'A message was sent to notify not having a session at IETF %s' % meeting.number)
return redirect('sessions')
return redirect('ietf.secr.sreq.views.main')
@role_required('Secretariat')
def tool_status(request):
@ -647,7 +646,7 @@ def tool_status(request):
if request.method == 'POST':
button_text = request.POST.get('submit', '')
if button_text == 'Back':
return redirect('sessions')
return redirect('ietf.secr.sreq.views.main')
form = ToolStatusForm(request.POST)
@ -656,13 +655,13 @@ def tool_status(request):
meeting.session_request_lock_message = form.cleaned_data['message']
meeting.save()
messages.success(request, 'Session Request Tool is now Locked')
return redirect('sessions')
return redirect('ietf.secr.sreq.views.main')
elif button_text == 'Unlock':
meeting.session_request_lock_message = ''
meeting.save()
messages.success(request, 'Session Request Tool is now Unlocked')
return redirect('sessions')
return redirect('ietf.secr.sreq.views.main')
else:
if is_locked:
@ -694,7 +693,7 @@ def view(request, acronym, num = None):
# if there are no session requests yet, redirect to new session request page
if not sessions:
if is_locked:
return redirect('sessions')
return redirect('ietf.secr.sreq.views.main')
else:
return redirect('ietf.secr.sreq.views.new', acronym=acronym)

View file

@ -12,5 +12,5 @@ urlpatterns = [
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'^new/$', views.new, name='telechat_new'),
url(r'^new/$', views.new),
]

View file

@ -56,8 +56,8 @@
<tr><td>RFC Number:</td><td>{{ draft.rfc_number|default_if_none:"" }}</td></tr>
<tr><td>Comments:</td><td>{{ draft.internal_comments|default_if_none:"" }}</td></tr>
<tr><td>Last Modified Date:</td><td>{{ draft.time }}</td></tr>
<tr><td>Replaced by:</td><td>{% if draft.replaced_by %}<a href="{% url "drafts_view" id=draft.replaced_by.name %}">{{ draft.replaced_by.name }}{% endif %}</td></tr>
<tr><td>Related Documents:</td><td>{% for item in draft.relateddocument_set.all %}{% if not forloop.first %}, {% endif %}{{ item.relationship }} <a href="{% url "drafts_view" id=item.target.document.pk %}">{{ item.target.name }}</a>{% endfor %}</td></tr>
<tr><td>Replaced by:</td><td>{% if draft.replaced_by %}<a href="{% url "ietf.secr.drafts.views.view" id=draft.replaced_by.name %}">{{ draft.replaced_by.name }}{% endif %}</td></tr>
<tr><td>Related Documents:</td><td>{% for item in draft.relateddocument_set.all %}{% if not forloop.first %}, {% endif %}{{ item.relationship }} <a href="{% url "ietf.secr.drafts.views.view" id=item.target.document.pk %}">{{ item.target.name }}</a>{% endfor %}</td></tr>
<tr><td>Tags:</td>
<td>{% for tag in draft.tags.all %}
{% if not forloop.first %}, {% endif %}

View file

@ -10,7 +10,7 @@
<tbody>
{% for item in results %}
<tr class="{% cycle 'row1' 'row2' %}">
<td><a href="{% url "drafts_view" id=item.name %}">{{ item.name }}</a></td>
<td><a href="{% url "ietf.secr.drafts.views.view" id=item.name %}">{{ item.name }}</a></td>
<td>{{item.group.acronym}}</td>
<td>{{item.get_state}}</td>
<td>{{item.intended_std_level}}</td>

View file

@ -16,7 +16,7 @@
</td>
<td>
<h3>IDs and WGs Process</h3>
<li> <a href="{% url "drafts" %}"><b>Drafts</b></a></li><br>
<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>
@ -27,10 +27,10 @@
<td>
<h3>Meetings and Proceedings</h3>
<li> <a href="{% url "drafts_dates" %}"><b>Draft Submission Dates</b></a></li><br>
<li> <a href="{% url "sessions" %}"><b>Session Requests</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 "meetings" %}"><b>Meeting Manager</b></a></li><br>
<li> <a href="{% url "meetings_blue_sheet_redirect" %}"><b>Blue Sheets</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>
@ -45,7 +45,7 @@
<tr valign="top">
<td>
<h3>Section 1</h3>
<li> <a href="{% url "sessions" %}"><b>Session Requests</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 Material Manager</b></a></li><br>
<li> <a href="{% url "announcement" %}"><b>Announcements</b></a></li><br>
</td>

View file

@ -11,9 +11,9 @@
{% endblock %}
{% block breadcrumbs %}{{ block.super }}
&raquo; <a href="{% url "meetings" %}">Meetings</a>
&raquo; <a href="{% url "meetings_view" meeting_id=meeting.number %}">{{ meeting.number }}</a>
&raquo; <a href="{% url "meetings_select" meeting_id=meeting.number schedule_name=schedule.name %}">{{ schedule.name }}</a>
&raquo; <a href="{% url "ietf.secr.meetings.views.main" %}">Meetings</a>
&raquo; <a href="{% url "ietf.secr.meetings.views.view" meeting_id=meeting.number %}">{{ meeting.number }}</a>
&raquo; <a href="{% url "ietf.secr.meetings.views.select" meeting_id=meeting.number schedule_name=schedule.name %}">{{ schedule.name }}</a>
&raquo; Rooms and Times
{% endblock %}
@ -22,9 +22,9 @@
<div id="nav" class="rooms-times-nav">
<ul id="list-nav">
<li id="nav-room" class="leftmost"><a href="{% url "meetings_rooms" meeting_id=meeting.number schedule_name=schedule.name %}">Rooms</a></li>
<li id="nav-time"><a href="{% url "meetings_times" meeting_id=meeting.number schedule_name=schedule.name %}">Times</a></li>
<li id="nav-non-session"><a href="{% url "meetings_non_session" meeting_id=meeting.number schedule_name=schedule.name %}">Non-Session</a></li>
<li id="nav-room" class="leftmost"><a href="{% url "ietf.secr.meetings.views.rooms" meeting_id=meeting.number schedule_name=schedule.name %}">Rooms</a></li>
<li id="nav-time"><a href="{% url "ietf.secr.meetings.views.times" meeting_id=meeting.number schedule_name=schedule.name %}">Times</a></li>
<li id="nav-non-session"><a href="{% url "ietf.secr.meetings.views.non_session" meeting_id=meeting.number schedule_name=schedule.name %}">Non-Session</a></li>
</ul>
</div>

View file

@ -21,7 +21,7 @@
<p>Use this to generate blue sheets for meeting sessions.</p>
<ul class="none">
<li>
<form style="display:inline" method="post" action="{% url "meetings_blue_sheet_generate" meeting_id=meeting.number%}">{% csrf_token %}
<form style="display:inline" method="post" action="{% url "ietf.secr.meetings.views.blue_sheet_generate" meeting_id=meeting.number%}">{% csrf_token %}
<input type="submit" value="Generate Blue Sheets">
</form>
&nbsp;&nbsp;Last run:

View file

@ -29,7 +29,7 @@
</div> <!-- inline-related -->
<div class="button-group">
<ul id="proceedings-interim-buttons">
<li><button onclick="window.location='{% url "meetings_add" %}'">Create New Meeting</button></li>
<li><button onclick="window.location='{% url "ietf.secr.meetings.views.add" %}'">Create New Meeting</button></li>
</ul>
</div> <!-- button-group -->
</div> <!-- module -->

View file

@ -29,13 +29,13 @@
<td>{{ item.session.short }}</td>
<td>{{ item.session.group.acronym }}</td>
{% if item.type.slug != 'break' and item.type.slug != 'registration' %}
<td><a href="{% url "meetings_non_session_edit" meeting_id=meeting.number schedule_name=schedule.name slot_id=item.id %}">{{ item.location }}</a></td>
<td><a href="{% url "ietf.secr.meetings.views.non_session_edit" meeting_id=meeting.number schedule_name=schedule.name slot_id=item.id %}">{{ item.location }}</a></td>
{% else %}
<td>{{ item.location }}</td>
{% endif %}
<td>{{ item.show_location }}</td>
<td>{{ item.type }}</td>
<td><a href="{% url "meetings_non_session_delete" meeting_id=meeting.number schedule_name=schedule.name slot_id=item.id %}">Delete</a></td>
<td><a href="{% url "ietf.secr.meetings.views.non_session_delete" meeting_id=meeting.number schedule_name=schedule.name slot_id=item.id %}">Delete</a></td>
</tr>
{% endfor %}
</tbody>

View file

@ -36,10 +36,10 @@
{% endblock %}
{% block breadcrumbs %}{{ block.super }}
&raquo; <a href="{% url "meetings" %}">Meetings</a>
&raquo; <a href="{% url "meetings_view" meeting_id=meeting.number %}">{{ meeting.number }}</a>
&raquo; <a href="{% url "meetings_select" meeting_id=meeting.number schedule_name=schedule.name %}">{{ schedule.name }}</a>
&raquo; <a href="{% url "meetings_select_group" meeting_id=meeting.number schedule_name=schedule.name %}">Select</a>
&raquo; <a href="{% url "ietf.secr.meetings.views.main" %}">Meetings</a>
&raquo; <a href="{% url "ietf.secr.meetings.views.view" meeting_id=meeting.number %}">{{ meeting.number }}</a>
&raquo; <a href="{% url "ietf.secr.meetings.views.select" meeting_id=meeting.number schedule_name=schedule.name %}">{{ schedule.name }}</a>
&raquo; <a href="{% url "ietf.secr.meetings.views.select_group" meeting_id=meeting.number schedule_name=schedule.name %}">Select</a>
&raquo; {{ group.acronym }}
{% endblock %}
@ -71,8 +71,8 @@
<div class="button-group">
<ul>
<li><button type="submit" name="submit" value="Save">Save</button></li>
<li><button type="button" onclick="if (window.confirm('This group will be permanently removed from the agenda and scheduling tool')) { window.location='{% url "meetings_remove_session" meeting_id=meeting.number acronym=group.acronym %}' };">Remove this group from agenda</button></li>
<li><button type="button" onclick="window.location='{% url "meetings_select_group" meeting_id=meeting.number schedule_name=schedule.name %}'">Back</button></li>
<li><button type="button" onclick="if (window.confirm('This group will be permanently removed from the agenda and scheduling tool')) { window.location='{% url "ietf.secr.meetings.views.remove_session" meeting_id=meeting.number acronym=group.acronym %}' };">Remove this group from agenda</button></li>
<li><button type="button" onclick="window.location='{% url "ietf.secr.meetings.views.select_group" meeting_id=meeting.number schedule_name=schedule.name %}'">Back</button></li>
</ul>
</div> <!-- button-group -->

View file

@ -20,8 +20,8 @@
<div class="button-group">
<ul>
<li><button onclick="window.location='{% url "meetings_rooms" meeting_id=meeting.number schedule_name=schedule.name %}'">Rooms and Times</button></li>
<li><button onclick="window.location='{% url "meetings_select_group" meeting_id=meeting.number schedule_name=schedule.name %}'">Schedule WG Sessions</button></li>
<li><button onclick="window.location='{% url "ietf.secr.meetings.views.rooms" meeting_id=meeting.number schedule_name=schedule.name %}'">Rooms and Times</button></li>
<li><button onclick="window.location='{% url "ietf.secr.meetings.views.select_group" meeting_id=meeting.number schedule_name=schedule.name %}'">Schedule WG Sessions</button></li>
<li><button type="button" onclick="window.location='../'">Back</button></li>
</ul>
</div> <!-- button-group -->

View file

@ -8,9 +8,9 @@
{% endblock %}
{% block breadcrumbs %}{{ block.super }}
&raquo; <a href="{% url "meetings" %}">Meetings</a>
&raquo; <a href="{% url "meetings_view" meeting_id=meeting.number %}">{{ meeting.number }}</a>
&raquo; <a href="{% url "meetings_select" meeting_id=meeting.number schedule_name=schedule.name %}">{{ schedule.name }}</a>
&raquo; <a href="{% url "ietf.secr.meetings.views.main" %}">Meetings</a>
&raquo; <a href="{% url "ietf.secr.meetings.views.view" meeting_id=meeting.number %}">{{ meeting.number }}</a>
&raquo; <a href="{% url "ietf.secr.meetings.views.select" meeting_id=meeting.number schedule_name=schedule.name %}">{{ schedule.name }}</a>
&raquo; Select Group
{% endblock %}
@ -51,7 +51,7 @@
<h2>Scheduled Sessions</h2>
<ul id="id_scheduled_sessions">
{% for group in scheduled_groups %}
<li><a href="{% url "meetings_schedule" meeting_id=meeting.number schedule_name=schedule.name acronym=group.acronym %}">{{ group.acronym }}</a></li>
<li><a href="{% url "ietf.secr.meetings.views.schedule" meeting_id=meeting.number schedule_name=schedule.name acronym=group.acronym %}">{{ group.acronym }}</a></li>
{% endfor %}
</ul>
</div><!-- inline-related-->

View file

@ -23,7 +23,7 @@
<td>{{ item.time|date:"H:i" }} - {{ item.end_time|date:"H:i" }}</td>
<td>{{ item.name }}</td>
<td><a href="{% url "ietf.secr.meetings.views.times_edit" meeting_id=meeting.number schedule_name=schedule.name time=item.time|date:"Y:m:d:H:i" %}">Edit</a></td>
<td><a href="{% url "meetings_times_delete" meeting_id=meeting.number schedule_name=schedule.name time=item.time|date:"Y:m:d:H:i" %}" onclick="return window.confirm('Are you sure you want to delete this timeslot? Any sessions assigned to this timeslot will be unscheduled.');">Delete</a></td>
<td><a href="{% url "ietf.secr.meetings.views.times_delete" meeting_id=meeting.number schedule_name=schedule.name time=item.time|date:"Y:m:d:H:i" %}" onclick="return window.confirm('Are you sure you want to delete this timeslot? Any sessions assigned to this timeslot will be unscheduled.');">Delete</a></td>
</tr>
{% endfor %}
</tbody>

View file

@ -34,9 +34,9 @@
<div class="button-group">
<ul>
<li><button onclick="window.location='{% url "meetings_edit_meeting" meeting_id=meeting.number %}'">Edit</button></li>
<li><button onclick="window.location='{% url "meetings_notifications" meeting_id=meeting.number %}'">Notifications</button></li>
<li><button onclick="window.location='{% url "meetings_blue_sheet" meeting_id=meeting.number %}'">Blue Sheets</button></li>
<li><button onclick="window.location='{% url "ietf.secr.meetings.views.edit_meeting" meeting_id=meeting.number %}'">Edit</button></li>
<li><button onclick="window.location='{% url "ietf.secr.meetings.views.notifications" meeting_id=meeting.number %}'">Notifications</button></li>
<li><button onclick="window.location='{% url "ietf.secr.meetings.views.blue_sheet" meeting_id=meeting.number %}'">Blue Sheets</button></li>
<li><form id="id_schedule_selector">
<select name="forma" onchange="location = this.options[this.selectedIndex].value;">
<option value="">Select a schedule...</option>

View file

@ -35,7 +35,7 @@
{% if user|has_role:"Secretariat" %}
<div class="button-group">
<ul id="proceedings-meeting-buttons">
<li><button onclick="window.location='{% url "meetings_add" %}'">Add</button></li>
<li><button onclick="window.location='{% url "ietf.secr.meetings.views.add" %}'">Add</button></li>
</ul>
</div> <!-- button-group -->
{% endif %}

View file

@ -8,7 +8,7 @@
{% endblock %}
{% block breadcrumbs %}{{ block.super }}
&raquo; <a href="{% url "sessions" %}">Sessions</a>
&raquo; <a href="{% url "ietf.secr.sreq.views.main" %}">Sessions</a>
&raquo; <a href="../">New</a>
&raquo; Session Request Confirmation
{% endblock %}

View file

@ -22,9 +22,9 @@
Sessions Request Tool: IETF {{ meeting.number }}
{% if user|has_role:"Secretariat" %}
{% if is_locked %}
<span class="locked"><a href="{% url "sessions_tool_status" %}">Tool Status: Locked</a></span>
<span class="locked"><a href="{% url "ietf.secr.sreq.views.tool_status" %}">Tool Status: Locked</a></span>
{% else %}
<span class="unlocked"><a href="{% url "sessions_tool_status" %}">Tool Status: Unlocked</a></span>
<span class="unlocked"><a href="{% url "ietf.secr.sreq.views.tool_status" %}">Tool Status: Unlocked</a></span>
{% endif %}
{% endif %}
</h2>
@ -49,7 +49,7 @@
<p>The list below includes those working groups for which you or your co-chair has requested sessions at the upcoming IETF meeting. You can click on an acronym to initiate changes to a session, or cancel a session.</p>
<ul>
{% for group in scheduled_groups %}
<li><a href="{% url "sessions_view" acronym=group.acronym %}">{{ group.acronym }} - {{ group.status_message }}</a></li>
<li><a href="{% url "ietf.secr.sreq.views.view" acronym=group.acronym %}">{{ group.acronym }} - {{ group.status_message }}</a></li>
{% empty %}
<i>NONE</i>
{% endfor %}

View file

@ -29,7 +29,7 @@
<div class="inline-related">
<br>
<ul class="session-buttons">
<li><button onclick="if (window.confirm('A message will be sent to agenda@ietf.com as well as to the area director(s).\n\nContinue?')) { window.location='{% url "sessions_no_session" acronym=group.acronym %}'};">Send a notification that the group does not plan to hold a session at IETF {{ meeting.number }}</button></li>
<li><button onclick="if (window.confirm('A message will be sent to agenda@ietf.com as well as to the area director(s).\n\nContinue?')) { window.location='{% url "ietf.secr.sreq.views.no_session" acronym=group.acronym %}'};">Send a notification that the group does not plan to hold a session at IETF {{ meeting.number }}</button></li>
<li><button onclick="window.location='{% url "ietf.secr.sreq.views.new" acronym=group.acronym %}?previous'">Retrieve all information from previous meeting</button></li>
</ul>

View file

@ -5,7 +5,7 @@ submitted by {{ requester }}.
The third session requires your approval.
To approve the session go to the session request view here:
https://datatracker.ietf.org{% url "sessions_view" acronym=group.acronym %}
https://datatracker.ietf.org{% url "ietf.secr.sreq.views.view" acronym=group.acronym %}
and click "Approve Third Session".
Regards,

View file

@ -74,7 +74,7 @@
{% if user|has_role:"Area Director,Secretariat" %}
{% if flavor == "top" %}<li class="divider hidden-xs"></li>{% endif %}
<li><a href="{% url "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

@ -31,7 +31,7 @@
{% if show_request and s.meeting.type.slug == 'ietf' %}
{% if can_edit %}
<br>
<a class="btn btn-default btn-xs" href="{% url 'sessions_view' num=s.meeting.number acronym=s.group.acronym %}">Edit Session Request</a>
<a class="btn btn-default btn-xs" href="{% url 'ietf.secr.sreq.views.view' num=s.meeting.number acronym=s.group.acronym %}">Edit Session Request</a>
{% endif %}
{% endif %}
</td>