summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHolger Weiß <holger@zedat.fu-berlin.de>2026-07-02 17:23:42 +0200
committerHolger Weiss <holger@zedat.fu-berlin.de>2026-07-02 17:23:42 +0200
commit90a4cabe83a5775cb4889ecddc5fff0a8b1cb2ad (patch)
tree01fe52f4d000f6182817a71738769e999699a841
parentae7f0beff0decfaf2838a28003b9dc2e72184b87 (diff)
downloadsite-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.py2
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: