diff --git a/shiftflow/admin.py b/shiftflow/admin.py index 0199fcb..24bee98 100644 --- a/shiftflow/admin.py +++ b/shiftflow/admin.py @@ -11,9 +11,9 @@ class CompanyAdmin(admin.ModelAdmin): # --- Настройка отображения Сделок --- @admin.register(Deal) class DealAdmin(admin.ModelAdmin): - list_display = ('number', 'company') + list_display = ('number', 'status', 'company') search_fields = ('number', 'company__name') - list_filter = ('company',) + list_filter = ('status', 'company') # --- Задания на производство (База) --- @admin.register(ProductionTask) diff --git a/shiftflow/migrations/0009_deal_status.py b/shiftflow/migrations/0009_deal_status.py new file mode 100644 index 0000000..2f2a22d --- /dev/null +++ b/shiftflow/migrations/0009_deal_status.py @@ -0,0 +1,18 @@ +# Generated by Django 6.0.3 on 2026-03-31 05:09 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('shiftflow', '0008_alter_item_date'), + ] + + operations = [ + migrations.AddField( + model_name='deal', + name='status', + field=models.CharField(choices=[('lead', 'Зашла'), ('work', 'В работе'), ('done', 'Завершена')], default='work', max_length=10, verbose_name='Статус'), + ), + ] diff --git a/shiftflow/models.py b/shiftflow/models.py index 79251bd..72ee6cf 100644 --- a/shiftflow/models.py +++ b/shiftflow/models.py @@ -40,11 +40,21 @@ class Deal(models.Model): Заказ или проект. Номер парсится из пути к файлам. Служит контейнером для группы деталей (позиций). """ + + STATUS_CHOICES = [ + ('lead', 'Зашла'), + ('work', 'В работе'), + ('done', 'Завершена'), + ] + number = models.CharField("№ Сделки", max_length=100, unique=True) + status = models.CharField("Статус", max_length=10, choices=STATUS_CHOICES, default='work') company = models.ForeignKey(Company, on_delete=models.PROTECT, verbose_name="Заказчик", null=True, blank=True) description = models.TextField("Описание сделки", blank=True, help_text="Общая информация по заказу") - - def __str__(self): return f"Сделка №{self.number} ({self.company})" + + def __str__(self): + return f"Сделка №{self.number} ({self.company})" + class Meta: verbose_name = "Сделка"; verbose_name_plural = "Сделки" diff --git a/shiftflow/templates/shiftflow/planning.html b/shiftflow/templates/shiftflow/planning.html index 8d1cb7f..086c4fd 100644 --- a/shiftflow/templates/shiftflow/planning.html +++ b/shiftflow/templates/shiftflow/planning.html @@ -3,10 +3,25 @@ {% block content %}
-

Планирование

- - Добавить - +
+

Планирование

+
+ Сделки: +
+ + + + + + + + +
+
+
+
@@ -15,108 +30,232 @@ Сделка - Деталь - Материал - Размер - Надо - Сделано - В плане - Осталось - Действия + Заказчик + Описание + Статус - {% for t in tasks %} - - {{ t.deal.number }} - {{ t.drawing_name|default:"Б/ч" }} - {{ t.material.full_name|default:t.material.name }} - {{ t.size_value }} - {{ t.quantity_ordered }} - {{ t.done_qty }} - {{ t.planned_qty }} - {{ t.remaining_qty }} - - + {% for d in deals %} + + {{ d.number }} + {{ d.company.name|default:"-" }} + {{ d.description|default:"" }} + + {{ d.get_status_display }} {% empty %} - Заданий не найдено + Сделок не найдено {% endfor %}
- -