def register_delete_update(node_class): node_labels = label_string(node_class.inherited_labels()) @command(node_labels, 'delete') def delete(request, labels, params, node_id): generic_delete(node_class, request, labels, params, node_id) @command(node_labels, 'update') def update(request, labels, params, node_id): generic_update_node(node_class, request, labels, params, node_id)
def register_link_unlink(node_class, other_node_class, rel_name): node_labels = label_string(node_class.inherited_labels()) @command(node_labels, 'link', rel_name) def link(request, labels, params, node_id): generic_link_related(node_class, other_node_class, rel_name, request, labels, params, node_id) @command(node_labels, 'unlink', rel_name) def unlink(request, labels, params, node_id): generic_unlink_related(node_class, other_node_class, rel_name, request, labels, params, node_id)
def generic_create_related(node_class, other_node_class, rel_name, request, labels, params, node_id): node = get_node_by_id(node_class, node_id) other_labels = label_string(other_node_class.inherited_labels()) params = editable_params(params, other_labels) form = form_for_node_properties(other_node_class, params.keys(), params) if form.is_valid(): other_node = create_node_from_params(other_node_class, form.cleaned_data) rel = getattr(node, rel_name) rel.connect(other_node) return node, other_node
def register_create_related(node_class, other_node_class, rel_name): node_labels = label_string(node_class.inherited_labels()) @command(node_labels, 'create', rel_name) def create(request, labels, params, node_id): generic_create_related(node_class, other_node_class, rel_name, request, labels, params, node_id)