Ejemplo n.º 1
0
def generic_unlink_related(node_class, other_node_class, rel_name,
                           request, labels, params, node_id):
    node = get_node_by_id(node_class, node_id)
    other_node_id = int(params['_other_node_id'])
    other_node = get_node_by_id(other_node_class, other_node_id)
    rel = getattr(node, rel_name)
    rel.disconnect(other_node)
Ejemplo n.º 2
0
def generic_link_related(node_class, other_node_class, rel_name,
                         request, labels, params, node_id):
    node = get_node_by_id(node_class, node_id)
    form = form_for_node_link(other_node_class, params)
    if form.is_valid():
        other_node_id = int(form.cleaned_data['link_to'])
        other_node = get_node_by_id(other_node_class, other_node_id)
        rel = getattr(node, rel_name)
        rel.connect(other_node)
        return node, other_node
Ejemplo n.º 3
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
Ejemplo n.º 4
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
Ejemplo n.º 5
0
 def get_context_data(self, **kwargs):
     data = super().get_context_data(**kwargs)
     node = get_node_by_id(self.model, int(self.kwargs['id']))
     data[self.context_name] = node
     return data
Ejemplo n.º 6
0
def decode_node_url(url):
    node_type, node_id = urlsplit(url).path.split('/')[1:3]
    node_id = int(node_id)
    node_class = DECODE_NODE_MAP[node_type]
    node = get_node_by_id(node_class, node_id)
    return node, node_type
Ejemplo n.º 7
0
def generic_delete(node_class, request, labels, params, node_id):
    node = get_node_by_id(node_class, node_id)
    node.delete()
Ejemplo n.º 8
0
 def get_object(self, request, *args, **kwargs):
     id = kwargs['id']
     person = get_node_by_id(Person, int(id))
     return person