Esempio n. 1
0
def generic_update_node(node_class, request, labels, params, node_id):
    node = get_node_by_id(node_class, node_id)
    params = editable_params(params, labels)
    form = form_for_node_properties(node, params.keys(), params)
    if form.is_valid():
        set_node_properties_from_params(node, form.cleaned_data)
        node.save()
        return node
Esempio n. 2
0
def generic_update_rel(rel_class, request, labels, params, node_id):
    labels = labels.replace(')-[', ')-[r')
    query = 'MATCH ({}) WHERE ID(r)={{this}} RETURN r'.format(labels)
    query_params = dict(this=node_id)
    results, meta = db.cypher_query(query, query_params)
    rel = rel_class.inflate(results[0][0])
    form = form_for_node_properties(rel, params.keys(), params)
    if form.is_valid():
        set_node_properties_from_params(rel, form.cleaned_data)
        rel.save()
        return rel
Esempio n. 3
0
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