def refresh_cache_tags(self): old = self.cache_tags tags = list(self.tags.order_by('name').values_list('id', 'name')) self.cache_tags = ','.join(name for id, name in tags) self.cache_tag_ids = ','.join(str(id) for id, name in tags) if old != self.cache_tags: ncache.invalidate_namespace(FOLDER_NAMESPACE_FORMAT.format(self)) self.cache_searchcache = None if not getattr(self, '_no_save', None): self.save()
def add_or_remove_folder_task(folder_id, task_id, add): """Add or remove given task from the given folder.""" try: foldertask = FolderTask.objects.get( folder_id=folder_id, task_id=task_id) except: foldertask = None if foldertask and not add: foldertask.delete() changed = True elif not foldertask and add: info = FolderTask.objects.filter(folder_id=folder_id) \ .aggregate(Max('position'), Count('id')) position = max(info['position__max'], info['id__count']) + 1 FolderTask.objects.create( folder_id=folder_id, task_id=task_id, position=position) changed = True else: changed = False if changed: ncache.invalidate_namespace( FOLDER_NAMESPACE_FORMAT_ID.format(folder_id))
def _invalidate_evaluator_namespace(sender, **kwargs): if not hasattr(kwargs['instance'], '_dummy_update'): ncache.invalidate_namespace(EVALUATOR_NAMESPACE)
def _invalidate_on_folder_permissions_update(sender, **kwargs): # Invalidate itself. namespace = FOLDER_NAMESPACE_FORMAT.format(kwargs['instance']) ncache.invalidate_namespace(namespace)