old_contents: from techism2.models import Event
  from datetime import datetime
  
  
  def get_tags():
      # TODO: cache, use django cache which uses GAE memcache
      dict_list = Event.objects.values('tags')
      tags = dict()    
      for dictionary in dict_list:
          for tag_list in dictionary.itervalues():
              if tag_list:
                  for tag in tag_list:
                      if tag not in tags:
                          tags[tag] = 0
                      tags[tag] += 1
      return tags
  
  
new_contents: from techism2.models import Event
  from datetime import datetime
  from django.core.cache import cache
  
  tags_cache_key = "tags"
  
  def get_tags():
      # Note: no synchronization, propably not possible on GAE
      tags = cache.get(tags_cache_key)
      
      if tags:
          return tags
      else:
          tags = __fetch_tags()
          cache.set(tags_cache_key, tags, 1800) # expire after 30 min
          return tags
  
  def __fetch_tags():
      dict_list = Event.objects.values('tags')
      tags = dict()    
      for dictionary in dict_list:
          for tag_list in dictionary.itervalues():
              if tag_list:
                  for tag in tag_list:
                      if tag not in tags:
                          tags[tag] = 0
                      tags[tag] += 1
      return tags
  
  
subject: Use Memcache to cache tags