diff options
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 |
commit | fce7d00537de1b1c7ff85e2c81581241494e7a04 (patch) | |
tree | 853abbac154784eb4d9fdec9bdbd83eb179bb398 /ishtar_common | |
parent | 6fef57483fddfbd5003cf72e34d0b370e02f5e95 (diff) | |
download | Ishtar-fce7d00537de1b1c7ff85e2c81581241494e7a04.tar.bz2 Ishtar-fce7d00537de1b1c7ff85e2c81581241494e7a04.zip |
Fix random image choice (refs #3274)
Diffstat (limited to 'ishtar_common')
-rw-r--r-- | ishtar_common/utils.py | 27 |
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 '' |