bulk_add_component.html 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. {% extends 'generic/_base.html' %}
  2. {% load helpers %}
  3. {% load form_helpers %}
  4. {% load render_table from django_tables2 %}
  5. {% load i18n %}
  6. {% comment %}
  7. Blocks:
  8. - title: Page title
  9. - tabs: Page tabs
  10. - content: Primary page content
  11. Context:
  12. - form: The object creation form
  13. - parent_model_name: The name of the model to which the new component belongs
  14. - model_name: The name of the component model
  15. - table: The table of newly-created component objects
  16. - return_url: The URL to which the user is redirected after submitting the form
  17. {% endcomment %}
  18. {% block title %}
  19. {% trans "Add" %} {{ model_name|title }}
  20. {% endblock %}
  21. {% block tabs %}
  22. <ul class="nav nav-tabs">
  23. <li class="nav-item" role="presentation">
  24. <button class="nav-link active" id="component-form-tab" data-bs-toggle="tab" data-bs-target="#component-form" type="button" role="tab" aria-controls="component-form" aria-selected="true">
  25. {% trans "Bulk Creation" %}
  26. </button>
  27. </li>
  28. <li class="nav-item" role="presentation">
  29. <button class="nav-link" id="object-list-tab" data-bs-toggle="tab" data-bs-target="#object-list" type="button" role="tab" aria-controls="object-list" aria-selected="false">
  30. {% trans "Selected Objects" %}
  31. {% badge table.rows|length %}
  32. </button>
  33. </li>
  34. </ul>
  35. {% endblock %}
  36. {% block content %}
  37. {# Component creation form #}
  38. <div class="tab-pane show active" id="component-form" role="tabpanel" aria-labelledby="component-form-tab">
  39. <form action="" method="post" class="form form-horizontal">
  40. {% csrf_token %}
  41. {% if request.POST.return_url %}
  42. <input type="hidden" name="return_url" value="{{ request.POST.return_url }}" />
  43. {% endif %}
  44. {% for field in form.hidden_fields %}
  45. {{ field }}
  46. {% endfor %}
  47. <div class="row">
  48. <div class="col col-md-12 col-lg-10 offset-lg-1">
  49. <div class="card">
  50. <h2 class="card-header">{{ model_name|title }} {% trans "to Add" %}</h2>
  51. <div class="card-body">
  52. {% for field in form.visible_fields %}
  53. {% if not form.meta_fields or field.name not in form.meta_fields %}
  54. {% render_field field %}
  55. {% endif %}
  56. {% endfor %}
  57. </div>
  58. </div>
  59. {# Meta fields #}
  60. {% if form.background_job or form.changelog_message %}
  61. <div class="bg-primary-subtle border border-primary rounded-1 pt-3 px-3 mb-3">
  62. {% if form.changelog_message %}
  63. {% render_field form.changelog_message %}
  64. {% endif %}
  65. {% if form.background_job %}
  66. {% render_field form.background_job %}
  67. {% endif %}
  68. </div>
  69. {% endif %}
  70. <div class="form-group text-end">
  71. <div class="col col-md-12">
  72. <a href="{{ return_url }}" class="btn btn-outline-secondary">{% trans "Cancel" %}</a>
  73. <button type="submit" name="_create" class="btn btn-primary">{% trans "Create" %}</button>
  74. </div>
  75. </div>
  76. </div>
  77. </div>
  78. </form>
  79. </div>
  80. {# Selected objects list #}
  81. <div class="tab-pane" id="object-list" role="tabpanel" aria-labelledby="object-list-tab">
  82. <div class="card">
  83. <div class="card-body table-responsive">
  84. {% render_table table 'inc/table.html' %}
  85. </div>
  86. </div>
  87. </div>
  88. {% endblock content %}