feat: Support asset tree node drag to another one

pull/13128/head
Bai 2024-04-24 18:03:19 +08:00 committed by 老广
parent 9b20b67039
commit 42054c7989
2 changed files with 5 additions and 1 deletions

View File

@ -22,6 +22,7 @@ from orgs.utils import current_org
from rbac.permissions import RBACPermission from rbac.permissions import RBACPermission
from .. import serializers from .. import serializers
from ..models import Node from ..models import Node
from ..signal_handlers import update_nodes_assets_amount
from ..tasks import ( from ..tasks import (
update_node_assets_hardware_info_manual, update_node_assets_hardware_info_manual,
test_node_assets_connectivity_manual, test_node_assets_connectivity_manual,
@ -94,6 +95,7 @@ class NodeAddChildrenApi(generics.UpdateAPIView):
children = Node.objects.filter(id__in=node_ids) children = Node.objects.filter(id__in=node_ids)
for node in children: for node in children:
node.parent = instance node.parent = instance
update_nodes_assets_amount.delay(ttl=5, node_ids=(instance.id,))
return Response("OK") return Response("OK")

View File

@ -204,6 +204,8 @@ def merge_delay_run(ttl=5, key=None):
def delay(func, *args, **kwargs): def delay(func, *args, **kwargs):
from orgs.utils import get_current_org from orgs.utils import get_current_org
# 每次调用 delay 时可以指定本次调用的 ttl
current_ttl = kwargs.pop('ttl', ttl)
suffix_key_func = key if key else default_suffix_key suffix_key_func = key if key else default_suffix_key
org = get_current_org() org = get_current_org()
func_name = f'{func.__module__}_{func.__name__}' func_name = f'{func.__module__}_{func.__name__}'
@ -220,7 +222,7 @@ def merge_delay_run(ttl=5, key=None):
else: else:
cache_kwargs[k] = cache_kwargs[k].union(v) cache_kwargs[k] = cache_kwargs[k].union(v)
_loop_debouncer_func_args_cache[cache_key] = cache_kwargs _loop_debouncer_func_args_cache[cache_key] = cache_kwargs
run_debouncer_func(cache_key, org, ttl, func, *args, **cache_kwargs) run_debouncer_func(cache_key, org, current_ttl, func, *args, **cache_kwargs)
def apply(func, sync=False, *args, **kwargs): def apply(func, sync=False, *args, **kwargs):
if sync: if sync: