Skip to content

Commit 457e918

Browse files
committed
Fixed sidebar links so that you can now click on all of the meta-data lists
1 parent 93bafa2 commit 457e918

File tree

3 files changed

+32
-4
lines changed

3 files changed

+32
-4
lines changed

dbdb/core/search_indexes.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ class SystemVersionIndex(indexes.SearchIndex, indexes.Indexable):
3030
inspired_by = indexes.MultiValueField()
3131
oses = indexes.MultiValueField()
3232
written_langs = indexes.MultiValueField()
33+
supported_langs = indexes.MultiValueField()
3334
project_types = indexes.MultiValueField()
3435
licenses = indexes.MultiValueField()
3536

@@ -113,6 +114,17 @@ def prepare_written_langs(self, obj):
113114
]
114115

115116
return values
117+
118+
def prepare_supported_langs(self, obj):
119+
if obj.meta_id is None:
120+
return []
121+
122+
values = [
123+
pk
124+
for pk in obj.meta.supported_languages.values_list('slug', flat=True)
125+
]
126+
127+
return values
116128

117129
def prepare_project_types(self, obj):
118130
values = list(

dbdb/core/views.py

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -518,6 +518,7 @@ def do_search(self, request):
518518
search_inspired = request.GET.getlist('inspired')
519519
search_os = request.GET.getlist('os')
520520
search_programming = request.GET.getlist('programming')
521+
search_supported = request.GET.getlist('supported')
521522
search_type = request.GET.getlist('type')
522523
search_license = request.GET.getlist('license')
523524
search_suffix = request.GET.getlist('suffix')
@@ -538,6 +539,7 @@ def do_search(self, request):
538539
'inspired': search_inspired,
539540
'os': search_os,
540541
'programming': search_programming,
542+
'supported': search_supported,
541543
'type': search_type,
542544
'license': search_license,
543545
'suffix': search_suffix,
@@ -619,6 +621,13 @@ def do_search(self, request):
619621
langs = ProgrammingLanguage.objects.filter(slug__in=search_programming)
620622
search_tags.extend( SearchTag(request.GET, 'programming', 'Programming Languages', lang.slug, lang.name) for lang in langs )
621623
pass
624+
625+
# search - supported languages
626+
if search_supported:
627+
sqs = sqs.filter(supported_langs__in=search_supported)
628+
langs = ProgrammingLanguage.objects.filter(slug__in=search_supported)
629+
search_tags.extend( SearchTag(request.GET, 'supported', 'Supported Languages', lang.slug, lang.name) for lang in langs )
630+
pass
622631

623632
# search - project types
624633
if search_type:
@@ -1478,7 +1487,7 @@ def get(self, request, stats_type=None):
14781487
all_values = ProgrammingLanguage.objects.all()
14791488
labels = dict(all_values.values_list('id', 'name'))
14801489
slugs = dict(all_values.values_list('id', 'slug'))
1481-
stats.append( self.get_by_field('Programming Lang.', 'written_in', 'programming', labels, slugs, False, limit) )
1490+
stats.append( self.get_by_field('Implementation', 'written_in', 'programming', labels, slugs, False, limit) )
14821491

14831492
all_values = System.objects.all()
14841493
labels = dict(all_values.values_list('id', 'name'))

templates/core/system_base.html

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -260,18 +260,23 @@ <h6 class="card-title">
260260

261261
{% if system_version.project_types.exists %}
262262
<h6 class="card-title">Project Type</h6>
263-
<p class="card-text">{{ system_version.project_types_str }}</p>
263+
<p class="card-text">
264+
{% for project_type in system_version.project_types.all %}{% if not forloop.first %}, {% endif %}<a class="card-title" href="{% url 'browse' %}?type={{ project_type.slug }}" title="View other {{ project_type.name }} systems">{{ project_type.name }}</a>{% endfor %}
265+
</p>
264266
{% endif %}
265267

266268
{% if system_version.meta.written_in.exists %}
267269
<h6 class="card-title">Written in</h6>
268270
<p class="card-text">
269271
{% for written_in in system_version.meta.written_in.all %}{% if not forloop.first %}, {% endif %}<a class="card-title" href="{% url 'browse' %}?programming={{ written_in.slug }}" title="View other systems that are written in {{ written_in.name }}">{{ written_in.name }}</a>{% endfor %}
272+
</p>
270273
{% endif %}
271274

272275
{% if system_version.meta.supported_languages.exists %}
273276
<h6 class="card-title">Supported languages</h6>
274-
<p class="card-text">{{ system_version.meta.supported_languages_str }}</p>
277+
<p class="card-text">
278+
{% for lang in system_version.meta.supported_languages.all %}{% if not forloop.first %}, {% endif %}<a class="card-title" href="{% url 'browse' %}?supported={{ lang.slug }}" title="View other systems that support {{ lang.name }}">{{ lang.name }}</a>{% endfor %}
279+
</p>
275280
{% endif %}
276281

277282
{% if system_version.meta.derived_from.exists %}
@@ -304,7 +309,9 @@ <h6 class="card-title">Compatible With</h6>
304309

305310
{% if system_version.meta.oses.exists %}
306311
<h6 class="card-title">Operating Systems</h6>
307-
<p class="card-text">{{ system_version.meta.oses_str }}</p>
312+
<p class="card-text">
313+
{% for os in system_version.meta.oses.all %}{% if not forloop.first %}, {% endif %}<a class="card-title" href="{% url 'browse' %}?os={{ os.slug }}" title="View other systems that support {{ os.name }} systems">{{ os.name }}</a>{% endfor %}
314+
</p>
308315
{% endif %}
309316

310317
{% if system_version.meta.licenses.exists %}

0 commit comments

Comments
 (0)