mirror of
				https://github.com/netbox-community/netbox.git
				synced 2024-05-10 07:54:54 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			157 lines
		
	
	
		
			8.9 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			157 lines
		
	
	
		
			8.9 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
{% extends 'base/layout.html' %}
 | 
						|
{% load helpers %}
 | 
						|
{% load form_helpers %}
 | 
						|
 | 
						|
{% comment %}
 | 
						|
Context:
 | 
						|
  model: The model class being imported
 | 
						|
  form: The bulk import form
 | 
						|
  fields: A dictionary of form fields, to display import options (optional)
 | 
						|
  return_url: The URL to which the user is redirected after submitting the form
 | 
						|
{% endcomment %}
 | 
						|
 | 
						|
{% block title %}{{ model|meta:"verbose_name"|bettertitle }} Bulk Import{% endblock %}
 | 
						|
 | 
						|
{% block tabs %}
 | 
						|
  <ul class="nav nav-tabs px-3">
 | 
						|
    <li class="nav-item" role="presentation">
 | 
						|
      <a class ="nav-link active" href="#">Bulk Import</a>
 | 
						|
    </li>
 | 
						|
  </ul>
 | 
						|
{% endblock tabs %}
 | 
						|
 | 
						|
{% block content-wrapper %}
 | 
						|
  <div class="tab-content">
 | 
						|
    {% block content %}
 | 
						|
        <div class="row">
 | 
						|
            <div class="col col-md-12 col-lg-10 offset-lg-1">
 | 
						|
                <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">
 | 
						|
                      <button type="submit" class="btn btn-primary">Submit</button>
 | 
						|
                      {% if return_url %}
 | 
						|
                        <a href="{{ return_url }}" class="btn btn-outline-danger">Cancel</a>
 | 
						|
                      {% endif %}
 | 
						|
                    </div>
 | 
						|
                  </div>
 | 
						|
                </form>
 | 
						|
                {% if fields %}
 | 
						|
                <div class="row my-3">
 | 
						|
                    <div class="col col-md-12">
 | 
						|
                        <div class="card">
 | 
						|
                            <h5 class="card-header">
 | 
						|
                                CSV Field Options
 | 
						|
                            </h5>
 | 
						|
                            <div class="card-body">
 | 
						|
                                <table class="table">
 | 
						|
                                    <tr>
 | 
						|
                                        <th>Field</th>
 | 
						|
                                        <th>Required</th>
 | 
						|
                                        <th>Accessor</th>
 | 
						|
                                        <th>Description</th>
 | 
						|
                                    </tr>
 | 
						|
                                    {% for name, field in fields.items %}
 | 
						|
                                        <tr>
 | 
						|
                                            <td>
 | 
						|
                                                <code>{{ name }}</code>
 | 
						|
                                            </td>
 | 
						|
                                            <td>
 | 
						|
                                                {% if field.required %}
 | 
						|
                                                    {% checkmark True true="Required" %}
 | 
						|
                                                {% else %}
 | 
						|
                                                    {{ ''|placeholder }}
 | 
						|
                                                {% endif %}
 | 
						|
                                            </td>
 | 
						|
                                            <td>
 | 
						|
                                                {% if field.to_field_name %}
 | 
						|
                                                    <code>{{ field.to_field_name }}</code>
 | 
						|
                                                {% else %}
 | 
						|
                                                    {{ ''|placeholder }}
 | 
						|
                                                {% endif %}
 | 
						|
                                            </td>
 | 
						|
                                            <td>
 | 
						|
                                                {% if field.STATIC_CHOICES %}
 | 
						|
                                                    <button type="button" class="btn btn-link btn-sm float-end" data-bs-toggle="modal" data-bs-target="#{{ name }}_choices">
 | 
						|
                                                        <i class="mdi mdi-help-circle"></i>
 | 
						|
                                                    </button>
 | 
						|
                                                    <div class="modal fade" id="{{ name }}_choices" tabindex="-1" role="dialog">
 | 
						|
                                                        <div class="modal-dialog" role="document">
 | 
						|
                                                            <div class="modal-content">
 | 
						|
                                                                <div class="modal-header">
 | 
						|
                                                                    <h5 class="modal-title"><code>{{ name }}</code> Choices</h5>
 | 
						|
                                                                    <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
 | 
						|
                                                                </div>
 | 
						|
                                                                <div class="modal-body">
 | 
						|
                                                                    <table class="table table-striped">
 | 
						|
                                                                        <tr>
 | 
						|
                                                                            <th>Import Value</th>
 | 
						|
                                                                            <th>Label</th>
 | 
						|
                                                                        </tr>
 | 
						|
                                                                        {% for value, label in field.choices %}
 | 
						|
                                                                        {% if value %}
 | 
						|
                                                                        <tr>
 | 
						|
                                                                            <td>
 | 
						|
                                                                                <samp>{{ value }}</samp>
 | 
						|
                                                                            </td>
 | 
						|
                                                                            <td>
 | 
						|
                                                                                {{ label }}
 | 
						|
                                                                            </td>
 | 
						|
                                                                        </tr>
 | 
						|
                                                                        {% endif %}
 | 
						|
                                                                        {% endfor %}
 | 
						|
                                                                    </table>
 | 
						|
                                                                </div>
 | 
						|
                                                            </div>
 | 
						|
                                                        </div>
 | 
						|
                                                    </div>
 | 
						|
                                                {% endif %}
 | 
						|
                                                {% if field.help_text %}
 | 
						|
                                                    {{ field.help_text }}<br />
 | 
						|
                                                {% elif field.label %}
 | 
						|
                                                    {{ field.label }}<br />
 | 
						|
                                                {% endif %}
 | 
						|
                                                {% if field|widget_type == 'dateinput' %}
 | 
						|
                                                    <small class="text-muted">Format: YYYY-MM-DD</small>
 | 
						|
                                                {% elif field|widget_type == 'checkboxinput' %}
 | 
						|
                                                    <small class="text-muted">Specify "true" or "false"</small>
 | 
						|
                                                {% endif %}
 | 
						|
                                            </td>
 | 
						|
                                        </tr>
 | 
						|
                                    {% endfor %}
 | 
						|
                                </table>
 | 
						|
                            </div>
 | 
						|
                        </div>
 | 
						|
                    </div>
 | 
						|
                </div>
 | 
						|
                <p class="small text-muted">
 | 
						|
                    <i class="mdi mdi-check-bold text-success"></i> Required fields <strong>must</strong> be specified for all
 | 
						|
                    objects.
 | 
						|
                </p>
 | 
						|
                <p class="small text-muted">
 | 
						|
                    <i class="mdi mdi-information-outline"></i> Related objects may be referenced by any unique attribute.
 | 
						|
                    For example, <code>vrf.rd</code> would identify a VRF by its route distinguisher.
 | 
						|
                </p>
 | 
						|
                {% endif %}
 | 
						|
            </div>
 | 
						|
        </div>
 | 
						|
    {% endblock content %}
 | 
						|
  </div>
 | 
						|
{% endblock content-wrapper %}
 |