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 | |
| parent | 6fef57483fddfbd5003cf72e34d0b370e02f5e95 (diff) | |
| download | Ishtar-fce7d00537de1b1c7ff85e2c81581241494e7a04.tar.bz2 Ishtar-fce7d00537de1b1c7ff85e2c81581241494e7a04.zip | |
Fix random image choice (refs #3274)
| -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 '' | 
