refactor: стандартизация моделей документов перемещения

Приведение к единому паттерну именования документов:
- TransferBatch → TransferDocument
- TransferItem → TransferDocumentItem
- Удалена устаревшая модель Transfer (одиночные перемещения)
- Удалена неиспользуемая модель StockMovement

Изменения:
- models.py: переименование классов, обновление related_names
- admin.py: удаление регистраций Transfer/StockMovement
- forms.py: обновление TransferHeaderForm
- views/transfer.py: обновление всех view классов
- templates: замена transfer_batch → transfer_document
- urls.py: удаление путей для movements
- views/__init__.py: удаление импорта StockMovementListView
- views/movements.py: удален файл

Миграция: 0005_refactor_transfer_models
- RenameModel операции для сохранения данных
- DeleteModel для Transfer и StockMovement

Единый паттерн: *Document + *DocumentItem
(WriteOffDocument, IncomingDocument, TransferDocument)

🤖 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 20:29:11 +03:00
parent c534e27c41
commit 08bae834c8
9 changed files with 84 additions and 170 deletions

View File

@@ -1,6 +1,6 @@
{% extends 'base.html' %}
{% block title %}Документ перемещения {{ transfer_batch.document_number }}{% endblock %}
{% block title %}Документ перемещения {{ transfer_document.document_number }}{% endblock %}
{% block content %}
<div class="container-fluid px-4 py-3">
@@ -8,7 +8,7 @@
<nav aria-label="breadcrumb" class="mb-2">
<ol class="breadcrumb breadcrumb-sm mb-0">
<li class="breadcrumb-item"><a href="{% url 'inventory:transfer-list' %}">Перемещения</a></li>
<li class="breadcrumb-item active">{{ transfer_batch.document_number }}</li>
<li class="breadcrumb-item active">{{ transfer_document.document_number }}</li>
</ol>
</nav>
@@ -18,36 +18,36 @@
<div class="card border-0 shadow-sm mb-3">
<div class="card-header bg-light py-3">
<h5 class="mb-0">
<i class="bi bi-arrow-left-right me-2"></i>{{ transfer_batch.document_number }}
<i class="bi bi-arrow-left-right me-2"></i>{{ transfer_document.document_number }}
</h5>
</div>
<div class="card-body">
<div class="row mb-3">
<div class="col-md-6">
<p class="text-muted small mb-1">Склад-отгрузки</p>
<p class="fw-semibold">{{ transfer_batch.from_warehouse.name }}</p>
<p class="fw-semibold">{{ transfer_document.from_warehouse.name }}</p>
</div>
<div class="col-md-6">
<p class="text-muted small mb-1">Склад-приемки</p>
<p class="fw-semibold">{{ transfer_batch.to_warehouse.name }}</p>
<p class="fw-semibold">{{ transfer_document.to_warehouse.name }}</p>
</div>
</div>
{% if transfer_batch.notes %}
{% if transfer_document.notes %}
<div class="mb-3">
<p class="text-muted small mb-1">Примечания</p>
<p>{{ transfer_batch.notes }}</p>
<p>{{ transfer_document.notes }}</p>
</div>
{% endif %}
<div class="row">
<div class="col-md-6">
<p class="text-muted small mb-1">Дата создания</p>
<p class="fw-semibold">{{ transfer_batch.created_at|date:"d.m.Y H:i" }}</p>
<p class="fw-semibold">{{ transfer_document.created_at|date:"d.m.Y H:i" }}</p>
</div>
<div class="col-md-6">
<p class="text-muted small mb-1">Последнее обновление</p>
<p class="fw-semibold">{{ transfer_batch.updated_at|date:"d.m.Y H:i" }}</p>
<p class="fw-semibold">{{ transfer_document.updated_at|date:"d.m.Y H:i" }}</p>
</div>
</div>
</div>
@@ -132,7 +132,7 @@
<a href="{% url 'inventory:transfer-list' %}" class="btn btn-outline-secondary btn-sm">
<i class="bi bi-arrow-left me-1"></i>Вернуться к списку
</a>
<a href="{% url 'inventory:transfer-delete' transfer_batch.id %}" class="btn btn-outline-danger btn-sm">
<a href="{% url 'inventory:transfer-delete' transfer_document.id %}" class="btn btn-outline-danger btn-sm">
<i class="bi bi-trash me-1"></i>Удалить
</a>
</div>