Skip to content

Commit 68926b2

Browse files
committed
Refactor Views
Signed-off-by: Tushar Goel <tushar.goel.dav@gmail.com>
1 parent 3bdefc6 commit 68926b2

File tree

2 files changed

+24
-24
lines changed

2 files changed

+24
-24
lines changed

vulnerabilities/views.py

Lines changed: 22 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
from django.contrib import messages
1515
from django.core.exceptions import ValidationError
1616
from django.core.mail import send_mail
17+
from django.db.models import Prefetch
1718
from django.http.response import Http404
1819
from django.shortcuts import redirect
1920
from django.shortcuts import render
@@ -22,7 +23,6 @@
2223
from django.views import generic
2324
from django.views.generic.detail import DetailView
2425
from django.views.generic.list import ListView
25-
from django.db.models import Prefetch
2626

2727
from vulnerabilities import models
2828
from vulnerabilities.forms import ApiUserCreationForm
@@ -159,30 +159,26 @@ def get_queryset(self):
159159
"exploits",
160160
Prefetch(
161161
"affecting_packages",
162-
queryset=models.Package.objects.only(
163-
"type", "namespace", "name", "version"
164-
),
162+
queryset=models.Package.objects.only("type", "namespace", "name", "version"),
165163
),
166164
Prefetch(
167165
"fixed_by_packages",
168-
queryset=models.Package.objects.only(
169-
"type", "namespace", "name", "version"
170-
),
166+
queryset=models.Package.objects.only("type", "namespace", "name", "version"),
171167
),
172168
)
173169
)
174170

175-
176171
def get_context_data(self, **kwargs):
177172
"""
178173
Build context with preloaded QuerySets and minimize redundant queries.
179174
"""
180175
context = super().get_context_data(**kwargs)
181176
vulnerability = self.object
182-
177+
183178
# Pre-fetch and process data in Python instead of the template
184179
weaknesses_present_in_db = [
185-
weakness_object for weakness_object in vulnerability.weaknesses.all()
180+
weakness_object
181+
for weakness_object in vulnerability.weaknesses.all()
186182
if weakness_object.weakness
187183
]
188184

@@ -201,6 +197,7 @@ def get_context_data(self, **kwargs):
201197
)
202198
return context
203199

200+
204201
class HomePage(View):
205202
template_name = "index.html"
206203

@@ -285,19 +282,19 @@ def get_queryset(self):
285282
"""
286283
Prefetch and optimize related data to minimize database hits.
287284
"""
288-
return super().get_queryset().prefetch_related(
289-
Prefetch(
285+
return (
286+
super()
287+
.get_queryset()
288+
.prefetch_related(
289+
Prefetch(
290290
"affecting_packages",
291-
queryset=models.Package.objects.only(
292-
"type", "namespace", "name", "version"
293-
),
291+
queryset=models.Package.objects.only("type", "namespace", "name", "version"),
294292
),
295293
Prefetch(
296294
"fixed_by_packages",
297-
queryset=models.Package.objects.only(
298-
"type", "namespace", "name", "version"
299-
),
295+
queryset=models.Package.objects.only("type", "namespace", "name", "version"),
300296
),
297+
)
301298
)
302299

303300
def get_context_data(self, **kwargs):
@@ -311,9 +308,11 @@ def get_context_data(self, **kwargs):
311308
sorted_affected_packages,
312309
all_affected_fixed_by_matches,
313310
) = vulnerability.aggregate_fixed_and_affected_packages()
314-
context.update({
315-
"affected_packages": sorted_affected_packages,
316-
"fixed_by_packages": sorted_fixed_by_packages,
317-
"all_affected_fixed_by_matches": all_affected_fixed_by_matches,
318-
})
311+
context.update(
312+
{
313+
"affected_packages": sorted_affected_packages,
314+
"fixed_by_packages": sorted_fixed_by_packages,
315+
"all_affected_fixed_by_matches": all_affected_fixed_by_matches,
316+
}
317+
)
319318
return context

vulnerablecode/urls.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,8 @@
2626
from vulnerabilities.views import HomePage
2727
from vulnerabilities.views import PackageDetails
2828
from vulnerabilities.views import PackageSearch
29-
from vulnerabilities.views import VulnerabilityDetails, VulnerabilityPackagesDetails
29+
from vulnerabilities.views import VulnerabilityDetails
30+
from vulnerabilities.views import VulnerabilityPackagesDetails
3031
from vulnerabilities.views import VulnerabilitySearch
3132
from vulnerablecode.settings import DEBUG_TOOLBAR
3233

0 commit comments

Comments
 (0)