refactor: мигрировать на новую систему документов поступления

Удалена старая одноэтапная система incoming и оставлена только новая
двухэтапная система IncomingDocument (черновик → проведение).

Изменения:
- URL структура изменена с /incoming-documents/ на /incoming/
- URL names: incoming-document-* → incoming-*
- Удалены старые views, forms, templates для Incoming/IncomingBatch
- Обновлена навигация и все ссылки в шаблонах
- Модели IncomingBatch/Incoming сохранены как внутренняя архитектура

Удалено ~1590 строк кода:
- inventory/views/incoming.py (389 строк)
- inventory/forms.py (206 строк старых форм)
- inventory/admin.py (56 строк)
- 4 шаблона incoming/*.html (895 строк)

Обновлено:
- inventory/urls.py - новая URL структура
- inventory/views/incoming_document.py - обновлены redirects
- Все шаблоны с ссылками на incoming

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

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
2025-12-26 17:33:00 +03:00
parent d2384394c8
commit c9ff778630
16 changed files with 30 additions and 1590 deletions

View File

@@ -3,8 +3,6 @@ from django.urls import path
from .views import (
# Warehouse
WarehouseListView, WarehouseCreateView, WarehouseUpdateView, WarehouseDeleteView, SetDefaultWarehouseView,
# Incoming
IncomingListView, IncomingCreateView, IncomingAdjustmentCreateView, IncomingUpdateView, IncomingDeleteView,
# IncomingBatch
IncomingBatchListView, IncomingBatchDetailView,
# Sale
@@ -66,13 +64,6 @@ urlpatterns = [
path('warehouses/<int:pk>/delete/', WarehouseDeleteView.as_view(), name='warehouse-delete'),
path('warehouses/<int:pk>/set-default/', SetDefaultWarehouseView.as_view(), name='warehouse-set-default'),
# ==================== INCOMING ====================
path('incoming/', IncomingListView.as_view(), name='incoming-list'),
path('incoming/create/', IncomingCreateView.as_view(), name='incoming-create'),
path('incoming/adjustment/create/', IncomingAdjustmentCreateView.as_view(), name='incoming-adjustment-create'),
path('incoming/<int:pk>/edit/', IncomingUpdateView.as_view(), name='incoming-update'),
path('incoming/<int:pk>/delete/', IncomingDeleteView.as_view(), name='incoming-delete'),
# ==================== INCOMING BATCH ====================
path('incoming-batches/', IncomingBatchListView.as_view(), name='incoming-batch-list'),
path('incoming-batches/<int:pk>/', IncomingBatchDetailView.as_view(), name='incoming-batch-detail'),
@@ -112,15 +103,15 @@ urlpatterns = [
path('writeoff-documents/<int:pk>/confirm/', WriteOffDocumentConfirmView.as_view(), name='writeoff-document-confirm'),
path('writeoff-documents/<int:pk>/cancel/', WriteOffDocumentCancelView.as_view(), name='writeoff-document-cancel'),
# ==================== INCOMING DOCUMENT (документы поступления) ====================
path('incoming-documents/', IncomingDocumentListView.as_view(), name='incoming-document-list'),
path('incoming-documents/create/', IncomingDocumentCreateView.as_view(), name='incoming-document-create'),
path('incoming-documents/<int:pk>/', IncomingDocumentDetailView.as_view(), name='incoming-document-detail'),
path('incoming-documents/<int:pk>/add-item/', IncomingDocumentAddItemView.as_view(), name='incoming-document-add-item'),
path('incoming-documents/<int:pk>/update-item/<int:item_pk>/', IncomingDocumentUpdateItemView.as_view(), name='incoming-document-update-item'),
path('incoming-documents/<int:pk>/remove-item/<int:item_pk>/', IncomingDocumentRemoveItemView.as_view(), name='incoming-document-remove-item'),
path('incoming-documents/<int:pk>/confirm/', IncomingDocumentConfirmView.as_view(), name='incoming-document-confirm'),
path('incoming-documents/<int:pk>/cancel/', IncomingDocumentCancelView.as_view(), name='incoming-document-cancel'),
# ==================== INCOMING (документы поступления) ====================
path('incoming/', IncomingDocumentListView.as_view(), name='incoming-list'),
path('incoming/create/', IncomingDocumentCreateView.as_view(), name='incoming-create'),
path('incoming/<int:pk>/', IncomingDocumentDetailView.as_view(), name='incoming-detail'),
path('incoming/<int:pk>/add-item/', IncomingDocumentAddItemView.as_view(), name='incoming-add-item'),
path('incoming/<int:pk>/update-item/<int:item_pk>/', IncomingDocumentUpdateItemView.as_view(), name='incoming-update-item'),
path('incoming/<int:pk>/remove-item/<int:item_pk>/', IncomingDocumentRemoveItemView.as_view(), name='incoming-remove-item'),
path('incoming/<int:pk>/confirm/', IncomingDocumentConfirmView.as_view(), name='incoming-confirm'),
path('incoming/<int:pk>/cancel/', IncomingDocumentCancelView.as_view(), name='incoming-cancel'),
# ==================== TRANSFER ====================
path('transfers/', TransferListView.as_view(), name='transfer-list'),