Commit Graph

3 Commits

Author SHA1 Message Date
dcfb76121d SECURITY: Защита критичных полей системных статусов от редактирования
Заблокировал изменение полей is_positive_end и is_negative_end для
системных статусов заказов, так как эти флаги используются в сигналах
inventory для управления резервированием и списанием товаров со склада.

Что изменено:
- OrderStatusForm: Добавлена блокировка (disabled=True) для полей
  is_positive_end и is_negative_end при редактировании системных статусов
- status_form.html: Заменено информационное предупреждение на красное
  с детальным описанием заблокированных полей и их влияния на систему

Почему это критично:
Эти флаги проверяются в 3 сигналах inventory/signals.py:
1. rollback_sale_on_status_change - откатывает продажи при уходе от 'completed'
2. release_reservations_on_cancellation - освобождает резервы при отмене
3. reserve_stock_on_uncancellation - резервирует при восстановлении заказа

Случайное изменение флагов может привести к:
- Неправильному освобождению резервов товара
- Двойному резервированию
- Блокировке товара навсегда
- Списанию товара для отмененных заказов

Разрешено редактировать для системных статусов: name, label, color, description

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-03 01:07:15 +03:00
a2f96d3750 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>
2025-11-13 21:53:34 +03:00
c7875f147c Implement flexible order status management system
Features:
- Created OrderStatus model for managing statuses per tenant
- Added system-level statuses: draft, new, confirmed, in_assembly, in_delivery, completed, return, cancelled
- Implemented CRUD views for managing order statuses
- Created OrderStatusService with status transitions and business logic hooks
- Updated Order model to use ForeignKey to OrderStatus
- Added is_returned flag for tracking returned orders
- Updated filters to work with new OrderStatus model
- Created management command for status initialization
- Added HTML templates for status list, form, and confirmation
- Fixed views.py to use OrderStatus instead of removed STATUS_CHOICES

🤖 Generated with Claude Code

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-13 16:29:50 +03:00