make it possible to delete graph nodes again
This commit is contained in:
parent
ab0db6cb85
commit
0c34d348da
4 changed files with 35 additions and 1 deletions
|
@ -119,6 +119,9 @@ legend {
|
||||||
right: 8px;
|
right: 8px;
|
||||||
top: 8px;
|
top: 8px;
|
||||||
}
|
}
|
||||||
|
[data-active-node] form button {
|
||||||
|
margin-top: 5px;
|
||||||
|
}
|
||||||
[data-levels], [data-sublevels], #sidebar .nav, [data-modal-close] {
|
[data-levels], [data-sublevels], #sidebar .nav, [data-modal-close] {
|
||||||
display:none;
|
display:none;
|
||||||
}
|
}
|
||||||
|
|
|
@ -259,7 +259,12 @@ editor = {
|
||||||
var btn = $(this).data('btn');
|
var btn = $(this).data('btn');
|
||||||
if (btn !== undefined && btn !== null) {
|
if (btn !== undefined && btn !== null) {
|
||||||
if ($(btn).is('[name]')) {
|
if ($(btn).is('[name]')) {
|
||||||
data += '&' + $('<input>').attr('name', $(btn).attr('name')).val($(btn).val()).serialize();
|
var name = $(btn).attr('name');
|
||||||
|
data += '&' + $('<input>').attr('name', name).val($(btn).val()).serialize();
|
||||||
|
if (name === 'delete_confirm') {
|
||||||
|
editor._active_graph_node = null;
|
||||||
|
editor._active_graph_node_html = null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
var action = $(this).attr('action');
|
var action = $(this).attr('action');
|
||||||
|
|
|
@ -33,6 +33,11 @@
|
||||||
{% blocktrans %}in space {{ space_title }}{% endblocktrans %}<br>
|
{% blocktrans %}in space {{ space_title }}{% endblocktrans %}<br>
|
||||||
{% blocktrans %}on level {{ level_title }}{% endblocktrans %}
|
{% blocktrans %}on level {{ level_title }}{% endblocktrans %}
|
||||||
{% endwith %}
|
{% endwith %}
|
||||||
|
<form action="{{ request.path }}" method="post">
|
||||||
|
{% csrf_token %}
|
||||||
|
<input type="hidden" name="pk" value="{{ active_node.pk }}">
|
||||||
|
<button type="submit" class="btn btn-danger btn-xs" name="delete" value="1">{% trans 'Delete Node' %}</button>
|
||||||
|
</form>
|
||||||
</div>
|
</div>
|
||||||
{% else %}
|
{% else %}
|
||||||
<div data-active-node class="well well-sm"></div>
|
<div data-active-node class="well well-sm"></div>
|
||||||
|
|
|
@ -419,6 +419,27 @@ def graph_edit(request, level=None, space=None):
|
||||||
create_nodes = True
|
create_nodes = True
|
||||||
|
|
||||||
if request.method == 'POST':
|
if request.method == 'POST':
|
||||||
|
if request.POST.get('delete') == '1':
|
||||||
|
# Delete this graphnode!
|
||||||
|
node = get_object_or_404(GraphNode, pk=request.POST.get('pk'))
|
||||||
|
|
||||||
|
if request.POST.get('delete_confirm') == '1':
|
||||||
|
with request.changeset.lock_to_edit(request) as changeset:
|
||||||
|
if changeset.can_edit(request):
|
||||||
|
node.edges_from_here.all().delete()
|
||||||
|
node.edges_to_here.all().delete()
|
||||||
|
node.delete()
|
||||||
|
else:
|
||||||
|
messages.error(request, _('You can not edit changes on this changeset.'))
|
||||||
|
return redirect(request.path)
|
||||||
|
messages.success(request, _('Graph Node was successfully deleted.'))
|
||||||
|
return redirect(request.path)
|
||||||
|
return render(request, 'editor/delete.html', {
|
||||||
|
'model_title': GraphNode._meta.verbose_name,
|
||||||
|
'pk': node.pk,
|
||||||
|
'obj_title': node.title
|
||||||
|
})
|
||||||
|
|
||||||
edge_settings_form = GraphEdgeSettingsForm(instance=GraphEdge(), request=request, data=request.POST)
|
edge_settings_form = GraphEdgeSettingsForm(instance=GraphEdge(), request=request, data=request.POST)
|
||||||
graph_action_form = GraphEditorActionForm(request=request, allow_clicked_position=create_nodes,
|
graph_action_form = GraphEditorActionForm(request=request, allow_clicked_position=create_nodes,
|
||||||
data=request.POST)
|
data=request.POST)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue