Skip to content

Commit 2443fc1

Browse files
committed
✨ Add pagination to package search
Signed-off-by: Shivam Sandbhor <shivam.sandbhor@gmail.com>
1 parent d6897b8 commit 2443fc1

2 files changed

Lines changed: 17 additions & 4 deletions

File tree

vulnerabilities/templates/packages.html

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,16 @@ <h3 class="subtitle">Total Results {{packages|length}}</h3>
4949
{% endfor %}
5050
</table>
5151
</div>
52+
53+
<div class="is-field is-horizontal">
54+
{% if packages.has_previous %}
55+
<a class="button" href="?{{ searched_for }}&page={{ packages.previous_page_number }}">Previous Page</a>
56+
{% endif %}
57+
58+
{% if packages.has_next %}
59+
<a class="button" href="?{{ searched_for }}&page={{ packages.next_page_number}}">Next Page</a>
60+
{% endif %}
61+
</div>
5262
</section>
5363

5464
{% endif %}

vulnerabilities/views.py

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@
2020
# VulnerableCode is a free software code scanning tool from nexB Inc. and others.
2121
# Visit https://github.com/nexB/vulnerablecode/ for support and download.
2222

23+
from urllib.parse import urlencode
24+
2325
from django.core.paginator import Paginator
2426
from django.shortcuts import render
2527
from django.urls import reverse
@@ -42,7 +44,12 @@ def get(self, request):
4244

4345
if request.GET:
4446
packages = self.request_to_queryset(request)
47+
page_no = int(request.GET.get("page", 1))
48+
packages = Paginator(packages, 50).get_page(page_no)
4549
context["packages"] = packages
50+
context["searched_for"] = urlencode(
51+
{param: request.GET[param] for param in request.GET if param != "page"}
52+
)
4653

4754
return render(request, self.template_name, context)
4855

@@ -52,9 +59,6 @@ def request_to_queryset(request):
5259
if len(request.GET["name"]):
5360
query["name"] = request.GET["name"]
5461

55-
if request.GET["type"] and request.GET["type"] != "*":
56-
query["type"] = request.GET["type"]
57-
5862
if len(request.GET["version"]):
5963
query["version"] = request.GET["version"]
6064

@@ -67,7 +71,6 @@ class VulnerabilitySearchView(View):
6771

6872
def get(self, request):
6973
context = {"form": forms.VulnerabilitySearchForm()}
70-
print(request.GET)
7174
if request.GET:
7275
vulnerabilities = self.request_to_queryset(request)
7376
pages = Paginator(vulnerabilities, 50)

0 commit comments

Comments
 (0)