Add mini versions of library list pages

This commit is contained in:
Lacey Williams Henschel
2023-05-23 16:09:23 -07:00
parent 6ad9f148b0
commit a691306569
3 changed files with 38 additions and 4 deletions

View File

@@ -25,7 +25,9 @@ from ak.views import (
from core.views import MarkdownTemplateView, StaticContentTemplateView
from libraries.views import (
LibraryList,
LibraryListMini,
LibraryListByCategory,
LibraryListByCategoryMini,
LibraryDetail,
)
from libraries.api import LibrarySearchView
@@ -95,11 +97,17 @@ urlpatterns = (
TemplateView.as_view(template_name="donate/donate.html"),
name="donate",
),
path(
"libraries/by-category/mini/",
LibraryListByCategoryMini.as_view(),
name="libraries-by-category-mini",
),
path(
"libraries/by-category/",
LibraryListByCategory.as_view(),
name="libraries-by-category",
),
path("libraries/mini/", LibraryListMini.as_view(), name="libraries-mini"),
path("libraries/", LibraryList.as_view(), name="libraries"),
path(
"libraries/<slug:slug>/",

View File

@@ -3,7 +3,7 @@ import datetime
from model_bakery import baker
def test_library_list(library_version, tp):
def test_library_list(library_version, tp, url_name="libraries"):
"""GET /libraries/"""
last_year = datetime.date.today() - datetime.timedelta(days=365)
v2 = baker.make("versions.Version", name="Version 1.78.0", release_date=last_year)
@@ -12,13 +12,18 @@ def test_library_list(library_version, tp):
name="sample",
)
baker.make("libraries.LibraryVersion", library=lib2, version=v2)
res = tp.get("libraries")
res = tp.get(url_name)
tp.response_200(res)
assert "library_list" in res.context
assert library_version.library in res.context["library_list"]
assert lib2 not in res.context["library_list"]
def test_library_list_mini(library_version, tp):
"""GET /libraries/mini/"""
test_library_list(library_version, tp, url_name="libraries-mini")
def test_library_list_no_pagination(library_version, tp):
"""Library list is not paginated."""
libs = [
@@ -64,16 +69,25 @@ def test_library_list_select_version(library_version, tp):
assert new_lib_version.library not in res.context["library_list"]
def test_library_list_by_category(library_version, category, tp):
def test_library_list_by_category(
library_version, category, tp, url="libraries-by-category"
):
"""GET /libraries/by-category/"""
library_version.library.categories.add(category)
res = tp.get("libraries-by-category")
res = tp.get(url)
tp.response_200(res)
assert "library_list" in res.context
assert "category" in res.context["library_list"][0]
assert "libraries" in res.context["library_list"][0]
def test_library_list_by_category_mini(library_version, category, tp):
"""GET /libraries/by-category/mini/"""
test_library_list_by_category(
library_version, category, tp, url="libraries-by-category-mini"
)
def test_library_detail(library_version, tp):
"""GET /libraries/{slug}/"""
library = library_version.library

View File

@@ -59,6 +59,12 @@ class LibraryList(CategoryMixin, ListView):
return context
class LibraryListMini(LibraryList):
"""Flat list version of LibraryList"""
template_name = "libraries/list.html"
class LibraryListByCategory(LibraryList):
"""List all Boost libraries sorted by Category."""
@@ -83,6 +89,12 @@ class LibraryListByCategory(LibraryList):
return results_by_category
class LibraryListByCategoryMini(LibraryListByCategory):
"""Flat list version of LibraryListByCategory"""
template_name = "libraries/list.html"
class LibraryDetail(CategoryMixin, FormMixin, DetailView):
"""Display a single Library in insolation"""