def remove_tags_on_last_obj_delete(context, event): root = find_root(context) for docid in root.catalog.search(cluster = context.cluster)[1]: path = root.document_map.address_for_docid(docid) obj = find_resource(root, path) if obj != context: return #This point should never be reached if other items exist ctags = IClusterTags(root, {}) ctags.pop(context.cluster, None)
def deferred_existing_cluster_tags(node, kw): """ Make sure tags don't get overwritten when forms are invoket on new objects that aren't attached to the resource tree yet. """ request = kw['request'] cluster_id = request.GET.get('cluster', '') view = kw['view'] ctags = IClusterTags(view.root, {}) return ctags.get(cluster_id, ())
def tags(self): request = get_current_request() root = find_root(request.context) ctags = IClusterTags(root, {}) return ctags.get(self.cluster, ())