All checks were successful
Build and Push Docker Image / build (push) Successful in 30s
- Introduced `Subcategory` model with migration and unique slug constraint per category - Enabled subcategory assignment for items with validation to ensure category matching - Updated catalog views to handle subcategories, filtering items accordingly - Enhanced templates (`index.html`, `side-bar.html`, `item-list.html`, `detail.html`) to display subcategories - Added dynamic subcategory dropdown in Django admin with category filtering - Created JavaScript for admin subcategory handling and AJAX population - Wrote comprehensive tests for subcategory functionality in views and admin
35 lines
1.7 KiB
HTML
35 lines
1.7 KiB
HTML
<main class="item-list">
|
||
<div class="items-grid">
|
||
{% for item in items %}
|
||
<article class="item-card">
|
||
<a class="item-card-link" href="{% url 'detail' item.category.slug item.slug %}" aria-label="Открыть товар {{ item.name }}">
|
||
{% with primary_image=item.primary_image %}
|
||
<div class="item-card-image">
|
||
{% if primary_image %}
|
||
<img src="{{ primary_image.image.url }}" alt="{{ primary_image.alt|default:item.name }}">
|
||
{% else %}
|
||
<div class="item-card-placeholder">Нет фото</div>
|
||
{% endif %}
|
||
</div>
|
||
{% endwith %}
|
||
|
||
<div class="item-card-body">
|
||
<div class="item-card-category">
|
||
{{ item.category.name }}{% if item.subcategory %} / {{ item.subcategory.name }}{% endif %}
|
||
</div>
|
||
<h2 class="item-card-title">{{ item.name }}</h2>
|
||
<div class="item-card-footer">
|
||
<span class="item-card-price">{{ item.price }} руб.</span>
|
||
<span class="item-card-availability {% if item.is_available %}available{% else %}unavailable{% endif %}">
|
||
{% if item.is_available %}В наличии{% else %}Нет в наличии{% endif %}
|
||
</span>
|
||
</div>
|
||
</div>
|
||
</a>
|
||
</article>
|
||
{% empty %}
|
||
<p class="item-list-empty">В этой категории пока нет товаров.</p>
|
||
{% endfor %}
|
||
</div>
|
||
</main>
|