summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2016-10-22 11:10:48 +0200
committerÉtienne Loks <etienne.loks@iggdrasil.net>2016-10-22 11:10:48 +0200
commitfce7d00537de1b1c7ff85e2c81581241494e7a04 (patch)
tree853abbac154784eb4d9fdec9bdbd83eb179bb398
parent6fef57483fddfbd5003cf72e34d0b370e02f5e95 (diff)
downloadIshtar-fce7d00537de1b1c7ff85e2c81581241494e7a04.tar.bz2
Ishtar-fce7d00537de1b1c7ff85e2c81581241494e7a04.zip
Fix random image choice (refs #3274)
-rw-r--r--ishtar_common/utils.py27
1 files changed, 13 insertions, 14 deletions
diff --git a/ishtar_common/utils.py b/ishtar_common/utils.py
index 82d4f2caa..6c1b70863 100644
--- a/ishtar_common/utils.py
+++ b/ishtar_common/utils.py
@@ -110,19 +110,22 @@ def get_random_item_image_link(request):
from archaeological_finds.models import Find
ope_image_nb, cr_image_nb, find_image_nb = 0, 0, 0
+ q_ope = Operation.objects.filter(
+ thumbnail__isnull=False).exclude(thumbnail='')
+ q_cr = ContextRecord.objects.filter(
+ thumbnail__isnull=False).exclude(thumbnail='')
+ q_find = Find.objects.filter(
+ thumbnail__isnull=False).exclude(thumbnail='')
if request.user.has_perm('archaeological_operations.view_operation',
Operation):
- ope_image_nb = Operation.objects.filter(
- thumbnail__isnull=False).count()
+ ope_image_nb = q_ope.count()
if request.user.has_perm(
'archaeological_context_records.view_contextrecord',
ContextRecord):
- cr_image_nb = ContextRecord.objects.filter(
- thumbnail__isnull=False).count()
+ cr_image_nb = q_cr.count()
if request.user.has_perm('archaeological_finds.view_find',
Find):
- find_image_nb = Find.objects.filter(
- thumbnail__isnull=False).count()
+ find_image_nb = q_find.count()
image_total = ope_image_nb + cr_image_nb + find_image_nb
if not image_total:
@@ -130,15 +133,11 @@ def get_random_item_image_link(request):
image_nb = random.randint(0, image_total - 1)
if image_nb >= 0 and image_nb < ope_image_nb:
- return _get_image_link(
- Operation.objects.filter(thumbnail__isnull=False).all()[image_nb])
+ return _get_image_link(q_ope.all()[image_nb])
if image_nb >= ope_image_nb and image_nb < (cr_image_nb + ope_image_nb):
- return _get_image_link(
- ContextRecord.objects.filter(thumbnail__isnull=False).all()[
- image_nb - ope_image_nb])
+ return _get_image_link(q_cr.all()[image_nb - ope_image_nb])
if image_nb >= (cr_image_nb + ope_image_nb):
- return _get_image_link(
- Find.objects.filter(thumbnail__isnull=False).all()[
- image_nb - ope_image_nb - cr_image_nb])
+ return _get_image_link(q_find.all()[
+ image_nb - ope_image_nb - cr_image_nb])
# should never happen except in case of deletion during the excution
return ''