Explorar o código

Fixes #7169: Fix CSV import file upload

jeremystretch %!s(int64=4) %!d(string=hai) anos
pai
achega
0d7986e082

+ 1 - 0
docs/release-notes/version-3.0.md

@@ -5,6 +5,7 @@
 * [#7131](https://github.com/netbox-community/netbox/issues/7131) - Fix issue where Site fields were hidden when editing a VLAN group
 * [#7148](https://github.com/netbox-community/netbox/issues/7148) - Fix issue where static query parameters with multiple values were not queried properly
 * [#7153](https://github.com/netbox-community/netbox/issues/7153) - Allow clearing of assigned device type images
+* [#7169](https://github.com/netbox-community/netbox/issues/7169) - Fix CSV import file upload
 
 ---
 

+ 1 - 2
netbox/netbox/views/generic.py

@@ -21,8 +21,7 @@ from extras.signals import clear_webhooks
 from utilities.error_handlers import handle_protectederror
 from utilities.exceptions import AbortTransaction, PermissionsViolation
 from utilities.forms import (
-    BootstrapMixin, BulkRenameForm, ConfirmationForm, CSVDataField, CSVFileField, ImportForm, TableConfigForm,
-    restrict_form_fields,
+    BootstrapMixin, BulkRenameForm, ConfirmationForm, CSVDataField, CSVFileField, ImportForm, restrict_form_fields,
 )
 from utilities.permissions import get_permission_for_model
 from utilities.tables import paginate_table

+ 25 - 10
netbox/templates/generic/object_bulk_import.html

@@ -17,17 +17,32 @@
     {% block content %}
         <div class="row">
             <div class="col col-md-12 col-lg-10 offset-lg-1">
-                <form action="" method="post" class="form">
-                    {% csrf_token %}
-                    {% render_form form %}
-                    <div class="form-group">
-                        <div class="col col-md-12 text-end">
-                            {% if return_url %}
-                                <a href="{{ return_url }}" class="btn btn-outline-danger">Cancel</a>
-                            {% endif %}
-                            <button type="submit" class="btn btn-primary">Submit</button>
-                        </div>
+                <ul class="nav nav-pills px-3" role="tablist">
+                  <li class="nav-item" role="presentation">
+                    <button class="nav-link active" role="tab" type="button" data-bs-target="#csv" data-bs-toggle="tab">CSV Data</button>
+                  </li>
+                  <li class="nav-item" role="presentation">
+                    <button class="nav-link" role="tab" type="button" data-bs-target="#csv-file" data-bs-toggle="tab">CSV File Upload</button>
+                  </li>
+                </ul>
+                <form action="" method="post" enctype="multipart/form-data" class="form">
+                  {% csrf_token %}
+                  <div class="tab-content border-0">
+                    <div role="tabpanel" class="tab-pane active" id="csv">
+                      {% render_field form.csv %}
+                    </div>
+                    <div role="tabpanel" class="tab-pane" id="csv-file">
+                      {% render_field form.csv_file %}
                     </div>
+                  </div>
+                  <div class="form-group">
+                      <div class="col col-md-12 text-end">
+                          {% if return_url %}
+                              <a href="{{ return_url }}" class="btn btn-outline-danger">Cancel</a>
+                          {% endif %}
+                          <button type="submit" class="btn btn-primary">Submit</button>
+                      </div>
+                  </div>
                 </form>
                 {% if fields %}
                 <div class="row my-3">