diff --git a/app/controllers/breadcrumbs.py b/app/controllers/breadcrumbs.py index f72e5c1..0cb43ac 100644 --- a/app/controllers/breadcrumbs.py +++ b/app/controllers/breadcrumbs.py @@ -11,7 +11,7 @@ def create_collections_breadcrumb( bread_crumbs += [ s.BreadCrumb( type=s.BreadCrumbType.Collection, - url=url_for("book.collection_view", book_id=collection.version.book_id), + url="", label=collection.label, ) ] @@ -66,15 +66,26 @@ def create_breadcrumbs( ) ] - if collection_id: - collections_crumbs = [] - collection: m.Collection = db.session.get(m.Collection, collection_id) - create_collections_breadcrumb(collections_crumbs, collection) - collections_crumbs.reverse() - crumples += collections_crumbs - + section: m.Section = None if section_id: section: m.Section = db.session.get(m.Section, section_id) + + if collection_id and not section: + collections_crumbs = [] + collection: m.Collection = db.session.get(m.Collection, collection_id) + if not collection.is_root: + create_collections_breadcrumb(collections_crumbs, collection) + collections_crumbs.reverse() + crumples += collections_crumbs + + if section: + collections_crumbs = [] + collection: m.Collection = db.session.get(m.Collection, section.collection_id) + if not collection.is_root: + create_collections_breadcrumb(collections_crumbs, collection) + collections_crumbs.reverse() + crumples += collections_crumbs + crumples += [ s.BreadCrumb( type=s.BreadCrumbType.Section, diff --git a/tests/test_book.py b/tests/test_book.py index 197129c..5e7441d 100644 --- a/tests/test_book.py +++ b/tests/test_book.py @@ -458,7 +458,7 @@ def test_crud_subcollection(client: FlaskClient, runner: FlaskCliRunner): label="Test SubCollection #1 Label" ).first() assert sub_collection - assert sub_collection.is_leaf + assert not sub_collection.is_leaf assert sub_collection.parent_id == collection.id m.Collection( diff --git a/tests/test_breadcrumbs.py b/tests/test_breadcrumbs.py index 3dc4ca3..7fbb00b 100644 --- a/tests/test_breadcrumbs.py +++ b/tests/test_breadcrumbs.py @@ -6,13 +6,13 @@ from app import models as m, db def test_breadcrumbs(runner: FlaskCliRunner, app): runner.invoke(args=["db-populate"]) with app.app_context(), app.test_request_context(): - res = create_breadcrumbs(1, (1,), 1) + res = create_breadcrumbs(book_id=1, collection_id=1, section_id=1) assert len(res) == 4 book: m.Book = db.session.get(m.Book, 1) assert book assert book.owner.username in res[0].label assert res[1].label == book.label with app.app_context(), app.test_request_context(): - res = create_breadcrumbs(1, (), 1) + res = create_breadcrumbs(book_id=1, section_id=1) assert res - assert len(res) == 2 + assert len(res) == 4