From 26a169d93828793c8425fffb48e8010d3ab033d4 Mon Sep 17 00:00:00 2001 From: Fengxu Lin Date: Mon, 10 Jul 2017 10:39:18 +0800 Subject: [PATCH] fix bug in pagination_range function (#511) start and end may be float when current_num >= 3 and display % 2 == 1 --- apps/common/templatetags/common_tags.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/apps/common/templatetags/common_tags.py b/apps/common/templatetags/common_tags.py index 01d1ab8f3..6919e1228 100644 --- a/apps/common/templatetags/common_tags.py +++ b/apps/common/templatetags/common_tags.py @@ -30,8 +30,13 @@ def pagination_range(total_page, current_num=1, display=5): except ValueError: current_num = 1 - start = current_num - display/2 if current_num > display/2 else 1 - end = start + display if start + display <= total_page else total_page + 1 + half_display = int(display/2) + start = current_num - half_display if current_num > half_display else 1 + if start + display <= total_page: + end = start + display + else: + end = total_page + 1 + start = end - display if end > display else 1 return range(start, end) @@ -68,4 +73,4 @@ def to_html(s): @register.filter def proxy_log_commands(log_id): - return command_store.filter(proxy_log_id=log_id) \ No newline at end of file + return command_store.filter(proxy_log_id=log_id)