Add latest option behavior to latest library and detail pages (#1218)

This commit is contained in:
Frank Wiles
2024-08-30 06:41:30 -05:00
committed by GitHub
parent 64fd0f87d1
commit 161d3b1387
3 changed files with 9 additions and 6 deletions

View File

@@ -60,7 +60,7 @@ class LibraryList(VersionAlertMixin, ListView):
"""Set the selected version in the cookies."""
valid_versions = Version.objects.version_dropdown_strict()
if version in [v.slug for v in valid_versions]:
if version in [v.slug for v in valid_versions] or version == "latest":
response.set_cookie(SELECTED_BOOST_VERSION_COOKIE_NAME, version)
else:
logger.warning(f"Attempted to set invalid version slug: {version}")
@@ -89,7 +89,7 @@ class LibraryList(VersionAlertMixin, ListView):
params["version"] = selected_boost_version
# default to the most recent version
if "version" not in params:
if "version" not in params or params["version"] == "latest":
# If no version is specified, show the most recent version.
version = Version.objects.most_recent()
if version:
@@ -132,10 +132,12 @@ class LibraryList(VersionAlertMixin, ListView):
context["category"] = Category.objects.get(
slug=self.request.GET["category"]
)
if "version" in self.request.GET:
context["version"] = Version.objects.get(slug=self.request.GET["version"])
else:
if "version" not in self.request.GET or self.request.GET["version"] == "latest":
context["version"] = Version.objects.most_recent()
else:
context["version"] = Version.objects.get(slug=self.request.GET["version"])
context["categories"] = self.get_categories(context["version"])
context["versions"] = self.get_versions()
context["library_list"] = self.get_queryset()

View File

@@ -26,7 +26,7 @@
name="version"
class="dropdown"
id="id_version">
{% comment %} <option>Filter by version</option> {% endcomment %}
<option value="latest" {% if version == "latest" %}selected="selected"{% endif %}>Latest</option>
{% for v in versions %}
<option value="{{ v.pk }}"
{% if version == v %}selected="selected"{% endif %}>{{ v.display_name }}</option>

View File

@@ -80,6 +80,7 @@
name="version"
class="dropdown py-2 ml-auto md:block h-[38px]"
id="id_version">
<option value="latest" {% if version == "latest" %}selected="selected"{% endif %}>Latest</option>
{% for v in versions %}
<option value="{{ v.slug }}" {% if version == v %}selected="selected"{% endif %}>{{ v.display_name }}</option>
{% endfor %}