{% extends 'base.html' %} {% load crispy_forms_tags %} {% block content %} <div class="container"> <div class="row"> <div class="col-md"> <h2>Components</h2> <form action="" method="get"> <div class="input-group mb-3"> <input class="form-control" name="search" type="search" placeholder="Search Component..." {% if search_string %}value="{{search_string}}"{% endif %}> <button type="submit" class="btn btn-primary"> <i class="bi bi-search"></i> </button> <button class="btn btn-secondary" type="button" data-bs-toggle="collapse" href="#advanced-search-collapse">Advanced <i class="bi bi-search"></i></button> <button class="btn btn-success" type="button" data-bs-toggle="modal" data-bs-target="#comp-edit-modal"><i class="bi bi-plus-circle"></i> Add Component</button> <button class="btn btn-success" type="button" data-bs-toggle="modal" data-bs-target="#comp-import-modal"><i class="bi bi-plus-circle"></i> Import CSV</button> </div> </form> <div class="collapse mb-3{% if advanced_search_shown %} show{% endif %}" id="advanced-search-collapse" aria-expanded="{% if advanced_search_shown %}true{% else %}false{% endif %}"> <form method="POST"> <div class="row"> <div class="col-sm"> {% crispy advanced_search_form %} </div> {{ advanced_search_param_formset.management_form }} <div class="col-sm"> {% for f in advanced_search_param_formset %} {% crispy f %} {% endfor %} </div> <input type="submit" name="submit-advanced-search" value="Search" class="btn btn-success"> </div> </form> </div> <div class="list-group mb-3"> {% for comp in components %} <a href="{% url 'parts-components-detail' uuid=comp.id %}" class="text-decoration-none"> <li class="list-group-item list-group-item-action d-flex align-items-center"> <div class="flex-shrink-0"> {% if comp.get_resolved_image %} <img src="{{comp.get_resolved_image}}" class="component-img-small" alt="{{ comp.name }}" class="mr-3"> {% else %} {% load static %} <img src="{% static 'css/icons/card-image.svg' %}" class="component-img-def-small" alt="{{ comp.name }}" class="mr-3"> {% endif %} </div> <div class="flex-grow-1 ms-3"> <h6 class="mt-0 text-primary">{{ comp.name }}</h6> {% if comp.package %} Package: {{comp.package}}<br> {% endif %} {% if comp.manufacturer %} Manufacturer: {{comp.manufacturer}} {% endif %} </div> <span class="badge bg-primary rounded-pill">{{comp.get_total_amount}}</span> </li> </a> {% endfor %} </div> {% include 'paginator.html' with paginator=components get_param='comp_page' aria_label='Component Page Navigation' %} </div> </div> </div> {% include 'parts/modals/edit-component-modal.html' with form=comp_form heading='New Component' open_component_button=True %} {% include 'parts/modals/import-component-modal.html' with form=import_comp_form %} {% endblock content %} {% block custom_scripts %} <script type="text/javascript"> {% if comp_form.errors %} bootstrap.Modal.getOrCreateInstance(document.getElementById('comp-edit-modal')).show() {% endif %} {% if import_comp_form.errors %} bootstrap.Modal.getOrCreateInstance(document.getElementById('comp-import-modal')).show() {% endif %} </script> {% endblock custom_scripts %}