Добавлен столбец тегов в таблицу товаров и исправлены URL
- Добавлен столбец 'Теги' в таблицу товаров и комплектов - Реализовано умное отображение тегов: показываются первые 2 тега + многоточие - При наведении на ячейку тегов показывается полный список во всплывающей подсказке - Исправлены все ссылки с устаревших URL (product-list, productkit-list) на новый (products-list) - Обновлены шаблоны: product_detail, product_form, product_confirm_delete, productkit_detail, productkit_create, productkit_edit - Обновлен компонент category_filter_buttons с поддержкой фильтра ?type=products и ?type=kits - Удалена ненужная подсказка 'Ctrl+Click' под полем выбора тегов в фильтрах
This commit is contained in:
@@ -18,7 +18,7 @@
|
||||
<form method="post">
|
||||
{% csrf_token %}
|
||||
<div class="d-flex justify-content-between">
|
||||
<a href="{% url 'products:product-list' %}" class="btn btn-secondary">Отмена</a>
|
||||
<a href="{% url 'products:products-list' %}" class="btn btn-secondary">Отмена</a>
|
||||
<button type="submit" class="btn btn-danger">Удалить товар</button>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
@@ -299,7 +299,7 @@
|
||||
<h4>Действия</h4>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<a href="{% url 'products:product-list' %}" class="btn btn-secondary btn-block">Назад к списку</a>
|
||||
<a href="{% url 'products:products-list' %}" class="btn btn-secondary btn-block">Назад к списку</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -303,7 +303,7 @@
|
||||
|
||||
<div class="d-flex justify-content-between mt-4 gap-2 flex-wrap">
|
||||
<div>
|
||||
<a href="{% url 'products:product-list' %}" class="btn btn-secondary">Отмена</a>
|
||||
<a href="{% url 'products:products-list' %}" class="btn btn-secondary">Отмена</a>
|
||||
{% if perms.products.add_productkit %}
|
||||
<a href="{% url 'products:productkit-create' %}" class="btn btn-outline-primary">
|
||||
<i class="bi bi-box-seam"></i> Создать комплект
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
<!-- Breadcrumbs -->
|
||||
<nav aria-label="breadcrumb" class="mb-2">
|
||||
<ol class="breadcrumb breadcrumb-sm mb-0">
|
||||
<li class="breadcrumb-item"><a href="{% url 'products:productkit-list' %}">Комплекты</a></li>
|
||||
<li class="breadcrumb-item"><a href="{% url 'products:products-list' %}">Комплекты</a></li>
|
||||
<li class="breadcrumb-item active">Новый</li>
|
||||
</ol>
|
||||
</nav>
|
||||
@@ -222,7 +222,7 @@
|
||||
|
||||
<!-- Sticky Footer -->
|
||||
<div class="sticky-bottom bg-white border-top mt-4 p-3 d-flex justify-content-between align-items-center shadow-sm">
|
||||
<a href="{% url 'products:productkit-list' %}" class="btn btn-outline-secondary">
|
||||
<a href="{% url 'products:products-list' %}" class="btn btn-outline-secondary">
|
||||
Отмена
|
||||
</a>
|
||||
<button type="submit" class="btn btn-success px-4">
|
||||
|
||||
@@ -246,7 +246,7 @@
|
||||
<!-- Кнопка назад -->
|
||||
<div class="row mt-4">
|
||||
<div class="col-12">
|
||||
<a href="{% url 'products:productkit-list' %}" class="btn btn-outline-secondary">
|
||||
<a href="{% url 'products:products-list' %}" class="btn btn-outline-secondary">
|
||||
<i class="bi bi-arrow-left"></i> К списку комплектов
|
||||
</a>
|
||||
</div>
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
<!-- Breadcrumbs -->
|
||||
<nav aria-label="breadcrumb" class="mb-2">
|
||||
<ol class="breadcrumb breadcrumb-sm mb-0">
|
||||
<li class="breadcrumb-item"><a href="{% url 'products:productkit-list' %}">Комплекты</a></li>
|
||||
<li class="breadcrumb-item"><a href="{% url 'products:products-list' %}">Комплекты</a></li>
|
||||
<li class="breadcrumb-item"><a href="{% url 'products:productkit-detail' object.pk %}">{{ object.name }}</a></li>
|
||||
<li class="breadcrumb-item active">Редактирование</li>
|
||||
</ol>
|
||||
|
||||
@@ -129,6 +129,7 @@
|
||||
<th style="width: 120px;">Артикул</th>
|
||||
<th style="width: 80px;">Тип</th>
|
||||
<th>Категория</th>
|
||||
<th style="width: 150px;">Теги</th>
|
||||
<th style="width: 130px;">Цена</th>
|
||||
<th style="width: 100px;">В наличии</th>
|
||||
<th style="width: 100px;">Статус</th>
|
||||
@@ -177,6 +178,18 @@
|
||||
<span class="text-muted">-</span>
|
||||
{% endfor %}
|
||||
</td>
|
||||
<td title="{% if item.tags.all|length %}{% for t in item.tags.all %}{{ t.name }}{% if not forloop.last %}, {% endif %}{% endfor %}{% else %}-{% endif %}">
|
||||
{% for tag in item.tags.all|slice:":2" %}
|
||||
<span class="badge bg-primary">{{ tag.name }}</span>
|
||||
{% empty %}
|
||||
<span class="text-muted">-</span>
|
||||
{% endfor %}
|
||||
{% with total=item.tags.all|length %}
|
||||
{% if total > 2 %}
|
||||
<span class="text-muted">…</span>
|
||||
{% endif %}
|
||||
{% endwith %}
|
||||
</td>
|
||||
<td>
|
||||
{% if item.sale_price %}
|
||||
<div class="text-decoration-line-through text-muted small">{{ item.price|floatformat:2 }} руб.</div>
|
||||
|
||||
@@ -21,12 +21,12 @@
|
||||
class="btn {% if request.resolver_match.url_name == 'all-products' %}btn-primary{% else %}btn-outline-primary{% endif %}">
|
||||
<i class="bi bi-grid"></i> Все товары
|
||||
</a>
|
||||
<a href="{% url 'products:product-list' %}"
|
||||
class="btn {% if request.resolver_match.url_name == 'product-list' %}btn-success{% else %}btn-outline-success{% endif %}">
|
||||
<a href="{% url 'products:products-list' %}?type=products"
|
||||
class="btn {% if request.resolver_match.url_name == 'products-list' and request.GET.type == 'products' %}btn-success{% else %}btn-outline-success{% endif %}">
|
||||
<i class="bi bi-box"></i> Только поштучно
|
||||
</a>
|
||||
<a href="{% url 'products:productkit-list' %}"
|
||||
class="btn {% if request.resolver_match.url_name == 'productkit-list' %}btn-info{% else %}btn-outline-info{% endif %}">
|
||||
<a href="{% url 'products:products-list' %}?type=kits"
|
||||
class="btn {% if request.resolver_match.url_name == 'products-list' and request.GET.type == 'kits' %}btn-info{% else %}btn-outline-info{% endif %}">
|
||||
<i class="bi bi-box-seam"></i> Только комплекты
|
||||
</a>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user