From d66ac15fc27e8be7fa7ae1f30468cf8294fc9755 Mon Sep 17 00:00:00 2001 From: Ole Laursen Date: Tue, 17 Dec 2013 10:23:42 +0000 Subject: [PATCH] Rewrite a bunch of HttpResponseRedirect + url reverse calls to instead take advantage of the redirect shortcut (introduced in Django 1.1) - Legacy-Id: 6960 --- ietf/doc/views_ballot.py | 10 +-- ietf/doc/views_conflict_review.py | 6 +- ietf/doc/views_doc.py | 2 +- ietf/doc/views_draft.py | 18 ++--- ietf/doc/views_search.py | 2 +- ietf/doc/views_status_change.py | 6 +- ietf/group/ajax.py | 2 +- ietf/liaisons/views.py | 2 +- ietf/meeting/ajax.py | 25 ++---- ietf/meeting/views.py | 10 +-- ietf/nomcom/forms.py | 6 +- ietf/nomcom/views.py | 10 +-- ietf/person/ajax.py | 2 +- ietf/secr/announcement/views.py | 13 ++-- ietf/secr/areas/views.py | 17 ++--- ietf/secr/console/views.py | 4 +- ietf/secr/drafts/views.py | 121 ++++++++++++------------------ ietf/secr/groups/views.py | 32 +++----- ietf/secr/ipradmin/views.py | 20 ++--- ietf/secr/meetings/views.py | 69 ++++++----------- ietf/secr/rolodex/views.py | 24 +++--- ietf/secr/sreq/views.py | 59 +++++---------- ietf/secr/telechat/views.py | 22 ++---- ietf/submit/views.py | 4 +- ietf/sync/views.py | 4 +- 25 files changed, 185 insertions(+), 305 deletions(-) diff --git a/ietf/doc/views_ballot.py b/ietf/doc/views_ballot.py index d2de3e395..41468a149 100644 --- a/ietf/doc/views_ballot.py +++ b/ietf/doc/views_ballot.py @@ -3,8 +3,8 @@ import re, os, datetime, json -from django.http import HttpResponse, HttpResponseRedirect, HttpResponseForbidden, Http404 -from django.shortcuts import render_to_response, get_object_or_404 +from django.http import HttpResponse, HttpResponseForbidden, HttpResponseRedirect, Http404 +from django.shortcuts import render_to_response, get_object_or_404, redirect from django.core.urlresolvers import reverse as urlreverse from django.template.loader import render_to_string from django.template import RequestContext @@ -208,9 +208,9 @@ def edit_position(request, name, ballot_id): qstr += "&ad=%s" % request.GET.get('ad') return HttpResponseRedirect(urlreverse("doc_send_ballot_comment", kwargs=dict(name=doc.name, ballot_id=ballot_id)) + qstr) elif request.POST.get("Defer"): - return HttpResponseRedirect(urlreverse("doc_defer_ballot", kwargs=dict(name=doc))) + return redirect("doc_defer_ballot", name=doc) elif request.POST.get("Undefer"): - return HttpResponseRedirect(urlreverse("doc_undefer_ballot", kwargs=dict(name=doc))) + return redirect("doc_undefer_ballot", name=doc) else: return HttpResponseRedirect(return_to_url) else: @@ -331,7 +331,7 @@ def clear_ballot(request, name): create_ballot_if_not_open(doc, by, t.slug) if doc.get_state('draft-iesg').slug == 'defer': do_undefer_ballot(request,doc) - return HttpResponseRedirect(urlreverse("doc_view", kwargs=dict(name=doc.name))) + return redirect("doc_view", name=doc.name) return render_to_response('doc/ballot/clear_ballot.html', dict(doc=doc, diff --git a/ietf/doc/views_conflict_review.py b/ietf/doc/views_conflict_review.py index d4222d97d..9bdb75a00 100644 --- a/ietf/doc/views_conflict_review.py +++ b/ietf/doc/views_conflict_review.py @@ -156,7 +156,7 @@ def submit(request, name): review.time = datetime.datetime.now() review.save() - return HttpResponseRedirect(reverse('doc_view', kwargs={'name': review.name})) + return redirect('doc_view', name=review.name) elif "reset_text" in request.POST: @@ -214,7 +214,7 @@ def edit_notices(request, name): c.desc = "Notification list changed to : "+review.notify c.save() - return HttpResponseRedirect(reverse('doc_view', kwargs={'name': review.name})) + return redirect('doc_view', name=review.name) else: @@ -248,7 +248,7 @@ def edit_ad(request, name): c.desc = "Shepherding AD changed to "+review.ad.name c.save() - return HttpResponseRedirect(reverse('doc_view', kwargs={'name': review.name})) + return redirect('doc_view', name=review.name) else: init = { "ad" : review.ad_id } diff --git a/ietf/doc/views_doc.py b/ietf/doc/views_doc.py index cb454ccf5..99c24fed7 100644 --- a/ietf/doc/views_doc.py +++ b/ietf/doc/views_doc.py @@ -760,7 +760,7 @@ def add_comment(request, name): if doc.type_id == "draft": email_ad(request, doc, doc.ad, login, "A new comment added by %s" % login.name) - return HttpResponseRedirect(urlreverse("doc_history", kwargs=dict(name=doc.name))) + return redirect("doc_history", name=doc.name) else: form = AddCommentForm() diff --git a/ietf/doc/views_draft.py b/ietf/doc/views_draft.py index cdc7934c6..ed975b7bb 100644 --- a/ietf/doc/views_draft.py +++ b/ietf/doc/views_draft.py @@ -4,7 +4,7 @@ import re, os, datetime, json from textwrap import dedent from django.http import HttpResponse, HttpResponseRedirect, HttpResponseForbidden, Http404 -from django.shortcuts import render_to_response, get_object_or_404 +from django.shortcuts import render_to_response, get_object_or_404, redirect from django.core.urlresolvers import reverse as urlreverse from django.template.loader import render_to_string from django.template import RequestContext @@ -844,7 +844,7 @@ def edit_notices(request, name): c.desc = "Notification list changed to : "+doc.notify c.save() - return HttpResponseRedirect(urlreverse('doc_view', kwargs={'name': doc.name})) + return redirect('doc_view', name=doc.name) elif "regenerate_addresses" in request.POST: init = { "notify" : get_initial_notify(doc) } @@ -897,7 +897,7 @@ def telechat_date(request, name): if form.is_valid(): update_telechat(request, doc, login, form.cleaned_data['telechat_date'],form.cleaned_data['returning_item']) - return HttpResponseRedirect(urlreverse('doc_view', kwargs={'name': doc.name})) + return redirect('doc_view', name=doc.name) else: form = TelechatForm(initial=initial) @@ -946,7 +946,7 @@ def edit_iesg_note(request, name): c.desc = log_message c.save() - return HttpResponseRedirect(urlreverse('doc_view', kwargs={'name': doc.name})) + return redirect('doc_view', name=doc.name) else: form = IESGNoteForm(initial=initial) @@ -1001,7 +1001,7 @@ def edit_shepherd_writeup(request, name): e.text = writeup e.save() - return HttpResponseRedirect(urlreverse('doc_view', kwargs={'name': doc.name})) + return redirect('doc_view', name=doc.name) elif "reset_text" in request.POST: @@ -1067,7 +1067,7 @@ def edit_shepherd(request, name): c.desc = "Document shepherd changed to "+ (doc.shepherd.name if doc.shepherd else "(None)") c.save() - return HttpResponseRedirect(urlreverse('doc_view', kwargs={'name': doc.name})) + return redirect('doc_view', name=doc.name) else: current_shepherd = None @@ -1115,7 +1115,7 @@ def edit_ad(request, name): c.desc = "Shepherding AD changed to "+doc.ad.name c.save() - return HttpResponseRedirect(urlreverse('doc_view', kwargs={'name': doc.name})) + return redirect('doc_view', name=doc.name) else: init = { "ad" : doc.ad_id } @@ -1154,7 +1154,7 @@ def edit_consensus(request, name): e.save() - return HttpResponseRedirect(urlreverse('doc_view', kwargs={'name': doc.name})) + return redirect('doc_view', name=doc.name) else: form = ConsensusForm(initial=dict(consensus=nice_consensus(prev_consensus).replace("Unknown", ""))) @@ -1225,7 +1225,7 @@ def request_publication(request, name): doc.time = e.time doc.save() - return HttpResponseRedirect(urlreverse('doc_view', kwargs={'name': doc.name})) + return redirect('doc_view', name=doc.name) else: if doc.intended_std_level_id in ("std", "ds", "ps", "bcp"): diff --git a/ietf/doc/views_search.py b/ietf/doc/views_search.py index 021d9916b..1762118a2 100644 --- a/ietf/doc/views_search.py +++ b/ietf/doc/views_search.py @@ -36,7 +36,7 @@ from django import forms from django.shortcuts import render_to_response from django.db.models import Q from django.template import RequestContext -from django.http import Http404, HttpResponse, HttpResponseBadRequest, HttpResponseRedirect +from django.http import Http404, HttpResponse, HttpResponseBadRequest from ietf.doc.expire import expirable_draft from ietf.utils import normalize_draftname diff --git a/ietf/doc/views_status_change.py b/ietf/doc/views_status_change.py index 27841f2b2..3c6ad7453 100644 --- a/ietf/doc/views_status_change.py +++ b/ietf/doc/views_status_change.py @@ -2,7 +2,7 @@ import datetime, os, re from django import forms from django.shortcuts import render_to_response, get_object_or_404, redirect -from django.http import HttpResponseRedirect, Http404 +from django.http import Http404, HttpResponseRedirect from django.core.urlresolvers import reverse from django.template import RequestContext from django.template.loader import render_to_string @@ -158,7 +158,7 @@ def submit(request, name): doc.time = datetime.datetime.now() doc.save() - return HttpResponseRedirect(reverse('doc_view', kwargs={'name': doc.name})) + return redirect('doc_view', name=doc.name) elif "reset_text" in request.POST: @@ -214,7 +214,7 @@ def edit_notices(request, name): c.desc = "Notification list changed to : "+status_change.notify c.save() - return HttpResponseRedirect(reverse('doc_view', kwargs={'name': status_change.name})) + return redirect('doc_view', name=status_change.name) else: diff --git a/ietf/group/ajax.py b/ietf/group/ajax.py index ff5eb1109..1819afed1 100644 --- a/ietf/group/ajax.py +++ b/ietf/group/ajax.py @@ -4,7 +4,7 @@ import sys import json from django.shortcuts import get_object_or_404 -from django.http import HttpResponseRedirect, HttpResponse, Http404 +from django.http import HttpResponse, Http404 from dajaxice.core import dajaxice_functions from dajaxice.decorators import dajaxice_register diff --git a/ietf/liaisons/views.py b/ietf/liaisons/views.py index bb5d41bb0..90e8f4dee 100644 --- a/ietf/liaisons/views.py +++ b/ietf/liaisons/views.py @@ -32,7 +32,7 @@ def add_liaison(request, liaison=None): notify_pending_by_email(request, liaison) else: send_liaison_by_email(request, liaison) - return HttpResponseRedirect(reverse('liaison_list')) + return redirect('liaison_list') else: form = liaison_form_factory(request, liaison=liaison) diff --git a/ietf/meeting/ajax.py b/ietf/meeting/ajax.py index 9c6ce2b50..846fc8f03 100644 --- a/ietf/meeting/ajax.py +++ b/ietf/meeting/ajax.py @@ -1,7 +1,7 @@ import json from django.core.urlresolvers import reverse -from django.shortcuts import get_object_or_404 +from django.shortcuts import get_object_or_404, redirect from django.http import HttpResponseRedirect, HttpResponse, QueryDict from dajaxice.decorators import dajaxice_register @@ -176,12 +176,9 @@ def timeslot_addroom(request, meeting): newroom.create_timeslots() if "HTTP_ACCEPT" in request.META and "application/json" in request.META['HTTP_ACCEPT']: - url = reverse(timeslot_roomurl, args=[meeting.number, newroom.pk]) - #debug.log("Returning timeslot_roomurl: %s " % (url)) - return HttpResponseRedirect(url) + return redirect(timeslot_roomurl, meeting.number, newroom.pk) else: - return HttpResponseRedirect( - reverse(edit_timeslots, args=[meeting.number])) + return redirect(edit_timeslots, meeting.number) @role_required('Secretariat') def timeslot_delroom(request, meeting, roomid): @@ -247,11 +244,9 @@ def timeslot_addslot(request, meeting): # XXX FIXME: newroom is undefined. Placeholder: newroom = None if "HTTP_ACCEPT" in request.META and "application/json" in request.META['HTTP_ACCEPT']: - return HttpResponseRedirect( - reverse(timeslot_dayurl, args=[meeting.number, newroom.pk])) + return redirect(timeslot_dayurl, meeting.number, newroom.pk) else: - return HttpResponseRedirect( - reverse(edit_timeslots, args=[meeting.number])) + return redirect(edit_timeslots, meeting.number) @role_required('Secretariat') def timeslot_delslot(request, meeting, slotid): @@ -314,12 +309,9 @@ def agenda_add(request, meeting): newagenda.save() if "HTTP_ACCEPT" in request.META and "application/json" in request.META['HTTP_ACCEPT']: - url = reverse(agenda_infourl, args=[meeting.number, newagenda.name]) - #debug.log("Returning agenda_infourl: %s " % (url)) - return HttpResponseRedirect(url) + return redirect(agenda_infourl, meeting.number, newagenda.name) else: - return HttpResponseRedirect( - reverse(edit_agenda, args=[meeting.number, newagenda.name])) + return redirect(edit_agenda, meeting.number, newagenda.name) @role_required('Area Director','Secretariat') def agenda_update(request, meeting, schedule): @@ -364,8 +356,7 @@ def agenda_update(request, meeting, schedule): return HttpResponse(json.dumps(schedule.json_dict(request.build_absolute_uri('/'))), content_type="application/json") else: - return HttpResponseRedirect( - reverse(edit_agenda, args=[meeting.number, schedule.name])) + return redirect(edit_agenda, meeting.number, schedule.name) @role_required('Secretariat') def agenda_del(request, meeting, schedule): diff --git a/ietf/meeting/views.py b/ietf/meeting/views.py index a3b9637dd..47545a809 100644 --- a/ietf/meeting/views.py +++ b/ietf/meeting/views.py @@ -12,7 +12,7 @@ from tempfile import mkstemp from django import forms from django.shortcuts import render_to_response, get_object_or_404, redirect -from django.http import HttpResponseRedirect, HttpResponse, Http404 +from django.http import HttpResponse, Http404 from django.core.urlresolvers import reverse from django.db.models import Q from django.template import RequestContext @@ -117,9 +117,7 @@ def agenda_create(request, num=None, schedule_name=None): sched = meeting.schedule_set.get(name=savedname, owner=request.user.person) if sched: # XXX needs to record a session error and redirect to where? - return HttpResponseRedirect( - reverse(edit_agenda, - args=[meeting.number, sched.name])) + return redirect(edit_agenda, meeting.number, sched.name) except Schedule.DoesNotExist: pass @@ -158,9 +156,7 @@ def agenda_create(request, num=None, schedule_name=None): # now redirect to this new schedule. - return HttpResponseRedirect( - reverse(edit_agenda, - args=[meeting.number, newschedule.name])) + return redirect(edit_agenda, meeting.number, newschedule.name) @decorator_from_middleware(GZipMiddleware) diff --git a/ietf/nomcom/forms.py b/ietf/nomcom/forms.py index a40f68359..dd4ef7f4b 100644 --- a/ietf/nomcom/forms.py +++ b/ietf/nomcom/forms.py @@ -2,7 +2,7 @@ from django.conf import settings from django import forms from django.contrib.formtools.preview import FormPreview, AUTO_ID from django.http import HttpResponseRedirect -from django.shortcuts import get_object_or_404 +from django.shortcuts import get_object_or_404, redirect from django.core.urlresolvers import reverse from django.template.loader import render_to_string from django.utils.decorators import method_decorator @@ -209,7 +209,7 @@ class EditMembersFormPreview(FormPreview): person=member['person'], email=member['email_obj']) - return HttpResponseRedirect(reverse('nomcom_edit_members', kwargs={'year': self.year})) + return redirect('nomcom_edit_members', year=self.year) class EditChairForm(BaseNomcomForm, forms.Form): @@ -264,7 +264,7 @@ class EditChairFormPreview(FormPreview): person=chair_info['person'], email=chair_info['email_obj']) - return HttpResponseRedirect(reverse('nomcom_edit_chair', kwargs={'year': self.year})) + return redirect('nomcom_edit_chair', year=self.year) class EditNomcomForm(BaseNomcomForm, forms.ModelForm): diff --git a/ietf/nomcom/views.py b/ietf/nomcom/views.py index 3a2a210d5..fa3a8afdc 100644 --- a/ietf/nomcom/views.py +++ b/ietf/nomcom/views.py @@ -561,7 +561,7 @@ def view_feedback_pending(request, year): for form in formset.forms: form.set_nomcom(nomcom, request.user) messages.success(request, 'Feedback saved') - return HttpResponseRedirect(reverse('nomcom_view_feedback_pending', None, args=(year, ))) + return redirect('nomcom_view_feedback_pending', year=year) elif request.method == 'POST' and request.POST.get('end'): extra_ids = request.POST.get('extra_ids', None) extra_step = True @@ -583,7 +583,7 @@ def view_feedback_pending(request, year): extra_ids = None else: messages.success(request, 'Feedback saved') - return HttpResponseRedirect(reverse('nomcom_view_feedback_pending', None, args=(year, ))) + return redirect('nomcom_view_feedback_pending', year=year) elif request.method == 'POST': formset = FeedbackFormSet(request.POST) for form in formset.forms: @@ -617,7 +617,7 @@ def view_feedback_pending(request, year): message = ('success', '%s messages classified. You must enter more information for the following feedback.' % moved) else: messages.success(request, 'Feedback saved') - return HttpResponseRedirect(reverse('nomcom_view_feedback_pending', None, args=(year, ))) + return redirect('nomcom_view_feedback_pending', year=year) else: formset = FeedbackFormSet(queryset=feedbacks) for form in formset.forms: @@ -799,7 +799,7 @@ def remove_position(request, year, position_id): if request.POST.get('remove', None): position.delete() - return HttpResponseRedirect(reverse('nomcom_list_positions', None, args=(year, ))) + return redirect('nomcom_list_positions', year=year) return render_to_response('nomcom/remove_position.html', {'year': year, 'position': position, @@ -821,7 +821,7 @@ def edit_position(request, year, position_id=None): form = PositionForm(request.POST, instance=position, nomcom=nomcom) if form.is_valid(): form.save() - return HttpResponseRedirect(reverse('nomcom_list_positions', None, args=(year, ))) + return redirect('nomcom_list_positions', year=year) else: form = PositionForm(instance=position, nomcom=nomcom) diff --git a/ietf/person/ajax.py b/ietf/person/ajax.py index dc9da0cb7..86eb3a21b 100644 --- a/ietf/person/ajax.py +++ b/ietf/person/ajax.py @@ -4,7 +4,7 @@ import sys import json from django.shortcuts import get_object_or_404 -from django.http import HttpResponseRedirect, HttpResponse, Http404 +from django.http import HttpResponse, Http404 from dajaxice.core import dajaxice_functions from dajaxice.decorators import dajaxice_register diff --git a/ietf/secr/announcement/views.py b/ietf/secr/announcement/views.py index 61f3e92b3..1faa57b3b 100644 --- a/ietf/secr/announcement/views.py +++ b/ietf/secr/announcement/views.py @@ -1,7 +1,7 @@ from django.contrib import messages from django.core.urlresolvers import reverse -from django.http import HttpResponseRedirect, HttpResponse, HttpResponseForbidden -from django.shortcuts import render_to_response, get_object_or_404 +from django.http import HttpResponse, HttpResponseForbidden +from django.shortcuts import render_to_response, get_object_or_404, redirect from django.template import RequestContext from ietf.ietfauth.utils import has_role @@ -63,8 +63,7 @@ def main(request): data['nomcom'] = data['nomcom'].pk request.session['data'] = data - url = reverse('announcement_confirm') - return HttpResponseRedirect(url) + return redirect('announcement_confirm') return render_to_response('announcement/main.html', { 'form': form}, @@ -91,15 +90,13 @@ def confirm(request): request.session.clear() messages.success(request, 'The announcement was sent.') - url = reverse('announcement') - return HttpResponseRedirect(url) + return redirect('announcement') if request.session.get('data',None): data = request.session['data'] else: messages.error(request, 'No session data. Your session may have expired or cookies are disallowed.') - redirect_url = reverse('announcement') - return HttpResponseRedirect(redirect_url) + return redirect('announcement') if data['to'] == 'Other...': to = ','.join(data['to_custom']) diff --git a/ietf/secr/areas/views.py b/ietf/secr/areas/views.py index 47482e34a..5761c5598 100644 --- a/ietf/secr/areas/views.py +++ b/ietf/secr/areas/views.py @@ -4,7 +4,7 @@ from django.core.urlresolvers import reverse from django.forms.formsets import formset_factory from django.forms.models import inlineformset_factory, modelformset_factory from django.http import HttpResponseRedirect, HttpResponse -from django.shortcuts import render_to_response, get_object_or_404 +from django.shortcuts import render_to_response, get_object_or_404, redirect from django.template import RequestContext from ietf.group.models import Group, GroupEvent, GroupURL, Role @@ -86,8 +86,7 @@ def add(request): group_url.save() messages.success(request, 'The Area was created successfully!') - url = reverse('areas') - return HttpResponseRedirect(url) + return redirect('areas') else: # display initial forms area_form = AddAreaModelForm() @@ -148,11 +147,9 @@ def edit(request, name): time=new_area.time) messages.success(request, 'The Area entry was changed successfully') - url = reverse('areas_view', kwargs={'name':name}) - return HttpResponseRedirect(url) + return redirect('areas_view', name=name) else: - url = reverse('areas_view', kwargs={'name':name}) - return HttpResponseRedirect(url) + return redirect('areas_view', name=name) else: form = AreaForm(instance=area) awp_formset = AWPFormSet(instance=area) @@ -223,8 +220,7 @@ def people(request, name): Role.objects.create(name_id='pre-ad',group=area,email=email,person=person) messages.success(request, 'New Area Director added successfully!') - url = reverse('areas_view', kwargs={'name':name}) - return HttpResponseRedirect(url) + return redirect('areas_view', name=name) else: form = AreaDirectorForm() @@ -290,8 +286,7 @@ def modify(request, name): messages.success(request, 'Voting rights have been granted successfully!') - url = reverse('areas_view', kwargs={'name':name}) - return HttpResponseRedirect(url) + return redirect('areas_view', name=name) def view(request, name): """ diff --git a/ietf/secr/console/views.py b/ietf/secr/console/views.py index cbc8e258e..c35b6f5d3 100644 --- a/ietf/secr/console/views.py +++ b/ietf/secr/console/views.py @@ -1,4 +1,4 @@ -from django.http import HttpResponseRedirect, HttpResponse, HttpResponseForbidden +from django.http import HttpResponse, HttpResponseForbidden from django.shortcuts import render_to_response, get_object_or_404 from django.template import RequestContext @@ -14,4 +14,4 @@ def main(request): return render_to_response('console/main.html', { 'latest_docevent': latest_docevent}, RequestContext(request, {}), - ) \ No newline at end of file + ) diff --git a/ietf/secr/drafts/views.py b/ietf/secr/drafts/views.py index eb6ed0866..44ffbcb9b 100644 --- a/ietf/secr/drafts/views.py +++ b/ietf/secr/drafts/views.py @@ -7,7 +7,7 @@ from django.db.models import get_model, Max, Q from django.forms.formsets import formset_factory from django.forms.models import inlineformset_factory, modelformset_factory from django.http import HttpResponseRedirect, HttpResponse -from django.shortcuts import render_to_response, get_object_or_404 +from django.shortcuts import render_to_response, get_object_or_404, redirect from django.template import RequestContext from email import * @@ -530,8 +530,7 @@ def add(request): if request.method == 'POST': button_text = request.POST.get('submit', '') if button_text == 'Cancel': - url = reverse('drafts') - return HttpResponseRedirect(url) + return redirect('drafts') upload_form = UploadForm(request.POST, request.FILES) form = AddModelForm(request.POST) @@ -593,9 +592,8 @@ def add(request): request.session['action'] = 'add' messages.success(request, 'New draft added successfully!') - url = reverse('drafts_authors', kwargs={'id':draft.name}) - return HttpResponseRedirect(url) - + redirect('drafts_authors', id=draft.name) + else: form = AddModelForm() upload_form = UploadForm() @@ -628,8 +626,7 @@ def announce(request, id): content_type='Multipart/Mixed; Boundary="NextPart"') messages.success(request, 'Announcement scheduled successfully!') - url = reverse('drafts_view', kwargs={'id':id}) - return HttpResponseRedirect(url) + return redirect('drafts_view', id=id) def approvals(request): ''' @@ -651,8 +648,7 @@ def author_delete(request, id, oid): ''' DocumentAuthor.objects.get(id=oid).delete() messages.success(request, 'The author was deleted successfully') - url = reverse('drafts_authors', kwargs={'id':id}) - return HttpResponseRedirect(url) + return redirect('drafts_authors', id=id) def authors(request, id): ''' @@ -676,11 +672,10 @@ def authors(request, id): action = request.session.get('action','') if action == 'add': del request.session['action'] - url = reverse('drafts_announce', kwargs={'id':id}) - else: - url = reverse('drafts_view', kwargs={'id':id}) - return HttpResponseRedirect(url) - + return redirect('drafts_announce', id=id) + + return redirect('drafts_view', id=id) + if form.is_valid(): author = form.cleaned_data['email'] authors = draft.documentauthor_set.all() @@ -691,8 +686,7 @@ def authors(request, id): DocumentAuthor.objects.create(document=draft,author=author,order=order) messages.success(request, 'Author added successfully!') - url = reverse('drafts_authors', kwargs={'id':id}) - return HttpResponseRedirect(url) + return redirect('drafts_authors', id=id) else: form = AuthorForm() @@ -717,9 +711,8 @@ def confirm(request, id): # TODO do cancel functions from session (ie remove uploaded files?) # clear session data request.session.clear() - url = reverse('drafts_view', kwargs={'id':id}) - return HttpResponseRedirect(url) - + return redirect('drafts_view', id=id) + action = request.session['action'] if action == 'revision': func = do_revision @@ -740,8 +733,7 @@ def confirm(request, id): request.session.clear() messages.success(request, '%s action performed successfully!' % action) - url = reverse('drafts_view', kwargs={'id':id}) - return HttpResponseRedirect(url) + return redirect('drafts_view', id=id) details = get_action_details(draft, request.session) email = request.session.get('email','') @@ -795,9 +787,8 @@ def edit(request, id): if request.method == 'POST': button_text = request.POST.get('submit', '') if button_text == 'Cancel': - url = reverse('drafts_view', kwargs={'id':id}) - return HttpResponseRedirect(url) - + return redirect('drafts_view', id=id) + form = EditModelForm(request.POST, instance=draft) if form.is_valid(): if form.changed_data: @@ -811,8 +802,7 @@ def edit(request, id): messages.success(request, 'Draft modified successfully!') - url = reverse('drafts_view', kwargs={'id':id}) - return HttpResponseRedirect(url) + return redirect('drafts_view', id=id) else: #assert False, form.errors pass @@ -840,14 +830,12 @@ def email(request, id): if button_text == 'Cancel': # clear session data request.session.clear() - url = reverse('drafts_view', kwargs={'id':id}) - return HttpResponseRedirect(url) - + return redirect('drafts_view', id=id) + form = EmailForm(request.POST) if form.is_valid(): request.session['email'] = form.data - url = reverse('drafts_confirm', kwargs={'id':id}) - return HttpResponseRedirect(url) + return redirect('drafts_confirm', id=id) else: # the resurrect email body references the last revision number, handle # exception if no last revision found @@ -864,9 +852,8 @@ 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 - url = reverse('drafts_confirm', kwargs={'id':id}) - return HttpResponseRedirect(url) - + return redirect('drafts_confirm', id=id) + return render_to_response('drafts/email.html', { 'form': form, 'draft': draft}, @@ -887,15 +874,13 @@ def extend(request, id): if request.method == 'POST': button_text = request.POST.get('submit', '') if button_text == 'Cancel': - url = reverse('drafts_view', kwargs={'id':id}) - return HttpResponseRedirect(url) - + return redirect('drafts_view', id=id) + form = ExtendForm(request.POST) if form.is_valid(): request.session['data'] = form.cleaned_data request.session['action'] = 'extend' - url = reverse('drafts_email', kwargs={'id':id}) - return HttpResponseRedirect(url) + return redirect('drafts_email', id=id) else: form = ExtendForm(initial={'revision_date':datetime.date.today().isoformat()}) @@ -924,16 +909,14 @@ 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') - url = reverse('drafts_view', kwargs={'id':id}) - return HttpResponseRedirect(url) - + return redirect('drafts_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': - url = reverse('drafts_view', kwargs={'id':id}) - return HttpResponseRedirect(url) - + return redirect('drafts_view', id=id) + form = RfcModelForm(request.POST, instance=draft) obs_formset = ObsFormset(request.POST, prefix='obs') if form.is_valid() and obs_formset.is_valid(): @@ -967,8 +950,7 @@ def makerfc(request, id): relationship=DocRelationshipName.objects.get(slug=relation)) messages.success(request, 'RFC created successfully!') - url = reverse('drafts_view', kwargs={'id':id}) - return HttpResponseRedirect(url) + return redirect('drafts_view', id=id) else: # assert False, (form.errors, obs_formset.errors) pass @@ -1010,15 +992,13 @@ def replace(request, id): if request.method == 'POST': button_text = request.POST.get('submit', '') if button_text == 'Cancel': - url = reverse('drafts_view', kwargs={'id':id}) - return HttpResponseRedirect(url) - + return redirect('drafts_view', id=id) + form = ReplaceForm(request.POST, draft=draft) if form.is_valid(): request.session['data'] = form.cleaned_data request.session['action'] = 'replace' - url = reverse('drafts_email', kwargs={'id':id}) - return HttpResponseRedirect(url) + return redirect('drafts_email', id=id) else: form = ReplaceForm(draft=draft) @@ -1037,8 +1017,7 @@ def resurrect(request, id): ''' request.session['action'] = 'resurrect' - url = reverse('drafts_email', kwargs={'id':id}) - return HttpResponseRedirect(url) + return redirect('drafts_email', id=id) def revision(request, id): ''' @@ -1051,9 +1030,8 @@ def revision(request, id): if request.method == 'POST': button_text = request.POST.get('submit', '') if button_text == 'Cancel': - url = reverse('drafts_view', kwargs={'id':id}) - return HttpResponseRedirect(url) - + return redirect('drafts_view', id=id) + upload_form = UploadForm(request.POST, request.FILES, draft=draft) form = RevisionModelForm(request.POST, instance=draft) if form.is_valid() and upload_form.is_valid(): @@ -1067,8 +1045,7 @@ def revision(request, id): request.session['revision'] = revision request.session['file_type'] = file_type_list - url = reverse('drafts_email', kwargs={'id':id}) - return HttpResponseRedirect(url) + return redirect('drafts_email', id=id) else: form = RevisionModelForm(instance=draft,initial={'revision_date':datetime.date.today().isoformat()}) @@ -1100,9 +1077,8 @@ def search(request): if request.method == 'POST': form = SearchForm(request.POST) if request.POST['submit'] == 'Add': - url = reverse('sec.drafts.views.add') - return HttpResponseRedirect(url) - + return redirect('sec.drafts.views.add') + if form.is_valid(): kwargs = {} intended_std_level = form.cleaned_data['intended_std_level'] @@ -1142,8 +1118,7 @@ def search(request): # if there's just one result go straight to view if len(results) == 1: - url = reverse('drafts_view', kwargs={'id':results[0].name}) - return HttpResponseRedirect(url) + return redirect('drafts_view', id=results[0].name) else: active_state = State.objects.get(type='draft',slug='active') form = SearchForm(initial={'state':active_state.pk}) @@ -1167,8 +1142,7 @@ def update(request, id): if request.method == 'POST': button_text = request.POST.get('submit', '') if button_text == 'Cancel': - url = reverse('drafts_view', kwargs={'id':id}) - return HttpResponseRedirect(url) + return redirect('drafts_view', id=id) upload_form = UploadForm(request.POST, request.FILES, draft=draft) form = RevisionModelForm(request.POST, instance=draft) @@ -1183,8 +1157,7 @@ def update(request, id): request.session['data']['filename'] = filename request.session['file_type'] = file_type_list - url = reverse('drafts_email', kwargs={'id':id}) - return HttpResponseRedirect(url) + return redirect('drafts_email', id=id) else: form = RevisionModelForm(instance=draft,initial={'revision_date':datetime.date.today().isoformat()}) @@ -1269,18 +1242,16 @@ def withdraw(request, id): if request.method == 'POST': button_text = request.POST.get('submit', '') if button_text == 'Cancel': - url = reverse('drafts_view', kwargs={'id':id}) - return HttpResponseRedirect(url) - + return redirect('drafts_view', id=id) + form = WithdrawForm(request.POST) if form.is_valid(): # save state in session and proceed to email page request.session['data'] = form.data request.session['action'] = 'withdraw' - url = reverse('drafts_email', kwargs={'id':id}) - return HttpResponseRedirect(url) - + return redirect('drafts_email', id=id) + else: form = WithdrawForm() diff --git a/ietf/secr/groups/views.py b/ietf/secr/groups/views.py index 2bc8f6927..aa9b77c67 100644 --- a/ietf/secr/groups/views.py +++ b/ietf/secr/groups/views.py @@ -6,7 +6,7 @@ from django.core.exceptions import ObjectDoesNotExist from django.forms.formsets import formset_factory from django.forms.models import inlineformset_factory from django.http import HttpResponseRedirect, HttpResponse -from django.shortcuts import render_to_response, get_object_or_404 +from django.shortcuts import render_to_response, get_object_or_404, redirect from django.template import RequestContext from django.template.loader import render_to_string @@ -99,8 +99,7 @@ def add(request): if request.method == 'POST': button_text = request.POST.get('submit', '') if button_text == 'Cancel': - url = reverse('groups') - return HttpResponseRedirect(url) + return redirect('groups') form = GroupModelForm(request.POST) awp_formset = AWPFormSet(request.POST, prefix='awp') @@ -121,8 +120,7 @@ def add(request): desc='Started group') messages.success(request, 'The Group was created successfully!') - url = reverse('groups_view', kwargs={'acronym':group.acronym}) - return HttpResponseRedirect(url) + return redirect('groups_view', acronym=group.acronym) else: form = GroupModelForm(initial={'state':'active','type':'wg'}) @@ -206,8 +204,7 @@ def delete_role(request, acronym, id): role.delete() messages.success(request, 'The entry was deleted successfully') - url = reverse('groups_people', kwargs={'acronym':acronym}) - return HttpResponseRedirect(url) + return redirect('groups_people', acronym=acronym) def edit(request, acronym): """ @@ -229,8 +226,7 @@ def edit(request, acronym): if request.method == 'POST': button_text = request.POST.get('submit', '') if button_text == 'Cancel': - url = reverse('groups_view', kwargs={'acronym':acronym}) - return HttpResponseRedirect(url) + return redirect('groups_view', acronym=acronym) form = GroupModelForm(request.POST, instance=group) awp_formset = AWPFormSet(request.POST, instance=group) @@ -271,8 +267,7 @@ def edit(request, acronym): messages.success(request, 'The Group was changed successfully') - url = reverse('groups_view', kwargs={'acronym':acronym}) - return HttpResponseRedirect(url) + return redirect('groups_view', acronym=acronym) else: form = GroupModelForm(instance=group) @@ -307,15 +302,13 @@ def edit_gm(request, acronym): if request.method == 'POST': button_text = request.POST.get('submit', '') if button_text == 'Cancel': - url = reverse('groups_view', kwargs={'acronym':acronym}) - return HttpResponseRedirect(url) + return redirect('groups_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') - url = reverse('groups_view', kwargs={'acronym':acronym}) - return HttpResponseRedirect(url) + return redirect('groups_view', acronym=acronym) else: formset = GMFormset(instance=group, prefix='goalmilestone') @@ -358,8 +351,7 @@ def people(request, acronym): group=group) messages.success(request, 'New %s added successfully!' % name) - url = reverse('groups_people', kwargs={'acronym':group.acronym}) - return HttpResponseRedirect(url) + return redirect('groups_people', acronym=group.acronym) else: form = RoleForm(initial={'name':'chair'},group=group) @@ -386,8 +378,7 @@ def search(request): if request.method == 'POST': form = SearchForm(request.POST) if request.POST['submit'] == 'Add': - url = reverse('groups_add') - return HttpResponseRedirect(url) + return redirect('groups_add') if form.is_valid(): kwargs = {} @@ -427,8 +418,7 @@ def search(request): # if there's just one result go straight to view if len(results) == 1: - url = reverse('groups_view', kwargs={'acronym':results[0].acronym}) - return HttpResponseRedirect(url) + return redirect('groups_view', acronym=results[0].acronym) # process GET argument to support link from area app elif 'primary_area' in request.GET: diff --git a/ietf/secr/ipradmin/views.py b/ietf/secr/ipradmin/views.py index b1a24c73a..c88a984ed 100644 --- a/ietf/secr/ipradmin/views.py +++ b/ietf/secr/ipradmin/views.py @@ -8,12 +8,12 @@ from django.core.exceptions import ImproperlyConfigured from django.http import HttpResponseRedirect from django.core.urlresolvers import reverse from django.utils.safestring import mark_safe +from django.shortcuts import redirect from ietf.secr.lib import template, jsonapi from ietf.secr.ipradmin.managers import IprDetailManager from ietf.secr.ipradmin.forms import IprDetailForm, IPRContactFormset from ietf.secr.utils.document import get_rfc_num, is_draft -import ietf.settings as settings from ietf.ipr.models import IprDetail, IprUpdate, IprContact, LICENSE_CHOICES, STDONLY_CHOICES, IprNotification from ietf.utils.mail import send_mail_text @@ -119,10 +119,7 @@ def admin_notify(request, ipr_id): request.session['send_result'] = 'Some messages failed to send' else: request.session['send_result'] = 'Messages sent successfully' - return HttpResponseRedirect(reverse( - 'ipr_old_submitter_notify', - args=[ipr_id] - )) + return redirect('ipr_old_submitter_notify', ipr_id=ipr_id) if 'send_result' in request.session: result = request.session['send_result'] @@ -343,7 +340,7 @@ def admin_delete(request, ipr_id): ipr_dtl = IprDetail.objects.get(ipr_id=ipr_id) ipr_dtl.status = 2 ipr_dtl.save() - return HttpResponseRedirect(reverse('ipr_admin_list')) + return redirect('ipr_admin_list') @template('ipradmin/notify.html') def old_submitter_notify(request, ipr_id): @@ -355,10 +352,7 @@ def old_submitter_notify(request, ipr_id): request.session['send_result'] = 'Some messages failed to send' else: request.session['send_result'] = 'Messages sent successfully' - return HttpResponseRedirect(reverse( - 'ipr_old_submitter_notify', - args=[ipr_id] - )) + return redirect('ipr_old_submitter_notify', ipr_id=ipr_id) if 'send_result' in request.session: result = request.session['send_result'] @@ -417,9 +411,9 @@ def admin_detail(request, ipr_id): if command == 'post': return admin_post(request, ipr_id, 'detail', 'post') elif command == 'notify': - return HttpResponseRedirect(reverse('ipr_old_submitter_notify', args=[ipr_id])) + return redirect('ipr_old_submitter_notify', ipr_id=ipr_id) elif command == 'delete': - return HttpResponseRedirect(reverse('ipr_admin_delete', args=[ipr_id])) + return redirect('ipr_admin_delete', ipr_id=ipr_id) header_text = possible = temp_name = footer_text = '' contact_one_data, contact_two_data, document_data, licensing_data,\ @@ -683,7 +677,7 @@ def admin_create(request): ipr_contact_formset.forms[1].save(ipr_detail) if ipr_contact_formset.forms[2].is_valid(): ipr_contact_formset.forms[2].save(ipr_detail) - return HttpResponseRedirect(reverse('ipr_admin_list')) + return redirect('ipr_admin_list') else: ipr_detail_form = IprDetailForm(formtype='create') ipr_contact_formset = IPRContactFormset(initial=[ diff --git a/ietf/secr/meetings/views.py b/ietf/secr/meetings/views.py index d190b86dd..90afa41b9 100644 --- a/ietf/secr/meetings/views.py +++ b/ietf/secr/meetings/views.py @@ -6,7 +6,7 @@ from django.db.models import Max, Min, Q from django.forms.formsets import formset_factory from django.forms.models import inlineformset_factory, modelformset_factory from django.http import HttpResponseRedirect, HttpResponse -from django.shortcuts import render_to_response, get_object_or_404 +from django.shortcuts import render_to_response, get_object_or_404, redirect from django.template import RequestContext from django.utils.functional import curry @@ -260,8 +260,7 @@ def add(request): if request.method == 'POST': button_text = request.POST.get('submit', '') if button_text == 'Cancel': - url = reverse('meetings') - return HttpResponseRedirect(url) + return redirect('meetings') form = MeetingModelForm(request.POST) if form.is_valid(): @@ -271,8 +270,7 @@ def add(request): make_directories(meeting) messages.success(request, 'The Meeting was created successfully!') - url = reverse('meetings') - return HttpResponseRedirect(url) + return redirect('meetings') else: # display initial forms max_number = Meeting.objects.filter(type='ietf').aggregate(Max('number'))['number__max'] @@ -297,9 +295,7 @@ def blue_sheet(request, meeting_id): file = request.FILES['file'] handle_upload_file(file,file.name,meeting,'bluesheets') messages.success(request, 'File Uploaded') - url = reverse('meetings_blue_sheet', kwargs={'meeting_id':meeting.number}) - return HttpResponseRedirect(url) - + return redirect('meetings_blue_sheet', meeting_id=meeting.number) else: form = UploadBlueSheetForm() @@ -320,8 +316,7 @@ def blue_sheet_generate(request, meeting_id): create_blue_sheets(meeting, groups) messages.success(request, 'Blue Sheets generated') - url = reverse('meetings_blue_sheet', kwargs={'meeting_id':meeting.number}) - return HttpResponseRedirect(url) + return redirect('meetings_blue_sheet', meeting_id=meeting.number) def blue_sheet_redirect(request): ''' @@ -334,8 +329,7 @@ def blue_sheet_redirect(request): meeting = qs[0] else: meeting = Meeting.objects.filter(type='ietf').order_by('-date')[0] - url = reverse('meetings_blue_sheet', kwargs={'meeting_id':meeting.number}) - return HttpResponseRedirect(url) + return redirect('meetings_blue_sheet', meeting_id=meeting.number) def edit_meeting(request, meeting_id): ''' @@ -359,12 +353,10 @@ def edit_meeting(request, meeting_id): if form.is_valid(): form.save() messages.success(request,'The meeting entry was changed successfully') - url = reverse('meetings_view', kwargs={'meeting_id':meeting_id}) - return HttpResponseRedirect(url) + return redirect('meetings_view', meeting_id=meeting_id) else: - url = reverse('meetings_view', kwargs={'meeting_id':meeting_id}) - return HttpResponseRedirect(url) + return redirect('meetings_view', meeting_id=meeting_id) else: form = MeetingModelForm(instance=meeting) @@ -381,8 +373,7 @@ def main(request): meetings = Meeting.objects.filter(type='ietf').order_by('-number') if request.method == 'POST': - redirect_url = reverse('meetings_view', kwargs={'meeting_id':request.POST['group']}) - return HttpResponseRedirect(redirect_url) + return redirect('meetings_view', meeting_id=request.POST['group']) choices = [ (str(x.number),str(x.number)) for x in meetings ] form = GroupSelectForm(choices=choices) @@ -445,8 +436,7 @@ def non_session(request, meeting_id): schedule=meeting.agenda) messages.success(request, 'Non-Sessions updated successfully') - url = reverse('meetings_non_session', kwargs={'meeting_id':meeting_id}) - return HttpResponseRedirect(url) + return redirect('meetings_non_session', meeting_id=meeting_id) else: form = NonSessionForm(initial={'show_location':True}) @@ -471,16 +461,14 @@ def non_session_delete(request, meeting_id, slot_id): session = get_session(slot) if session and 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) - url = reverse('meetings_non_session', kwargs={'meeting_id':meeting_id}) - return HttpResponseRedirect(url) + return redirect('meetings_non_session', meeting_id=meeting_id) else: slot.sessions.all().delete() slot.delete() messages.success(request, 'Non-Session timeslot deleted successfully') - url = reverse('meetings_non_session', kwargs={'meeting_id':meeting_id}) - return HttpResponseRedirect(url) + return redirect('meetings_non_session', meeting_id=meeting_id) def non_session_edit(request, meeting_id, slot_id): ''' @@ -493,8 +481,7 @@ def non_session_edit(request, meeting_id, slot_id): if request.method == 'POST': button_text = request.POST.get('submit', '') if button_text == 'Cancel': - url = reverse('meetings_non_session', kwargs={'meeting_id':meeting_id}) - return HttpResponseRedirect(url) + return redirect('meetings_non_session', meeting_id=meeting_id) form = NonSessionEditForm(request.POST,meeting=meeting, session=session) if form.is_valid(): @@ -512,8 +499,7 @@ def non_session_edit(request, meeting_id, slot_id): session.save() messages.success(request, 'Location saved') - url = reverse('meetings_non_session', kwargs={'meeting_id':meeting_id}) - return HttpResponseRedirect(url) + return redirect('meetings_non_session', meeting_id=meeting_id) else: # we need to pass the session to the form in order to disallow changing @@ -552,8 +538,7 @@ def remove_session(request, meeting_id, acronym): session.save() messages.success(request, '%s Session removed from agenda' % (group.acronym)) - url = reverse('meetings_select_group', kwargs={'meeting_id':meeting.number}) - return HttpResponseRedirect(url) + return redirect('meetings_select_group', meeting_id=meeting.number) def rooms(request, meeting_id): ''' @@ -569,8 +554,7 @@ def rooms(request, meeting_id): if request.method == 'POST': button_text = request.POST.get('submit', '') if button_text == 'Cancel': - url = reverse('meetings', kwargs={'meeting_id':meeting_id}) - return HttpResponseRedirect(url) + return redirect('meetings', meeting_id=meeting_id) formset = RoomFormset(request.POST, instance=meeting, prefix='room') if formset.is_valid(): @@ -588,8 +572,7 @@ def rooms(request, meeting_id): build_timeslots(meeting,room=form.instance) messages.success(request, 'Meeting Rooms changed successfully') - url = reverse('meetings_rooms', kwargs={'meeting_id':meeting_id}) - return HttpResponseRedirect(url) + return redirect('meetings_rooms', meeting_id=meeting_id) else: formset = RoomFormset(instance=meeting, prefix='room') @@ -634,8 +617,7 @@ def schedule(request, meeting_id, acronym): if request.method == 'POST': button_text = request.POST.get('submit', '') if button_text == 'Cancel': - url = reverse('meetings_select_group', kwargs={'meeting_id':meeting_id}) - return HttpResponseRedirect(url) + return redirect('meetings_select_group', meeting_id=meeting_id) formset = NewSessionFormset(request.POST,initial=initial) extra_form = ExtraSessionForm(request.POST) @@ -710,8 +692,7 @@ def schedule(request, meeting_id, acronym): if has_changed: messages.success(request, 'Session(s) Scheduled for %s. %s' % (group.acronym, notification_message)) - url = reverse('meetings_select_group', kwargs={'meeting_id':meeting_id}) - return HttpResponseRedirect(url) + return redirect('meetings_select_group', meeting_id=meeting_id) else: @@ -810,8 +791,7 @@ def times(request, meeting_id): # 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')) - url = reverse('meetings_times', kwargs={'meeting_id':meeting_id}) - return HttpResponseRedirect(url) + return redirect('meetings_times', meeting_id=meeting_id) for room in meeting.room_set.all(): ts = TimeSlot.objects.create(type_id='session', @@ -823,8 +803,7 @@ def times(request, meeting_id): ScheduledSession.objects.create(schedule=meeting.agenda,timeslot=ts) messages.success(request, 'Timeslots created') - url = reverse('meetings_times', kwargs={'meeting_id':meeting_id}) - return HttpResponseRedirect(url) + return redirect('meetings_times', meeting_id=meeting_id) else: form = TimeSlotForm() @@ -851,14 +830,12 @@ def times_delete(request, meeting_id, time): if qs: messages.error(request, 'ERROR deleting timeslot. There is one or more sessions scheduled for this timeslot.') - url = reverse('meetings_times', kwargs={'meeting_id':meeting_id}) - return HttpResponseRedirect(url) + return redirect('meetings_times', meeting_id=meeting_id) TimeSlot.objects.filter(meeting=meeting,time=dtime).delete() messages.success(request, 'Timeslot deleted') - url = reverse('meetings_times', kwargs={'meeting_id':meeting_id}) - return HttpResponseRedirect(url) + return redirect('meetings_times', meeting_id=meeting_id) def view(request, meeting_id): ''' diff --git a/ietf/secr/rolodex/views.py b/ietf/secr/rolodex/views.py index 076a51286..cfe3e5766 100644 --- a/ietf/secr/rolodex/views.py +++ b/ietf/secr/rolodex/views.py @@ -5,7 +5,7 @@ from django.db.models import Q from django.forms.formsets import formset_factory from django.forms.models import inlineformset_factory, modelformset_factory from django.http import HttpResponseRedirect -from django.shortcuts import render_to_response, get_object_or_404 +from django.shortcuts import render_to_response, get_object_or_404, redirect from django.template import RequestContext from ietf.person.models import Person, Email, Alias @@ -73,9 +73,8 @@ def add_proceed(request): post_data = request.session['post_data'] else: messages.error('ERROR: unable to save session data (enable cookies)') - url = reverse('rolodex_add') - return HttpResponseRedirect(url) - + return redirect('rolodex_add') + name = post_data['name'] if request.method == 'POST': @@ -104,8 +103,7 @@ def add_proceed(request): Alias.objects.create(person=person,name=person.ascii) messages.success(request, 'The Rolodex entry was added successfully') - url = reverse('rolodex_view', kwargs={'id': person.id}) - return HttpResponseRedirect(url) + return redirect('rolodex_view', id=person.id) else: form = NewPersonForm(initial={'name':name,'ascii':name}) @@ -141,8 +139,7 @@ def delete(request, id): #person.delete() messages.warning(request, 'This feature is disabled') - url = reverse('rolodex') - return HttpResponseRedirect(url) + return redirect('rolodex') return render_to_response('rolodex/delete.html', { 'person': person}, @@ -169,8 +166,7 @@ def edit(request, id): if request.method == 'POST': button_text = request.POST.get('submit', '') if button_text == 'Cancel': - url = reverse('rolodex_view', kwargs={'id':id}) - return HttpResponseRedirect(url) + return redirect('rolodex_view', id=id) person_form = EditPersonForm(request.POST, instance=person) email_formset = EmailFormset(request.POST, instance=person, prefix='email') @@ -187,8 +183,7 @@ def edit(request, id): # add new names to alias messages.success(request, 'The Rolodex entry was changed successfully') - url = reverse('rolodex_view', kwargs={'id': id}) - return HttpResponseRedirect(url) + return redirect('rolodex_view', id=id) else: person_form = EditPersonForm(instance=person) @@ -248,9 +243,8 @@ def search(request): # if there's just one result go straight to view if len(results) == 1: - url = reverse('rolodex_view', kwargs={'id':results[0].person.id}) - return HttpResponseRedirect(url) - + return redirect('rolodex_view', id=results[0].person.id) + if not results: not_found = 'No record found' else: diff --git a/ietf/secr/sreq/views.py b/ietf/secr/sreq/views.py index 9e2369fba..13f5ff276 100644 --- a/ietf/secr/sreq/views.py +++ b/ietf/secr/sreq/views.py @@ -4,7 +4,7 @@ from django.core.exceptions import ObjectDoesNotExist from django.core.urlresolvers import reverse from django.db.models import Q from django.http import HttpResponse, HttpResponseRedirect, Http404 -from django.shortcuts import render_to_response, get_object_or_404 +from django.shortcuts import render_to_response, get_object_or_404, redirect from django.template import RequestContext from ietf.secr.utils.mail import get_ad_email_list, get_chair_email_list, get_cc_list @@ -184,13 +184,11 @@ def approve(request, acronym): session.save() messages.success(request, 'Third session approved') - url = reverse('sessions_view', kwargs={'acronym':acronym}) - return HttpResponseRedirect(url) + return redirect('sessions_view', acronym=acronym) else: # if an unauthorized user gets here return error messages.error(request, 'Not authorized to approve the third session') - url = reverse('sessions_view', kwargs={'acronym':acronym}) - return HttpResponseRedirect(url) + return redirect('sessions_view', acronym=acronym) @check_permissions def cancel(request, acronym): @@ -230,8 +228,7 @@ def cancel(request, acronym): 'meeting':meeting}, cc=cc_list) messages.success(request, 'The %s Session Request has been canceled' % group.acronym) - url = reverse('sessions') - return HttpResponseRedirect(url) + return redirect('sessions') def confirm(request, acronym): ''' @@ -253,8 +250,7 @@ def confirm(request, acronym): button_text = request.POST.get('submit', '') if button_text == 'Cancel': messages.success(request, 'Session Request has been canceled') - url = reverse('sessions') - return HttpResponseRedirect(url) + return redirect('sessions') # delete any existing session records with status = canceled or notmeet Session.objects.filter(group=group,meeting=meeting,status__in=('canceled','notmeet')).delete() @@ -294,8 +290,7 @@ def confirm(request, acronym): status_text = 'IETF Agenda to be scheduled' messages.success(request, 'Your request has been sent to %s' % status_text) - url = reverse('sessions') - return HttpResponseRedirect(url) + return redirect('sessions') # GET logic session_conflicts = session_conflicts_as_string(group, meeting) @@ -323,8 +318,7 @@ def edit(request, acronym): if request.method == 'POST': button_text = request.POST.get('submit', '') if button_text == 'Cancel': - url = reverse('sessions_view', kwargs={'acronym':acronym}) - return HttpResponseRedirect(url) + return redirect('sessions_view', acronym=acronym) form = SessionForm(request.POST,initial=initial) if form.is_valid(): @@ -404,8 +398,7 @@ def edit(request, acronym): send_notification(group,meeting,login,form.cleaned_data,'update') messages.success(request, 'Session Request updated') - url = reverse('sessions_view', kwargs={'acronym':acronym}) - return HttpResponseRedirect(url) + return redirect('sessions_view', acronym=acronym) else: form = SessionForm(initial=initial) @@ -441,11 +434,9 @@ def main(request): if request.method == 'POST': button_text = request.POST.get('submit', '') if button_text == 'Group will not meet': - url = reverse('sessions_no_session', kwargs={'acronym':request.POST['group']}) - return HttpResponseRedirect(url) + return redirect('sessions_no_session', acronym=request.POST['group']) else: - redirect_url = reverse('sessions_new', kwargs={'acronym':request.POST['group']}) - return HttpResponseRedirect(redirect_url) + return redirect('sessions_new', acronym=request.POST['group']) meeting = get_meeting() scheduled_groups,unscheduled_groups = groups_by_session(request.user, meeting) @@ -492,22 +483,19 @@ def new(request, acronym): if request.method == 'POST': button_text = request.POST.get('submit', '') if button_text == 'Cancel': - url = reverse('sessions') - return HttpResponseRedirect(url) + return redirect('sessions') 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) - url = reverse('sessions') - return HttpResponseRedirect(url) + return redirect('sessions') # save in user session request.session['session_form'] = form.data - url = reverse('sessions_confirm',kwargs={'acronym':acronym}) - return HttpResponseRedirect(url) + return redirect('sessions_confirm',acronym=acronym) # the "previous" querystring causes the form to be returned # pre-populated with data from last meeeting's session request @@ -516,8 +504,7 @@ def new(request, acronym): previous_sessions = Session.objects.filter(meeting=previous_meeting,group=group).exclude(status__in=('notmeet','deleted')).order_by('id') if not previous_sessions: messages.warning(request, 'This group did not meet at %s' % previous_meeting) - redirect_url = reverse('sessions_new', kwargs={'acronym':acronym}) - return HttpResponseRedirect(redirect_url) + return redirect('sessions_new', acronym=acronym) initial = get_initial_session(previous_sessions) form = SessionForm(initial=initial) @@ -551,8 +538,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) - url = reverse('sessions') - return HttpResponseRedirect(url) + return redirect('sessions') session = Session(group=group, meeting=meeting, @@ -579,8 +565,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) - url = reverse('sessions') - return HttpResponseRedirect(url) + return redirect('sessions') @sec_only def tool_status(request): @@ -592,8 +577,7 @@ def tool_status(request): if request.method == 'POST': button_text = request.POST.get('submit', '') if button_text == 'Done': - url = reverse('sessions') - return HttpResponseRedirect(url) + return redirect('sessions') form = ToolStatusForm(request.POST) @@ -604,15 +588,13 @@ def tool_status(request): f.close() messages.success(request, 'Session Request Tool is now Locked') - url = reverse('sessions') - return HttpResponseRedirect(url) + return redirect('sessions') elif button_text == 'Unlock': os.remove(LOCKFILE) messages.success(request, 'Session Request Tool is now Unlocked') - url = reverse('sessions') - return HttpResponseRedirect(url) + return redirect('sessions') else: if is_locked: @@ -638,8 +620,7 @@ def view(request, acronym): # if there are no session requests yet, redirect to new session request page if not sessions: - redirect_url = reverse('sessions_new', kwargs={'acronym':acronym}) - return HttpResponseRedirect(redirect_url) + return redirect('sessions_new', acronym=acronym) # TODO simulate activity records activities = [{'act_date':sessions[0].requested.strftime('%b %d, %Y'), diff --git a/ietf/secr/telechat/views.py b/ietf/secr/telechat/views.py index f76dd1c6c..898419105 100644 --- a/ietf/secr/telechat/views.py +++ b/ietf/secr/telechat/views.py @@ -4,7 +4,7 @@ from django.db.models import Count from django.forms.models import inlineformset_factory, modelformset_factory from django.forms.formsets import formset_factory from django.http import HttpResponseRedirect, HttpResponse -from django.shortcuts import render_to_response, get_object_or_404 +from django.shortcuts import render_to_response, get_object_or_404, redirect from django.template import RequestContext from ietf.doc.models import DocEvent, Document, BallotDocEvent, BallotPositionDocEvent, TelechatDocEvent, WriteupDocEvent, save_document_in_history @@ -142,8 +142,7 @@ def doc(request, date): agenda = agenda_data(date=date) doc = get_first_doc(agenda) if doc: - url = reverse('telechat_doc_detail', kwargs={'date':date,'name':doc.name}) - return HttpResponseRedirect(url) + return redirect('telechat_doc_detail', date=date, name=doc.name) else: return render_to_response('telechat/doc.html', { 'agenda': agenda, @@ -231,8 +230,7 @@ def doc_detail(request, date, name): if has_changed: messages.success(request,'Ballot position changed.') - url = reverse('telechat_doc_detail', kwargs={'date':date,'name':name}) - return HttpResponseRedirect(url) + return redirect('telechat_doc_detail', date=date, name=name) # logic from doc/views_draft.py change_state elif button_text == 'update_state': @@ -274,8 +272,7 @@ def doc_detail(request, date, name): request_last_call(request, doc) messages.success(request,'Document state updated') - url = reverse('telechat_doc_detail', kwargs={'date':date,'name':name}) - return HttpResponseRedirect(url) + return redirect('telechat_doc_detail', date=date, name=name) else: formset = BallotFormset(initial=initial_ballot) state_form = ChangeStateForm(initial=initial_state) @@ -321,17 +318,15 @@ def doc_navigate(request, date, name, nav): elif nav == 'previous' and index != 0: target = docs[index - 1].name - url = reverse('telechat_doc_detail', kwargs={'date':date,'name':target}) - return HttpResponseRedirect(url) + return redirect('telechat_doc_detail', date=date, name=target) def main(request): ''' The is the main view where the user selects an existing telechat or creates a new one. ''' if request.method == 'POST': - date=request.POST['date'] - url = reverse('telechat_doc', kwargs={'date':date}) - return HttpResponseRedirect(url) + date = request.POST['date'] + return redirect('telechat_doc', date=date) choices = [ (d.date.strftime('%Y-%m-%d'), d.date.strftime('%Y-%m-%d')) for d in TelechatDate.objects.all() ] @@ -395,8 +390,7 @@ def new(request): Telechat.objects.create(telechat_date=date) messages.success(request,'New Telechat Agenda created') - url = reverse('telechat_doc', kwargs={'date':date,'name':name}) - return HttpResponseRedirect(url) + return redirect('telechat_doc', date=date, name=name) def roll_call(request, date): diff --git a/ietf/submit/views.py b/ietf/submit/views.py index 60b91599b..7699a35f1 100644 --- a/ietf/submit/views.py +++ b/ietf/submit/views.py @@ -120,9 +120,9 @@ def search_submission(request): name = None if request.method == 'POST': name = request.POST.get('name', '') - submission = Submission.objects.filter(name=name).order_by('-pk') + submission = Submission.objects.filter(name=name).order_by('-pk').first() if submission: - return HttpResponseRedirect(urlreverse(submission_status, None, kwargs={'submission_id': submission[0].pk})) + return redirect(submission_status, submission_id=submission.pk) error = 'No valid submission found for %s' % name return render_to_response('submit/search_submission.html', {'selected': 'status', diff --git a/ietf/sync/views.py b/ietf/sync/views.py index 892b0250d..db4e03a63 100644 --- a/ietf/sync/views.py +++ b/ietf/sync/views.py @@ -1,7 +1,7 @@ import subprocess, os, json from django.http import HttpResponse, HttpResponseForbidden, HttpResponseServerError, HttpResponseRedirect, Http404 -from django.shortcuts import render_to_response +from django.shortcuts import render_to_response, redirect from django.template import RequestContext from django.template.loader import render_to_string from django.conf import settings @@ -141,7 +141,7 @@ def rfceditor_undo(request): e.delete() - return HttpResponseRedirect(urlreverse("ietf.sync.views.rfceditor_undo")) + return redirect("ietf.sync.views.rfceditor_undo") return render_to_response('sync/rfceditor_undo.html', dict(events=events,