Skip to content

Commit 1e381a2

Browse files
Now, the language updates dynamically, and the route bug has been fixed. (OWASP-BLT#3823)
* solved * Apply pre-commit fixes --------- Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
1 parent b0c0f51 commit 1e381a2

File tree

2 files changed

+30
-14
lines changed

2 files changed

+30
-14
lines changed

website/templates/repo/repo_list.html

+1-1
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ <h1 class="text-3xl font-bold text-gray-900">
2424
<div class="inline-flex items-center pb-2 mb-2 border-b border-gray-200 w-full">
2525
<span class="text-gray-700 font-semibold mr-4">Organizations:</span>
2626
<div class="flex flex-wrap gap-2">
27-
<a href="{% url 'repo_list' %}{% if request.GET.q %}?q={{ request.GET.q }}{% endif %}{% if current_language %}&language={{ current_language }}{% endif %}"
27+
<a href="?{% if request.GET.q %}q={{ request.GET.q }}&{% endif %}{% if current_language %}language={{ current_language }}{% endif %}"
2828
class="px-3 py-1 rounded-full {% if not current_organization %}bg-red-600 text-white{% else %}bg-gray-200 text-gray-700 hover:bg-gray-300{% endif %}">
2929
All
3030
</a>

website/views/repo.py

+29-13
Original file line numberDiff line numberDiff line change
@@ -80,19 +80,6 @@ def get_context_data(self, **kwargs):
8080
# Get the filtered queryset count instead of all repos
8181
context["total_repos"] = self.get_queryset().count()
8282

83-
# Get language counts
84-
language_counts = (
85-
Repo.objects.exclude(primary_language__isnull=True)
86-
.exclude(primary_language="")
87-
.values("primary_language")
88-
.annotate(count=Count("id"))
89-
.order_by("-count")
90-
)
91-
context["languages"] = language_counts
92-
93-
# Get current language filter
94-
context["current_language"] = self.request.GET.get("language")
95-
9683
# Get organizations from related Organization model
9784
organizations = Organization.objects.filter(repos__isnull=False).distinct()
9885
context["organizations"] = organizations
@@ -108,6 +95,35 @@ def get_context_data(self, **kwargs):
10895
except Organization.DoesNotExist:
10996
context["current_organization_name"] = None
11097

98+
# Get language counts based on current filters
99+
queryset = Repo.objects.all()
100+
101+
# Apply organization filter if selected
102+
if context["current_organization"]:
103+
queryset = queryset.filter(organization__id=context["current_organization"])
104+
105+
# Apply search filter if present
106+
search_query = self.request.GET.get("q")
107+
if search_query:
108+
queryset = queryset.filter(
109+
Q(name__icontains=search_query)
110+
| Q(description__icontains=search_query)
111+
| Q(primary_language__icontains=search_query)
112+
)
113+
114+
# Get language counts from filtered queryset
115+
language_counts = (
116+
queryset.exclude(primary_language__isnull=True)
117+
.exclude(primary_language="")
118+
.values("primary_language")
119+
.annotate(count=Count("id"))
120+
.order_by("-count")
121+
)
122+
context["languages"] = language_counts
123+
124+
# Get current language filter
125+
context["current_language"] = self.request.GET.get("language")
126+
111127
return context
112128

113129

0 commit comments

Comments
 (0)