Skip to content

Commit 3553b9e

Browse files
chore: make search more pythonic
1 parent 5681005 commit 3553b9e

File tree

2 files changed

+17
-17
lines changed

2 files changed

+17
-17
lines changed

intranet/apps/dashboard/views.py

Lines changed: 12 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -331,25 +331,23 @@ class RawPaginationData(TypedDict, Generic[T]):
331331
page_obj: Paginator[T]
332332

333333

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:
336337
return items
337-
searchParam = request.GET["search"]
338-
if len(searchParam.strip()) == 0:
339-
return items
340-
searchParam = searchParam.lower()
341338

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()
344341

345-
filteredItems = list(filter(filterMethod, items))
342+
filtered = [item for item in items if search(item)]
346343

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)
351349

352-
return sorted_announcements
350+
return filtered
353351

354352

355353
def paginate_announcements_list_raw(

intranet/templates/dashboard/dashboard.html

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -107,9 +107,11 @@
107107
<h2>{{ dashboard_header }}</h2>
108108
<span class="announcements-icon-wrapper" style="display: flex; flex-direction: row;">
109109
{% 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>
113115
{% endif %}
114116

115117
{% if show_expired or not show_widgets %}

0 commit comments

Comments
 (0)