Esempio n. 1
0
    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()
Esempio n. 2
0
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))
Esempio n. 3
0
def _invalidate_evaluator_namespace(sender, **kwargs):
    if not hasattr(kwargs['instance'], '_dummy_update'):
        ncache.invalidate_namespace(EVALUATOR_NAMESPACE)
Esempio n. 4
0
def _invalidate_on_folder_permissions_update(sender, **kwargs):
    # Invalidate itself.
    namespace = FOLDER_NAMESPACE_FORMAT.format(kwargs['instance'])
    ncache.invalidate_namespace(namespace)