From 55f12b2202735a7d05d46de494dbf018026485c3 Mon Sep 17 00:00:00 2001 From: Dirk Alders Date: Sun, 23 Feb 2020 17:50:54 +0100 Subject: [PATCH] Keep repeat mode in url_userview, if item is next or previous --- __init__.py | 3 +++ views/userviews.py | 14 +++++++++----- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/__init__.py b/__init__.py index 6a3b822..4939635 100644 --- a/__init__.py +++ b/__init__.py @@ -9,6 +9,7 @@ SHUFFLE_ENABLE = 2 REPEAT_DISABLE = 0 REPEAT_ENABLE = 1 +REPEAT_KEEP = 2 SEARCH_DISABLE = 0 SEARCH_KEEP = 1 @@ -72,6 +73,8 @@ def url_args(request, repeat=REPEAT_DISABLE, shuffle=SHUFFLE_KEEP, search=SEARCH args_d = {} if repeat == REPEAT_ENABLE: args_d['repeat'] = None + elif repeat == REPEAT_KEEP and is_repeatview(request): + args_d['repeat'] = None if shuffle == SHUFFLE_ENABLE: args_d['shuffle'] = binascii.hexlify(os.urandom(24)).decode('utf-8') elif shuffle == SHUFFLE_KEEP: diff --git a/views/userviews.py b/views/userviews.py index d1e0a1a..04bdb31 100644 --- a/views/userviews.py +++ b/views/userviews.py @@ -30,8 +30,8 @@ def get_wrapper_class(full_path): }.get(get_item_type(full_path), base_view) -def get_wrapper_instance(full_path, request): - return get_wrapper_class(full_path)(request, full_path) +def get_wrapper_instance(full_path, request, is_nxt_prv_item=False): + return get_wrapper_class(full_path)(request, full_path, is_nxt_prv_item) def random_copy(request, lst): @@ -46,9 +46,10 @@ def random_copy(request, lst): class base_view(object): - def __init__(self, request, full_path): + def __init__(self, request, full_path, is_nxt_prv_item): self.request = request self.full_path = full_path + self.is_nxt_prv_item = is_nxt_prv_item # self.item = get_item_by_rel_path(pygal.get_rel_path(full_path)) if self.item is None: @@ -227,7 +228,10 @@ class base_view(object): @property def url_userview(self): - return pygal.url_userview(self.request, self.item.rel_path, search=pygal.SEARCH_KEEP) + if self.is_nxt_prv_item: + return pygal.url_userview(self.request, self.item.rel_path, search=pygal.SEARCH_KEEP, repeat=pygal.REPEAT_KEEP) + else: + return pygal.url_userview(self.request, self.item.rel_path, search=pygal.SEARCH_KEEP, repeat=pygal.REPEAT_DISABLE) @property def url_webnail(self): @@ -256,7 +260,7 @@ class base_view(object): for i in range(i + direction, i + direction * lgt, direction): full_path = fp_il[i % lgt] if get_item_type(full_path) != TYPE_FOLDER: - return get_wrapper_instance(full_path, self.request) + return get_wrapper_instance(full_path, self.request, is_nxt_prv_item=True) return self @property