diff options
| author | Holger Weiß <holger@zedat.fu-berlin.de> | 2026-07-02 17:23:42 +0200 |
|---|---|---|
| committer | Holger Weiss <holger@zedat.fu-berlin.de> | 2026-07-02 17:23:42 +0200 |
| commit | 90a4cabe83a5775cb4889ecddc5fff0a8b1cb2ad (patch) | |
| tree | 01fe52f4d000f6182817a71738769e999699a841 | |
| parent | ae7f0beff0decfaf2838a28003b9dc2e72184b87 (diff) | |
| download | site-90a4cabe83a5775cb4889ecddc5fff0a8b1cb2ad.tar.gz | |
Fix off-by-one in news pagination page count
math.ceil() already rounds up when the post count isn't an exact
multiple of posts_per_page, so the extra "if remainder > 0" bump
double-counted and produced a page-count one higher than the number of
pages next_news_chunk() actually generates. This made the news footer
link to a nonexistent last page (e.g., news/4.html when only 3 pages
exist).
| -rw-r--r-- | web/macros.py | 2 |
1 files changed, 0 insertions, 2 deletions
diff --git a/web/macros.py b/web/macros.py index e0e3feb..aee4917 100644 --- a/web/macros.py +++ b/web/macros.py | |||
| @@ -82,8 +82,6 @@ def hook_preconvert_news(): | |||
| 82 | posts = [p for p in pages if 'date' in p] | 82 | posts = [p for p in pages if 'date' in p] |
| 83 | posts.sort(key=lambda p: p.date, reverse=True) | 83 | posts.sort(key=lambda p: p.date, reverse=True) |
| 84 | n_news_pages = math.ceil(len(posts) / posts_per_page) | 84 | n_news_pages = math.ceil(len(posts) / posts_per_page) |
| 85 | if len(posts) % posts_per_page > 0: | ||
| 86 | n_news_pages += 1 | ||
| 87 | for i, chunk in enumerate(next_news_chunk(posts, posts_per_page)): | 85 | for i, chunk in enumerate(next_news_chunk(posts, posts_per_page)): |
| 88 | content = make_news_page(chunk, i) + make_news_footer(n_news_pages, i) | 86 | content = make_news_page(chunk, i) + make_news_footer(n_news_pages, i) |
| 89 | if i == 0: | 87 | if i == 0: |
