delete nodes by clicking on them
This commit is contained in:
parent
ffb002c1e1
commit
684450424a
2 changed files with 17 additions and 0 deletions
|
@ -239,6 +239,7 @@ class GraphEditorSettingsForm(Form):
|
|||
('deactivate', _('deactivate')),
|
||||
('toggle', _('toggle')),
|
||||
('set_space_transfer', _('set space transfer')),
|
||||
('delete', _('delete node')),
|
||||
('noop', _('do nothing')),
|
||||
), initial='connect_or_toggle')
|
||||
|
||||
|
|
|
@ -442,6 +442,22 @@ def graph_edit(request, level=None, space=None):
|
|||
messages.success(request, _('Space transfer set.'))
|
||||
else:
|
||||
messages.error(request, _('You can not edit changes on this changeset.'))
|
||||
elif node_click_setting == 'delete':
|
||||
with request.changeset.lock_to_edit(request) as changeset:
|
||||
if changeset.can_edit(request):
|
||||
try:
|
||||
if not request.changeset.get_changed_object(clicked_node).can_delete():
|
||||
raise PermissionError
|
||||
except (ObjectDoesNotExist, PermissionError):
|
||||
messages.error(request, _('This node is connected to other nodes.'))
|
||||
else:
|
||||
clicked_node.delete()
|
||||
if clicked_node == active_node:
|
||||
active_node = None
|
||||
set_active_node = True
|
||||
messages.success(request, _('Node deleted.'))
|
||||
else:
|
||||
messages.error(request, _('You can not edit changes on this changeset.'))
|
||||
|
||||
elif clicked_node is None and clicked_position is not None:
|
||||
click_anywhere_setting = graph_editing_settings['click_anywhere']
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue