分配計画機能を実装

施肥計画の圃場を配置場所単位でグループ化し、グループ×肥料の集計表を
表示・PDF出力できる機能を追加。

- Backend: DistributionPlan/Group/GroupField モデル (migration 0003)
- API: GET/POST/PUT/DELETE/PDF (/api/fertilizer/distribution/)
- Frontend: 一覧・新規作成・編集画面 (/distribution)
- Navbar に分配計画メニューを追加
- 集計プレビューはクライアントサイド計算(API不要)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Akira
2026-03-02 09:43:20 +09:00
parent 0d321df1c4
commit 466eef128c
15 changed files with 1656 additions and 5 deletions

View File

@@ -1,5 +1,5 @@
from django.contrib import admin
from .models import Fertilizer, FertilizationPlan, FertilizationEntry
from .models import Fertilizer, FertilizationPlan, FertilizationEntry, DistributionPlan, DistributionGroup, DistributionGroupField
@admin.register(Fertilizer)
@@ -17,3 +17,27 @@ class FertilizationPlanAdmin(admin.ModelAdmin):
list_display = ['name', 'year', 'variety']
list_filter = ['year']
inlines = [FertilizationEntryInline]
class DistributionGroupFieldInline(admin.TabularInline):
model = DistributionGroupField
extra = 0
readonly_fields = ['distribution_plan']
class DistributionGroupInline(admin.TabularInline):
model = DistributionGroup
extra = 0
@admin.register(DistributionPlan)
class DistributionPlanAdmin(admin.ModelAdmin):
list_display = ['name', 'fertilization_plan', 'created_at']
list_filter = ['fertilization_plan__year']
inlines = [DistributionGroupInline]
@admin.register(DistributionGroup)
class DistributionGroupAdmin(admin.ModelAdmin):
list_display = ['name', 'distribution_plan', 'order']
inlines = [DistributionGroupFieldInline]