11# Copyright The IETF Trust 2007, All Rights Reserved
22
3- from django .http import HttpResponse
3+ from django .http import HttpResponse , HttpResponsePermanentRedirect
44from django .views .generic .list_detail import object_list
55from django .db .models import Q
66from django .http import Http404
77from django .template import RequestContext , loader
88from django .shortcuts import render_to_response , get_object_or_404
9+ from django .core .urlresolvers import reverse
910from ietf .idtracker .models import Acronym , IETFWG , InternetDraft , Rfc
1011from ietf .idindex .forms import IDIndexSearchForm
1112from ietf .idindex .models import alphabet , orgs , orgs_dict
1213from ietf .utils import orl , flattenl
1314
1415base_extra = { 'alphabet' : alphabet , 'orgs' : orgs }
1516
16- def wgdocs (request , ** kwargs ):
17- if kwargs .has_key ('id' ):
18- queryset = InternetDraft .objects .filter (group = kwargs ['id' ])
19- group = get_object_or_404 (Acronym , acronym_id = kwargs ['id' ])
20- else :
21- wg = kwargs ['slug' ]
22- try :
23- group = Acronym .objects .get (acronym = wg )
24- except Acronym .DoesNotExist : # try a search
25- if wg == 'other' :
26- queryset = IETFWG .objects .filter (
27- orl ([Q (group_acronym__acronym__istartswith = "%d" % i ) for i in range (0 ,10 )])
28- )
29- else :
30- queryset = IETFWG .objects .filter (group_acronym__acronym__istartswith = wg )
31- queryset = queryset .filter (group_type__type = 'WG' ).select_related ().order_by ('status_id' , 'acronym.acronym' )
32- return object_list (request , queryset = queryset , template_name = 'idindex/wglist.html' , allow_empty = True , extra_context = base_extra )
33- queryset = InternetDraft .objects .filter (group__acronym = wg )
17+ def wgdocs_redir (request , id ):
18+ group = get_object_or_404 (Acronym , acronym_id = id )
19+ return HttpResponsePermanentRedirect (reverse (wgdocs , args = [group .acronym ]))
20+
21+ def wgdocs (request , wg ):
22+ try :
23+ group = Acronym .objects .get (acronym = wg )
24+ except Acronym .DoesNotExist : # try a search
25+ if wg == 'other' :
26+ queryset = IETFWG .objects .filter (
27+ orl ([Q (group_acronym__acronym__istartswith = "%d" % i ) for i in range (0 ,10 )])
28+ )
29+ else :
30+ queryset = IETFWG .objects .filter (group_acronym__acronym__istartswith = wg )
31+ queryset = queryset .filter (group_type__type = 'WG' ).select_related ().order_by ('status_id' , 'acronym.acronym' )
32+ extra = base_extra .copy ()
33+ extra ['search' ] = wg
34+ return object_list (request , queryset = queryset , template_name = 'idindex/wglist.html' , allow_empty = True , extra_context = extra )
35+ queryset = InternetDraft .objects .filter (group__acronym = wg )
3436 queryset = queryset .order_by ('status_id' , 'filename' )
35- extra = base_extra
37+ extra = base_extra . copy ()
3638 extra ['group' ] = group
3739 return object_list (request , queryset = queryset , template_name = 'idindex/wgdocs.html' , allow_empty = True , extra_context = extra )
3840
@@ -47,7 +49,7 @@ def inddocs(request, filter=None):
4749 else :
4850 queryset = InternetDraft .objects .filter (filename__istartswith = 'draft-' + filter )
4951 queryset = queryset .exclude (ind_exception ).filter (group__acronym = 'none' ).order_by ('filename' )
50- extra = base_extra
52+ extra = base_extra . copy ()
5153 extra ['filter' ] = filter
5254 return object_list (request , queryset = queryset , template_name = 'idindex/inddocs.html' , allow_empty = True , extra_context = extra )
5355
@@ -61,7 +63,7 @@ def otherdocs(request, cat=None):
6163 Q (filename__istartswith = "draft-ietf-%s-" % p )
6264 for p in org .get ('prefixes' , [ org ['key' ] ])]))
6365 queryset = queryset .order_by ('status_id' ,'filename' )
64- extra = base_extra
66+ extra = base_extra . copy ()
6567 extra ['category' ] = cat
6668 return object_list (request , queryset = queryset , template_name = 'idindex/otherdocs.html' , allow_empty = True , extra_context = extra )
6769
0 commit comments