mirror of
https://github.com/boostorg/website-v2.git
synced 2026-02-27 05:32:08 +00:00
✨ Add mini versions of library list pages
This commit is contained in:
@@ -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>/",
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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"""
|
||||
|
||||
|
||||
Reference in New Issue
Block a user