search.html 3.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. {% extends 'base/layout.html' %}
  2. {% load helpers %}
  3. {% load form_helpers %}
  4. {% load render_table from django_tables2 %}
  5. {% block title %}Search{% endblock %}
  6. {% block content %}
  7. {% if request.GET.q %}
  8. {% if results %}
  9. <div class="row">
  10. <div class="col col-md-9">
  11. {% for obj_type in results %}
  12. <div class="card">
  13. <h5 class="card-header">{{ obj_type.name|bettertitle }}</h5>
  14. <div class="card-body">
  15. {% render_table obj_type.table 'inc/table.html' %}
  16. </div>
  17. <div class="card-footer text-end">
  18. <a href="{{ obj_type.url }}" class="btn btn-sm btn-primary my-1">
  19. <i class="mdi mdi-arrow-right-bold" aria-hidden="true"></i>
  20. {% if obj_type.table.page.has_next %}
  21. See All {{ obj_type.table.page.paginator.count }} Results
  22. {% else %}
  23. Refine Search
  24. {% endif %}
  25. </a>
  26. </div>
  27. </div>
  28. {% endfor %}
  29. </div>
  30. <div class="col col-md-3">
  31. <div class="card">
  32. <h5 class="card-header">
  33. Search Results
  34. </h5>
  35. <div class="card-body">
  36. <div class="list-group list-group-flush">
  37. {% for obj_type in results %}
  38. <a href="#{{ obj_type.name|lower }}" class="list-group-item">
  39. {{ obj_type.name|bettertitle }}
  40. <span class="badge bg-primary">{{ obj_type.table.page.paginator.count }}</span>
  41. </a>
  42. {% endfor %}
  43. </div>
  44. </div>
  45. </div>
  46. </div>
  47. </div>
  48. {% else %}
  49. <h3 class="text-muted text-center">No results found</h3>
  50. {% endif %}
  51. {% else %}
  52. <div class="row">
  53. <div class="col-4 offset-4">
  54. <form action="{% url 'search' %}" method="get" class="form form-horizontal">
  55. <div class="card">
  56. <h5 class="card-header">
  57. Search
  58. </h5>
  59. <div class="card-body">
  60. {% render_form form %}
  61. </div>
  62. <div class="card-footer text-end">
  63. <button type="submit" class="btn btn-primary">
  64. <span class="mdi mdi-magnify" aria-hidden="true"></span> Search
  65. </button>
  66. </div>
  67. </div>
  68. </form>
  69. </div>
  70. </div>
  71. {% endif %}
  72. {% endblock content %}