Changeset 39
- Timestamp:
- 06/06/09 06:43:29 (3 years ago)
- Location:
- plesonet_banners/trunk
- Files:
-
- 2 modified
-
models.py (modified) (3 diffs)
-
templatetags/banners_tags.py (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
plesonet_banners/trunk/models.py
r34 r39 3 3 from django.utils.translation import ugettext_lazy as _ 4 4 from django.contrib import admin 5 from django.core.cache import cache 6 7 BANNERS_CACHE_KEY = "all_menu_items" 8 ALL_BANNERS_CACHE_TIMEOUT = 60 * 10 5 9 6 10 ''' … … 29 33 return self.url 30 34 35 class PublishedBannersManager(models.Manager): 36 def get_query_set(self, banner_type): 37 return super(PublishedBannersManager, self).get_query_set().select_related().filter(bannerplace__is_published=True, is_published = True, bannertype=banner_type) 38 39 def get_type(self, banner_type): 40 result = cache.get(BANNERS_CACHE_KEY + str(banner_type)) 41 if result is None: 42 result = list(self.get_query_set(banner_type).all()) 43 cache.set(BANNERS_CACHE_KEY + str(banner_type), result, ALL_BANNERS_CACHE_TIMEOUT) 44 return result 45 46 31 47 class Banners(models.Model): 32 48 BANNER_TYPE = ( … … 52 68 one_page_only = models.BooleanField(_('Only in this URL'))#, core=True) 53 69 child_page_only = models.BooleanField(_('Only on childrens'))#, core=True) 70 71 published = PublishedBannersManager() 54 72 73 def save(self, *args, **kwargs): 74 super(MenuItem, self).save(*args, **kwargs) 75 cache.delete(BANNERS_CACHE_KEY + str(banner_type)) 76 77 def delete(self): 78 super(MenuItem, self).delete() 79 cache.delete(BANNERS_CACHE_KEY + str(banner_type)) 80 55 81 class Meta: 56 82 db_table = 'plesonet_banner' -
plesonet_banners/trunk/templatetags/banners_tags.py
r35 r39 12 12 url = context['request'].path 13 13 14 banners = Banners.objects.filter( 15 bannerplace__is_published=True, 16 is_published=True, 17 bannertype=banner_type) 14 #banners = Banners.objects.filter( 15 # bannerplace__is_published=True, 16 # is_published=True, 17 # bannertype=banner_type) 18 19 banners = Banners.published.get_type(banner_type) 18 20 19 21

