feat(orders): добавить поле резюме заказа

Добавлено текстовое поле `summary` в модель `Order` для хранения краткого
описания заказа на естественном языке.

Обновлена форма `OrderForm` с добавлением виджета textarea, плейсхолдера и
стилей. В шаблоны `order_form.html` и `order_detail.html` добавлены элементы
для ввода и отображения резюме заказа. Создана соответствующая миграция.
This commit is contained in:
2026-01-15 18:39:05 +03:00
parent ce486f35ca
commit 14188fbac4
6 changed files with 92 additions and 1 deletions

View File

@@ -21,6 +21,12 @@
</span>
{% endif %}
</h1>
{% if order.summary %}
<div class="alert alert-info mt-3">
<h6><i class="bi bi-sticky"></i> Резюме заказа:</h6>
<p class="mb-0">{{ order.summary|linebreaks }}</p>
</div>
{% endif %}
</div>
<div class="col-auto">
<a href="{% url 'orders:order-update' order.order_number %}" class="btn btn-primary">

View File

@@ -171,6 +171,16 @@
box-shadow: 0 0 20px rgba(220, 53, 69, 0.8), 0 0 30px rgba(220, 53, 69, 0.4);
}
}
/* Стили для текстовой области резюме заказа */
textarea[name="summary"] {
transition: border-color 0.3s ease, box-shadow 0.3s ease;
}
textarea[name="summary"]:focus {
border-color: #80bdff;
box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);
}
</style>
{% endblock %}
@@ -262,6 +272,20 @@
</div>
</div>
<!-- Резюме заказа -->
<div class="card mb-3">
<div class="card-header">
<h5 class="mb-0">Резюме заказа</h5>
</div>
<div class="card-body">
<div class="mb-3">
<label for="{{ form.summary.id_for_label }}" class="form-label">Краткое описание заказа</label>
{{ form.summary }}
<div class="form-text">Введите краткое резюме заказа на естественном языке (например: '21 фридом 60 см в упаковке на наше усмотрение'). Можно использовать переносы строк.</div>
</div>
</div>
</div>
<!-- Товары в заказе -->
<div class="card mb-3">
<div class="card-header">
@@ -1046,7 +1070,7 @@ document.addEventListener('DOMContentLoaded', function() {
<!-- Delivery Date/Time Widget -->
<script src="{% static 'orders/js/delivery_datetime.js' %}"></script>
<script>
// Убеждаемся, что дата доставки правильно отображается при редактировании
// Убеждаемся, что дата доставки правильно отображается п<EFBFBD><EFBFBD>и ред<EFBFBD><EFBFBD>ктировании
document.addEventListener('DOMContentLoaded', function() {
const deliveryDateField = document.getElementById('{{ form.delivery_date.id_for_label }}');
{% if form.delivery_date.initial %}