diff --git a/apps/assets/templates/assets/asset_list.html b/apps/assets/templates/assets/asset_list.html index 3841b34bbc6f8128c3092621dc9ac57b5b0bed97..ec905b119d5cb115cbb57eeb73d0905fc3483cc9 100644 --- a/apps/assets/templates/assets/asset_list.html +++ b/apps/assets/templates/assets/asset_list.html @@ -451,6 +451,14 @@ $(document).ready(function(){ }) .on('click', '#btn_asset_import', function () { var $form = $('#fm_asset_import'); + var action = $form.attr("action"); + var nodes = zTree.getSelectedNodes(); + var current_node; + if (nodes && nodes.length ===1 ){ + current_node = nodes[0]; + action += "?node_id=" + current_node.id; + $form.attr("action", action) + } $form.find('.help-block').remove(); function success (data) { if (data.valid === false) { diff --git a/apps/assets/views/asset.py b/apps/assets/views/asset.py index c3fbd4758d357f9b9ccff190d0faac48ba5d50ba..e279bc0ecb48465bd591109f38355eba45d8c2c5 100644 --- a/apps/assets/views/asset.py +++ b/apps/assets/views/asset.py @@ -245,6 +245,8 @@ class BulkImportAssetView(AdminUserRequiredMixin, JSONResponseMixin, FormView): form_class = forms.FileForm def form_valid(self, form): + node_id = self.request.GET.get("node_id") + node = get_object_or_none(Node, id=node_id) if node_id else Node.root() f = form.cleaned_data['file'] det_result = chardet.detect(f.read()) f.seek(0) # reset file seek index @@ -297,6 +299,8 @@ class BulkImportAssetView(AdminUserRequiredMixin, JSONResponseMixin, FormView): raise Exception(_('already exists')) with transaction.atomic(): asset = Asset.objects.create(**asset_dict) + if node: + asset.nodes.set([node]) created.append(asset_dict['hostname']) assets.append(asset) except Exception as e: