File tree 2 files changed +17
-17
lines changed
2 files changed +17
-17
lines changed Original file line number Diff line number Diff line change @@ -331,25 +331,23 @@ class RawPaginationData(TypedDict, Generic[T]):
331
331
page_obj : Paginator [T ]
332
332
333
333
334
- def filter_announcements_by_search (request , items ):
335
- if "search" not in request .GET :
334
+ def filter_announcements_by_search (request , items ) -> list [Announcement ]:
335
+ query = request .GET .get ("search" , "" ).strip ().lower ()
336
+ if not query :
336
337
return items
337
- searchParam = request .GET ["search" ]
338
- if len (searchParam .strip ()) == 0 :
339
- return items
340
- searchParam = searchParam .lower ()
341
338
342
- def filterMethod (item ):
343
- return searchParam in item .title .lower () or searchParam in item .content .lower ()
339
+ def search (item ):
340
+ return query in item .title .lower () or query in item .content .lower ()
344
341
345
- filteredItems = list ( filter ( filterMethod , items ))
342
+ filtered = [ item for item in items if search ( item )]
346
343
347
- sorted_announcements = sorted (
348
- filteredItems ,
349
- key = lambda announcement : (searchParam .lower () not in announcement .title .lower (), searchParam .lower () not in announcement .content .lower ()),
350
- )
344
+ # order by title then content
345
+ def order_by (item ):
346
+ return (query in item .title .lower (), query in item .content .lower ())
347
+
348
+ filtered .sort (key = order_by , reverse = True )
351
349
352
- return sorted_announcements
350
+ return filtered
353
351
354
352
355
353
def paginate_announcements_list_raw (
Original file line number Diff line number Diff line change 107
107
< h2 > {{ dashboard_header }}</ h2 >
108
108
< span class ="announcements-icon-wrapper " style ="display: flex; flex-direction: row; ">
109
109
{% if view_announcements_url == "club_announcements" %}
110
- < form id ="subscribed-announcement-search " style ="display: flex; margin-right:1px ">
111
- < input id ="subscribed-announcement-search-input " type ="text " placeholder ="Search Club Announcements " style ="width: 15rem; " class ="dashboard-textinput " onsubmit ="" >
112
- </ form >
110
+ <!-- TODO(2027adeshpan): handle searches containing # -->
111
+ < form id ="subscribed-announcement-search " style ="display: flex; margin-right:1px " method ="get " role ="search ">
112
+ < input id ="subscribed-announcement-search-input "
113
+ type ="search " placeholder ="Search Club Announcements " style ="width: 15rem " class ="dashboard-textinput ">
114
+ </ form >
113
115
{% endif %}
114
116
115
117
{% if show_expired or not show_widgets %}
You can’t perform that action at this time.
0 commit comments