| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103 |
- {% extends 'base/layout.html' %}
- {% load buttons %}
- {% load custom_links %}
- {% load helpers %}
- {% load perms %}
- {% load plugins %}
- {% load tabs %}
- {% comment %}
- Blocks:
- breadcrumbs: Breadcrumb list items (HTML <li> elements)
- object_identifier: Unique identifier for the object
- extra_controls: Additional action buttons to display
- extra_tabs: Additional tabs to include
- content: Page content
- Context:
- object: The object instance being viewed
- {% endcomment %}
- {% block header %}
- <div class="d-flex justify-content-between align-items-center">
- {# Breadcrumbs #}
- <nav class="breadcrumb-container px-3" aria-label="breadcrumb">
- <ol class="breadcrumb">
- {% block breadcrumbs %}
- <li class="breadcrumb-item"><a href="{% url object|viewname:'list' %}">{{ object|meta:'verbose_name_plural'|bettertitle }}</a></li>
- {% endblock breadcrumbs %}
- </ol>
- </nav>
- {# Object identifier #}
- <div class="float-end px-3">
- <code class="text-muted">
- {% block object_identifier %}
- {{ object|meta:"app_label" }}.{{ object|meta:"model_name" }}:{{ object.pk }}
- {% if object.slug %}({{ object.slug }}){% endif %}
- {% endblock object_identifier %}
- </code>
- </div>
- </div>
- {{ block.super }}
- {% endblock %}
- {% block title %}{{ object }}{% endblock %}
- {% block subtitle %}
- <div class="object-subtitle">
- <span>Created {{ object.created|annotated_date }}</span>
- <span class="separator">·</span>
- <span>Updated <span title="{{ object.last_updated }}">{{ object.last_updated|timesince }}</span> ago</span>
- </div>
- {% endblock %}
- {% block controls %}
- {# Clone/Edit/Delete Buttons #}
- <div class="controls">
- <div class="control-group">
- {% plugin_buttons object %}
- {# Extra buttons #}
- {% block extra_controls %}{% endblock %}
- {% if request.user|can_add:object %}
- {% clone_button object %}
- {% endif %}
- {% if request.user|can_change:object %}
- {% edit_button object %}
- {% endif %}
- {% if request.user|can_delete:object %}
- {% delete_button object %}
- {% endif %}
- </div>
- <div class="control-group">
- {% custom_links object %}
- </div>
- </div>
- {% endblock controls %}
- {% block tabs %}
- <ul class="nav nav-tabs px-3">
- {# Primary tab #}
- <li class="nav-item" role="presentation">
- <a class="nav-link{% if not active_tab %} active{% endif %}" href="{{ object.get_absolute_url }}">{{ object|meta:"verbose_name"|bettertitle }}</a>
- </li>
- {# Include any extra tabs passed by the view #}
- {% block extra_tabs %}{% endblock %}
- {# Include tabs for registered model views #}
- {% model_view_tabs object %}
- </ul>
- {% endblock tabs %}
- {% block content-wrapper %}
- <div class="tab-content">
- {% block content %}{% endblock %}
- </div>
- {% endblock content-wrapper %}
- {% block modals %}
- {% include 'inc/htmx_modal.html' %}
- {% endblock modals %}
|