Changeset 32 for plesonet_banners/trunk/templatetags/banners_tags.py
- Timestamp:
- 05/07/09 19:39:02 (3 years ago)
- Files:
-
- 1 modified
Legend:
- Unmodified
- Added
- Removed
-
plesonet_banners/trunk/templatetags/banners_tags.py
r1 r32 2 2 from apps.plesonet_banners.models import Bannerpage, Banners 3 3 from django.template import Library 4 from apps.lib.threadlocals import get_request 5 6 from scache.tags import cached_inclusion_tag 7 from django.db.models import signals 4 8 5 9 register = Library() 10 6 11 7 12 @register.inclusion_tag('plesonet_banners/show_banner.html', takes_context=True) … … 11 16 url = context['request'].path 12 17 13 # banner only this page14 18 banners = Banners.objects.filter( 15 19 bannerplace__is_published=True, 16 bannerplace__url__iexact=url,17 20 is_published=True, 18 21 bannertype=banner_type) 19 22 20 if banners: 21 return {'banner': banners[0]} 23 24 #better to find proper banner on client-side, than making a dozen of sql requests 25 for b in banners: 26 if b.bannerplace.url == url and b.child_page_only == False: 27 return {'banner': b} 22 28 23 29 # last word 24 30 url = url.rsplit('/',1)[0] 31 if url == "": 32 return {'banner': None} 25 33 26 34 # parent banners … … 28 36 url = url.rsplit('/',1)[0] 29 37 select_url = url + '/' 30 31 banners = Banners.objects.filter( 32 bannerplace__is_published=True, 33 bannerplace__url__iexact=select_url, 34 is_published=True, 35 bannertype=banner_type) 36 37 if banners: 38 if not banners[0].one_page_only: 39 banner = banners[0] 40 break 38 39 for b in banners: 40 if b.bannerplace.url == select_url and not b.one_page_only: 41 return {'banner': b} 41 42 42 43 if url.find('/') : break 43 44 44 return {'banner': banner}45 return {'banner': None}

