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:
@@ -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='Положительный исход сделки'),
|
||||||
|
),
|
||||||
|
]
|
||||||
@@ -37,13 +37,13 @@ class OrderStatus(models.Model):
|
|||||||
|
|
||||||
is_positive_end = models.BooleanField(
|
is_positive_end = models.BooleanField(
|
||||||
default=False,
|
default=False,
|
||||||
verbose_name="Положительный конец",
|
verbose_name="Положительный исход сделки",
|
||||||
help_text="True если это финальный успешный статус (Выполнен)"
|
help_text="True если это финальный успешный статус (Выполнен)"
|
||||||
)
|
)
|
||||||
|
|
||||||
is_negative_end = models.BooleanField(
|
is_negative_end = models.BooleanField(
|
||||||
default=False,
|
default=False,
|
||||||
verbose_name="Отрицательный конец",
|
verbose_name="Отрицательный исход сделки",
|
||||||
help_text="True если это финальный отрицательный статус (Отменен)"
|
help_text="True если это финальный отрицательный статус (Отменен)"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
@@ -230,9 +230,9 @@
|
|||||||
<label class="form-label">Финальный статус</label>
|
<label class="form-label">Финальный статус</label>
|
||||||
<p id="preview-end">
|
<p id="preview-end">
|
||||||
{% if form.instance.is_positive_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 %}
|
{% elif form.instance.is_negative_end %}
|
||||||
<span class="badge bg-danger">✗ Отрицательный конец</span>
|
<span class="badge bg-danger">✗ Отрицательный исход сделки</span>
|
||||||
{% else %}
|
{% else %}
|
||||||
<span class="badge bg-secondary">Промежуточный</span>
|
<span class="badge bg-secondary">Промежуточный</span>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
@@ -274,9 +274,9 @@ document.addEventListener('DOMContentLoaded', function() {
|
|||||||
|
|
||||||
// Обновляем тип конца
|
// Обновляем тип конца
|
||||||
if (positiveEndCheckbox.checked) {
|
if (positiveEndCheckbox.checked) {
|
||||||
previewEnd.innerHTML = '<span class="badge bg-success">✓ Успешный конец</span>';
|
previewEnd.innerHTML = '<span class="badge bg-success">✓ Успешный исход сделки</span>';
|
||||||
} else if (negativeEndCheckbox.checked) {
|
} else if (negativeEndCheckbox.checked) {
|
||||||
previewEnd.innerHTML = '<span class="badge bg-danger">✗ Отрицательный конец</span>';
|
previewEnd.innerHTML = '<span class="badge bg-danger">✗ Отрицательный исход сделки</span>';
|
||||||
} else {
|
} else {
|
||||||
previewEnd.innerHTML = '<span class="badge bg-secondary">Промежуточный</span>';
|
previewEnd.innerHTML = '<span class="badge bg-secondary">Промежуточный</span>';
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -41,7 +41,7 @@
|
|||||||
<th style="width: 200px;">Название</th>
|
<th style="width: 200px;">Название</th>
|
||||||
<th style="width: 150px;">Код</th>
|
<th style="width: 150px;">Код</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: 80px;">Заказов</th>
|
<th style="width: 80px;">Заказов</th>
|
||||||
<th style="width: 150px;">Действия</th>
|
<th style="width: 150px;">Действия</th>
|
||||||
|
|||||||
@@ -480,9 +480,8 @@ def order_status_list(request):
|
|||||||
"""Список всех статусов заказов"""
|
"""Список всех статусов заказов"""
|
||||||
statuses = OrderStatus.objects.all().order_by('order', 'name')
|
statuses = OrderStatus.objects.all().order_by('order', 'name')
|
||||||
|
|
||||||
# Добавляем информацию о количестве заказов для каждого статуса
|
# orders_count уже доступен как property в модели OrderStatus
|
||||||
for status in statuses:
|
# Не нужно вручную добавлять атрибут
|
||||||
status.orders_count = Order.objects.filter(status=status).count()
|
|
||||||
|
|
||||||
context = {
|
context = {
|
||||||
'statuses': statuses,
|
'statuses': statuses,
|
||||||
|
|||||||
Reference in New Issue
Block a user