Исправлено отображение статуса заказов и пагинация истории

- Исправлен баг отображения статуса: теперь сравнение с order.status.code вместо order.status
- Добавлена обработка отсутствующего статуса (показывает 'Без статуса')
- Пагинация истории заказов: добавлен якорь #ordersHistoryCollapse ко всем ссылкам
- Автооткрытие collapse при переходе по пагинации через JavaScript
- Плавная прокрутка к секции истории после раскрытия collapse (событие shown.bs.collapse)
- Пользователь остаётся в секции истории заказов при переходе между страницами
This commit is contained in:
2025-11-29 19:27:08 +03:00
parent 22fad84545
commit e7ac4bd8a8

View File

@@ -292,20 +292,24 @@
{% endif %} {% endif %}
</td> </td>
<td> <td>
{% if order.status == 'draft' %} {% if order.status %}
<span class="badge bg-secondary">Черновик</span> {% if order.status.code == 'draft' %}
{% elif order.status == 'pending' %} <span class="badge bg-secondary">Черновик</span>
<span class="badge bg-warning">Ожидает</span> {% elif order.status.code == 'pending' %}
{% elif order.status == 'in_production' %} <span class="badge bg-warning">Ожидает</span>
<span class="badge bg-info">В производстве</span> {% elif order.status.code == 'in_production' %}
{% elif order.status == 'ready' %} <span class="badge bg-info">В производстве</span>
<span class="badge bg-primary">Готов</span> {% elif order.status.code == 'ready' %}
{% elif order.status == 'delivered' %} <span class="badge bg-primary">Готов</span>
<span class="badge bg-success">Доставлен</span> {% elif order.status.code == 'delivered' %}
{% elif order.status == 'cancelled' %} <span class="badge bg-success">Доставлен</span>
<span class="badge bg-danger">Отменён</span> {% elif order.status.code == 'cancelled' %}
<span class="badge bg-danger">Отменён</span>
{% else %}
<span class="badge bg-secondary">{{ order.status.name }}</span>
{% endif %}
{% else %} {% else %}
<span class="badge bg-secondary">{{ order.get_status_display }}</span> <span class="badge bg-secondary">Без статуса</span>
{% endif %} {% endif %}
</td> </td>
<td> <td>
@@ -352,10 +356,10 @@
<ul class="pagination justify-content-center mt-3"> <ul class="pagination justify-content-center mt-3">
{% if orders_page.has_previous %} {% if orders_page.has_previous %}
<li class="page-item"> <li class="page-item">
<a class="page-link" href="?page=1">Первая</a> <a class="page-link" href="?page=1#ordersHistoryCollapse">Первая</a>
</li> </li>
<li class="page-item"> <li class="page-item">
<a class="page-link" href="?page={{ orders_page.previous_page_number }}">Предыдущая</a> <a class="page-link" href="?page={{ orders_page.previous_page_number }}#ordersHistoryCollapse">Предыдущая</a>
</li> </li>
{% endif %} {% endif %}
@@ -367,10 +371,10 @@
{% if orders_page.has_next %} {% if orders_page.has_next %}
<li class="page-item"> <li class="page-item">
<a class="page-link" href="?page={{ orders_page.next_page_number }}">Следующая</a> <a class="page-link" href="?page={{ orders_page.next_page_number }}#ordersHistoryCollapse">Следующая</a>
</li> </li>
<li class="page-item"> <li class="page-item">
<a class="page-link" href="?page={{ orders_page.paginator.num_pages }}">Последняя</a> <a class="page-link" href="?page={{ orders_page.paginator.num_pages }}#ordersHistoryCollapse">Последняя</a>
</li> </li>
{% endif %} {% endif %}
</ul> </ul>
@@ -385,4 +389,23 @@
</div> </div>
</div> </div>
</div> </div>
<script>
// Автооткрытие collapse при наличии якоря в URL
document.addEventListener('DOMContentLoaded', function() {
const hash = window.location.hash;
if (hash === '#ordersHistoryCollapse') {
const collapseElement = document.getElementById('ordersHistoryCollapse');
if (collapseElement) {
const bsCollapse = new bootstrap.Collapse(collapseElement, {
show: true
});
// Прокручиваем к элементу после открытия collapse (с учетом анимации)
collapseElement.addEventListener('shown.bs.collapse', function() {
collapseElement.scrollIntoView({ behavior: 'smooth', block: 'start' });
}, { once: true });
}
}
});
</script>
{% endblock %} {% endblock %}