Replace 'конец' with 'исход сделки' in order status terminology

Updated terminology across the order status management system to use 'исход сделки' (deal outcome) instead of 'конец' (end) for better clarity and professional language.

Changes:
- Fixed AttributeError in order_status_list view by removing attempt to set read-only property orders_count
- Updated OrderStatus model verbose_name fields for is_positive_end and is_negative_end
- Updated status form template badges and preview JavaScript
- Updated status list table header
- Created migration for verbose_name changes

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2025-11-13 21:53:34 +03:00
parent 2ec969f23a
commit a2f96d3750
5 changed files with 32 additions and 10 deletions

View File

@@ -0,0 +1,23 @@
# Generated by Django 5.0.10 on 2025-11-13 18:51
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('orders', '0003_update_status_names_to_russian'),
]
operations = [
migrations.AlterField(
model_name='orderstatus',
name='is_negative_end',
field=models.BooleanField(default=False, help_text='True если это финальный отрицательный статус (Отменен)', verbose_name='Отрицательный исход сделки'),
),
migrations.AlterField(
model_name='orderstatus',
name='is_positive_end',
field=models.BooleanField(default=False, help_text='True если это финальный успешный статус (Выполнен)', verbose_name='Положительный исход сделки'),
),
]

View File

@@ -37,13 +37,13 @@ class OrderStatus(models.Model):
is_positive_end = models.BooleanField(
default=False,
verbose_name="Положительный конец",
verbose_name="Положительный исход сделки",
help_text="True если это финальный успешный статус (Выполнен)"
)
is_negative_end = models.BooleanField(
default=False,
verbose_name="Отрицательный конец",
verbose_name="Отрицательный исход сделки",
help_text="True если это финальный отрицательный статус (Отменен)"
)

View File

@@ -230,9 +230,9 @@
<label class="form-label">Финальный статус</label>
<p id="preview-end">
{% if form.instance.is_positive_end %}
<span class="badge bg-success">✓ Успешный конец</span>
<span class="badge bg-success">✓ Успешный исход сделки</span>
{% elif form.instance.is_negative_end %}
<span class="badge bg-danger">✗ Отрицательный конец</span>
<span class="badge bg-danger">✗ Отрицательный исход сделки</span>
{% else %}
<span class="badge bg-secondary">Промежуточный</span>
{% endif %}
@@ -274,9 +274,9 @@ document.addEventListener('DOMContentLoaded', function() {
// Обновляем тип конца
if (positiveEndCheckbox.checked) {
previewEnd.innerHTML = '<span class="badge bg-success">✓ Успешный конец</span>';
previewEnd.innerHTML = '<span class="badge bg-success">✓ Успешный исход сделки</span>';
} else if (negativeEndCheckbox.checked) {
previewEnd.innerHTML = '<span class="badge bg-danger">✗ Отрицательный конец</span>';
previewEnd.innerHTML = '<span class="badge bg-danger">✗ Отрицательный исход сделки</span>';
} else {
previewEnd.innerHTML = '<span class="badge bg-secondary">Промежуточный</span>';
}

View File

@@ -41,7 +41,7 @@
<th style="width: 200px;">Название</th>
<th style="width: 150px;">Код</th>
<th style="width: 150px;">Тип</th>
<th style="width: 100px;">Конец</th>
<th style="width: 100px;">Исход сделки</th>
<th style="width: 80px;">Цвет</th>
<th style="width: 80px;">Заказов</th>
<th style="width: 150px;">Действия</th>

View File

@@ -480,9 +480,8 @@ def order_status_list(request):
"""Список всех статусов заказов"""
statuses = OrderStatus.objects.all().order_by('order', 'name')
# Добавляем информацию о количестве заказов для каждого статуса
for status in statuses:
status.orders_count = Order.objects.filter(status=status).count()
# orders_count уже доступен как property в модели OrderStatus
# Не нужно вручную добавлять атрибут
context = {
'statuses': statuses,