Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 0 additions & 12 deletions strictdoc/backend/sdoc/models/document.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@
SDocDocumentIF,
SDocElementIF,
SDocNodeIF,
SDocSectionIF,
)
from strictdoc.backend.sdoc.models.node import SDocNode
from strictdoc.backend.sdoc.models.type_system import (
Expand Down Expand Up @@ -194,17 +193,6 @@ def assign_meta(self, meta: DocumentMeta) -> None:
def has_any_nodes(self) -> bool:
return len(self.section_contents) > 0

def has_any_toc_nodes(self) -> bool:
for node_ in self.section_contents:
# Skip nodes without a TOC level.
if (
isinstance(node_, SDocSectionIF)
and node_.ng_resolved_custom_level == "None"
):
continue
return True
return False

def get_display_title(
self,
include_toc_number: bool = True, # noqa: ARG002
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# mypy: disable-error-code="no-untyped-call,no-untyped-def,union-attr"
from dataclasses import dataclass
from datetime import datetime
from typing import List, Optional, Union
from typing import Iterator, List, Optional, Union

from jinja2 import Template
from markupsafe import Markup
Expand All @@ -10,6 +10,7 @@
from strictdoc.backend.sdoc.models.document import SDocDocument
from strictdoc.backend.sdoc.models.document_grammar import GrammarElement
from strictdoc.backend.sdoc.models.document_view import ViewElement
from strictdoc.backend.sdoc.models.model import SDocElementIF
from strictdoc.backend.sdoc.models.node import SDocNode, SDocNodeField
from strictdoc.backend.sdoc.models.section import SDocSection
from strictdoc.core.document_tree import DocumentTree
Expand Down Expand Up @@ -302,9 +303,12 @@ def get_document_by_path(self, full_path: str) -> SDocDocument:
def get_grammar_elements(self) -> List[GrammarElement]:
return self.document.grammar.elements

def table_of_contents(self):
def table_of_contents(self) -> Iterator[SDocElementIF]:
yield from self.document_iterator.table_of_contents()

def document_has_any_toc_nodes(self) -> bool:
return any(self.table_of_contents())

def document_content_iterator(self):
yield from self.document_iterator.all_content(
print_fragments=True,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
{%- if view_object.document.has_any_toc_nodes() -%}
{%- if view_object.document_has_any_toc_nodes() -%}
<div class="pdf-toc" data-testid="pdf-toc-list">
<div class="pdf-toc-row">
<span class="pdf-toc-cell"></span>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,8 @@

reader = PdfReader("Output/html2pdf/pdf/input.pdf")

assert len(reader.pages) == 3, reader.pages
assert len(reader.pages) == 2, reader.pages

# page2_text = reader.pages[1].extract_text() # noqa: ERA001
# assert "Table of contents" not in page2_text # noqa: ERA001
page2_text = reader.pages[1].extract_text()
assert "2/2" in page2_text
assert "Hello world! 😊😊😊" in page2_text
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@

reader = PdfReader("Output/html2pdf/pdf/input.pdf")

assert len(reader.pages) == 3, reader.pages
assert len(reader.pages) == 2, reader.pages
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,8 @@

reader = PdfReader("Output/html2pdf/pdf/input.pdf")

assert len(reader.pages) == 3, reader.pages
assert len(reader.pages) == 2, reader.pages

# page2_text = reader.pages[1].extract_text() # noqa: ERA001
# assert "Table of contents" not in page2_text # noqa: ERA001
page2_text = reader.pages[1].extract_text()
assert "2/2" in page2_text
assert "Hello world! 😊😊😊" in page2_text
Loading