diff options
| author | Étienne Loks <etienne.loks@iggdrasil.net> | 2016-09-05 20:48:23 +0200 |
|---|---|---|
| committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2016-09-05 20:48:23 +0200 |
| commit | f9b8523fd3ec4e06ff62b12d9c4e5c721bf5a4ca (patch) | |
| tree | e3c7a035a53a87210294f14cb5f6ebd0f44bad65 /ishtar_common/utils.py | |
| parent | 90957dea9cc882f6f7ff0f54da664d12c4143c29 (diff) | |
| parent | 180d93d47cfae279ef927ea5fa736fa1fc37c553 (diff) | |
| download | Ishtar-f9b8523fd3ec4e06ff62b12d9c4e5c721bf5a4ca.tar.bz2 Ishtar-f9b8523fd3ec4e06ff62b12d9c4e5c721bf5a4ca.zip | |
Merge branch 'v0.9' into wheezy
Diffstat (limited to 'ishtar_common/utils.py')
| -rw-r--r-- | ishtar_common/utils.py | 29 |
1 files changed, 22 insertions, 7 deletions
diff --git a/ishtar_common/utils.py b/ishtar_common/utils.py index cb45d32e1..ca9193204 100644 --- a/ishtar_common/utils.py +++ b/ishtar_common/utils.py @@ -68,6 +68,9 @@ def mode(array): def _get_image_link(item): + # manage missing images + if not item.thumbnail or not item.thumbnail.url: + return "" return mark_safe(u""" <div class="welcome-image"> <img src="{}"/><br/> @@ -86,13 +89,25 @@ def _get_image_link(item): unicode(_(u"Load another random image?")))) -def get_random_item_image_link(): +def get_random_item_image_link(request): from archaeological_operations.models import Operation from archaeological_context_records.models import ContextRecord from archaeological_finds.models import Find - ope_image_nb = Operation.objects.filter(image__isnull=False).count() - cr_image_nb = ContextRecord.objects.filter(image__isnull=False).count() - find_image_nb = Find.objects.filter(image__isnull=False).count() + + ope_image_nb, cr_image_nb, find_image_nb = 0, 0, 0 + if request.user.has_perm('archaeological_operations.view_operation', + Operation): + ope_image_nb = Operation.objects.filter( + thumbnail__isnull=False).count() + if request.user.has_perm( + 'archaeological_context_records.view_contextrecord', + ContextRecord): + cr_image_nb = ContextRecord.objects.filter( + thumbnail__isnull=False).count() + if request.user.has_perm('archaeological_finds.view_find', + Find): + find_image_nb = Find.objects.filter( + thumbnail__isnull=False).count() image_total = ope_image_nb + cr_image_nb + find_image_nb if not image_total: @@ -101,14 +116,14 @@ def get_random_item_image_link(): 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(image__isnull=False).all()[image_nb]) + Operation.objects.filter(thumbnail__isnull=False).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(image__isnull=False).all()[ + ContextRecord.objects.filter(thumbnail__isnull=False).all()[ image_nb - ope_image_nb]) if image_nb >= (cr_image_nb + ope_image_nb): return _get_image_link( - Find.objects.filter(image__isnull=False).all()[ + Find.objects.filter(thumbnail__isnull=False).all()[ image_nb - ope_image_nb - cr_image_nb]) # should never happen except in case of deletion during the excution return '' |
