From 00f0da32c639bdc9d343a4d0c4de133f8610dc3b Mon Sep 17 00:00:00 2001 From: yomguy Date: Tue, 15 Feb 2011 12:04:21 +0100 Subject: [PATCH] fix prev next when single item in coll --- telemeta/web/base.py | 46 ++++++++++++++++++++++++-------------------- 1 file changed, 25 insertions(+), 21 deletions(-) diff --git a/telemeta/web/base.py b/telemeta/web/base.py index 20f2f526..5218ed5f 100644 --- a/telemeta/web/base.py +++ b/telemeta/web/base.py @@ -130,27 +130,31 @@ class WebView(object): # Get previous and next items pks = [] items = MediaItem.objects.filter(collection=item.collection) - for it in items: - pks.append(it.pk) - pks.sort() - for pk in pks: - if pk == item.pk: - if pk == pks[0]: - previous_pk = pks[-1] - next_pk = pks[1] - elif pk == pks[-1]: - previous_pk = pks[-2] - next_pk = pks[0] - else: - previous_pk = pks[pks.index(pk)-1] - next_pk = pks[pks.index(pk)+1] - for it in items: - if it.pk == previous_pk: - previous = it - if it.pk == next_pk: - next = it - previous = previous.public_id - next = next.public_id + if len(items) > 1: + for it in items: + pks.append(it.pk) + pks.sort() + for pk in pks: + if pk == item.pk: + if pk == pks[0]: + previous_pk = pks[-1] + next_pk = pks[1] + elif pk == pks[-1]: + previous_pk = pks[-2] + next_pk = pks[0] + else: + previous_pk = pks[pks.index(pk)-1] + next_pk = pks[pks.index(pk)+1] + for it in items: + if it.pk == previous_pk: + previous = it + if it.pk == next_pk: + next = it + previous = previous.public_id + next = next.public_id + else: + previous = item.public_id + next = item.public_id return previous, next def item_detail(self, request, public_id, template='telemeta/mediaitem_detail.html'): -- 2.39.5