|
7 | 7 | from django.template import RequestContext, loader |
8 | 8 | from django.shortcuts import render_to_response, get_object_or_404 |
9 | 9 | from django.core.urlresolvers import reverse |
| 10 | +from django.views.generic.list_detail import object_detail |
10 | 11 | from ietf.idtracker.models import Acronym, IETFWG, InternetDraft, Rfc |
11 | 12 | from ietf.idindex.forms import IDIndexSearchForm |
12 | 13 | from ietf.idindex.models import alphabet, orgs, orgs_dict |
@@ -214,13 +215,25 @@ def process(doc, skip=(0,0,0)): |
214 | 215 | process(startdoc, (0,0,0)) |
215 | 216 | return related |
216 | 217 |
|
217 | | -def view_related_docs(request, **kwargs): |
218 | | - if kwargs.has_key('id'): |
219 | | - startdoc = get_object_or_404(InternetDraft, id_document_tag=kwargs['id']) |
220 | | - else: |
221 | | - startdoc = get_object_or_404(InternetDraft, filename=kwargs['slug']) |
| 218 | +def redirect_related(request, id): |
| 219 | + doc = get_object_or_404(InternetDraft, id_document_tag=id) |
| 220 | + return HttpResponsePermanentRedirect(reverse(view_related_docs, args=[doc.filename])) |
| 221 | + |
| 222 | +def view_related_docs(request, slug): |
| 223 | + startdoc = get_object_or_404(InternetDraft, filename=slug) |
222 | 224 | related = related_docs(startdoc) |
223 | 225 | context = {'related': related, 'numdocs': len(related)} |
224 | 226 | context.update(base_extra) |
225 | 227 | return render_to_response("idindex/view_related_docs.html", context, |
226 | 228 | context_instance=RequestContext(request)) |
| 229 | + |
| 230 | +def redirect_id(request, object_id): |
| 231 | + '''Redirect from historical document ID to preferred filename url.''' |
| 232 | + doc = get_object_or_404(InternetDraft, id_document_tag=object_id) |
| 233 | + return HttpResponsePermanentRedirect(reverse(view_id, args=[doc.filename])) |
| 234 | + |
| 235 | +# Wrapper around object_detail to give permalink a handle. |
| 236 | +# The named-URLs feature in django 0.97 will eliminate the |
| 237 | +# need for these. |
| 238 | +def view_id(*args, **kwargs): |
| 239 | + return object_detail(*args, **kwargs) |
0 commit comments