@@ -64,14 +64,15 @@ class SearchForm(forms.Form):
6464 activedrafts = forms .BooleanField (required = False , initial = True )
6565 olddrafts = forms .BooleanField (required = False , initial = False )
6666
67- by = forms .ChoiceField (choices = [(x ,x ) for x in ('author' ,'group' ,'area' ,'ad' ,'state' ,'stream' )], required = False , initial = 'group' )
67+ by = forms .ChoiceField (choices = [(x ,x ) for x in ('author' ,'group' ,'area' ,'ad' ,'state' ,'irtfstate' , ' stream' )], required = False , initial = 'group' )
6868 author = forms .CharField (required = False )
6969 group = forms .CharField (required = False )
7070 stream = forms .ModelChoiceField (StreamName .objects .all ().order_by ('name' ), empty_label = "any stream" , required = False )
7171 area = forms .ModelChoiceField (Group .objects .filter (type = "area" , state = "active" ).order_by ('name' ), empty_label = "any area" , required = False )
7272 ad = forms .ChoiceField (choices = (), required = False )
7373 state = forms .ModelChoiceField (State .objects .filter (type = "draft-iesg" ), empty_label = "any state" , required = False )
7474 substate = forms .ChoiceField (choices = (), required = False )
75+ irtfstate = forms .ModelChoiceField (State .objects .filter (type = "draft-stream-irtf" ), empty_label = "any state" , required = False )
7576
7677 sort = forms .ChoiceField (
7778 choices = (
@@ -111,7 +112,9 @@ def clean(self):
111112 for k in ('author' , 'group' , 'area' , 'ad' ):
112113 if q ['by' ] == k and not q .get (k ):
113114 q ['by' ] = None
114- if q ['by' ] == 'state' and not (q .get ("state" ) or q .get ('substate' )):
115+ if q ['by' ] == 'state' and not (q .get ('state' ) or q .get ('substate' )):
116+ q ['by' ] = None
117+ if q ['by' ] == 'irtfstate' and not (q .get ('irtfstate' )):
115118 q ['by' ] = None
116119 else :
117120 q ['by' ] = None
@@ -121,6 +124,8 @@ def clean(self):
121124 q [k ] = ""
122125 if q ['by' ] != 'state' :
123126 q ['state' ] = q ['substate' ] = None
127+ if q ['by' ] != 'irtfstate' :
128+ q ['irtfstate' ] = None
124129 return q
125130
126131def retrieve_search_results (form , all_types = False ):
@@ -183,6 +188,8 @@ def retrieve_search_results(form, all_types=False):
183188 docs = docs .filter (states = query ["state" ])
184189 if query ["substate" ]:
185190 docs = docs .filter (tags = query ["substate" ])
191+ elif by == "irtfstate" :
192+ docs = docs .filter (states = query ["irtfstate" ])
186193 elif by == "stream" :
187194 docs = docs .filter (stream = query ["stream" ])
188195
0 commit comments