@@ -63,14 +63,15 @@ class SearchForm(forms.Form):
6363 activedrafts = forms .BooleanField (required = False , initial = True )
6464 olddrafts = forms .BooleanField (required = False , initial = False )
6565
66- by = forms .ChoiceField (choices = [(x ,x ) for x in ('author' ,'group' ,'area' ,'ad' ,'state' ,'stream' )], required = False , initial = 'group' )
66+ by = forms .ChoiceField (choices = [(x ,x ) for x in ('author' ,'group' ,'area' ,'ad' ,'state' ,'irtfstate' , ' stream' )], required = False , initial = 'group' )
6767 author = forms .CharField (required = False )
6868 group = forms .CharField (required = False )
6969 stream = forms .ModelChoiceField (StreamName .objects .all ().order_by ('name' ), empty_label = "any stream" , required = False )
7070 area = forms .ModelChoiceField (Group .objects .filter (type = "area" , state = "active" ).order_by ('name' ), empty_label = "any area" , required = False )
7171 ad = forms .ChoiceField (choices = (), required = False )
7272 state = forms .ModelChoiceField (State .objects .filter (type = "draft-iesg" ), empty_label = "any state" , required = False )
7373 substate = forms .ChoiceField (choices = (), required = False )
74+ irtfstate = forms .ModelChoiceField (State .objects .filter (type = "draft-stream-irtf" ), empty_label = "any state" , required = False )
7475
7576 sort = forms .ChoiceField (
7677 choices = (
@@ -112,7 +113,9 @@ def clean(self):
112113 for k in ('author' , 'group' , 'area' , 'ad' ):
113114 if q ['by' ] == k and not q .get (k ):
114115 q ['by' ] = None
115- if q ['by' ] == 'state' and not (q .get ("state" ) or q .get ('substate' )):
116+ if q ['by' ] == 'state' and not (q .get ('state' ) or q .get ('substate' )):
117+ q ['by' ] = None
118+ if q ['by' ] == 'irtfstate' and not (q .get ('irtfstate' )):
116119 q ['by' ] = None
117120 else :
118121 q ['by' ] = None
@@ -122,6 +125,8 @@ def clean(self):
122125 q [k ] = ""
123126 if q ['by' ] != 'state' :
124127 q ['state' ] = q ['substate' ] = None
128+ if q ['by' ] != 'irtfstate' :
129+ q ['irtfstate' ] = None
125130 return q
126131
127132def retrieve_search_results (form , all_types = False ):
@@ -184,6 +189,8 @@ def retrieve_search_results(form, all_types=False):
184189 docs = docs .filter (states = query ["state" ])
185190 if query ["substate" ]:
186191 docs = docs .filter (tags = query ["substate" ])
192+ elif by == "irtfstate" :
193+ docs = docs .filter (states = query ["irtfstate" ])
187194 elif by == "stream" :
188195 docs = docs .filter (stream = query ["stream" ])
189196
0 commit comments