分配計画機能を実装
施肥計画の圃場を配置場所単位でグループ化し、グループ×肥料の集計表を 表示・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:
28
CLAUDE.md
28
CLAUDE.md
@@ -190,6 +190,23 @@ FertilizationEntry (施肥エントリ・中間テーブル)
|
||||
├── fertilizer (FK to Fertilizer, PROTECT) ← 使用中の肥料は削除不可
|
||||
├── bags(袋数、Decimal)
|
||||
└── unique_together = ['plan', 'field', 'fertilizer']
|
||||
|
||||
DistributionPlan (分配計画)
|
||||
├── fertilization_plan (FK to FertilizationPlan, CASCADE)
|
||||
├── name(計画名)
|
||||
└── groups → DistributionGroup
|
||||
|
||||
DistributionGroup (分配グループ)
|
||||
├── distribution_plan (FK to DistributionPlan, CASCADE)
|
||||
├── name(グループ名)
|
||||
├── order(表示順)
|
||||
└── unique_together = ['distribution_plan', 'name']
|
||||
|
||||
DistributionGroupField (グループ圃場割り当て)
|
||||
├── distribution_plan (FK to DistributionPlan, CASCADE) ← 一意制約用
|
||||
├── group (FK to DistributionGroup, CASCADE)
|
||||
├── field (FK to fields.Field, PROTECT)
|
||||
└── unique_together = ['distribution_plan', 'field'] ← 1圃場=1グループ/1計画
|
||||
```
|
||||
|
||||
### 重要な設計判断
|
||||
@@ -324,7 +341,14 @@ FertilizationEntry (施肥エントリ・中間テーブル)
|
||||
- API(JWT認証): `GET/POST /api/fertilizer/fertilizers/`, `GET/POST /api/fertilizer/plans/?year=`, `GET /api/fertilizer/plans/{id}/pdf/`, `GET /api/fertilizer/candidate_fields/?year=&variety_id=`, `POST /api/fertilizer/calculate/`
|
||||
- 自動計算3方式: 反当袋数(per_tan)、均等配分(even)、反当チッソ(nitrogen)
|
||||
- フロントエンド: `/fertilizer/`(一覧), `/fertilizer/new`・`/fertilizer/[id]/edit`(編集・マトリクス表), `/fertilizer/masters/`(肥料マスタ)
|
||||
- スコープ外(将来): 購入管理、配置計画
|
||||
- スコープ外(将来): 購入管理
|
||||
11. **分配計画機能**(2026-03-02 実装):
|
||||
- Django `apps/fertilizer` アプリに3モデル追加(DistributionPlan, DistributionGroup, DistributionGroupField)
|
||||
- API(JWT認証): `GET/POST /api/fertilizer/distribution/?year=`, `GET/PUT/DELETE /api/fertilizer/distribution/{id}/`, `GET /api/fertilizer/distribution/{id}/pdf/`
|
||||
- 施肥計画を元に圃場をカスタムグループに割り当て、グループ×肥料の集計表を生成
|
||||
- PDF出力(A4横向き・グループ合計行★+圃場サブ行)
|
||||
- フロントエンド: `/distribution/`(一覧), `/distribution/new`・`/distribution/[id]/edit`(編集)
|
||||
- マスタードキュメント: `document/14_マスタードキュメント_分配計画編.md`
|
||||
|
||||
### 🚧 既知の課題・技術的負債
|
||||
|
||||
@@ -451,6 +475,7 @@ docker-compose exec backend python manage.py migrate
|
||||
- **メール通知機能**: `document/11_マスタードキュメント_メール通知関連編.md`
|
||||
- **気象データ機能**: `document/12_マスタードキュメント_気象データ編.md`
|
||||
- **施肥計画機能**: `document/13_マスタードキュメント_施肥計画編.md`
|
||||
- **分配計画機能**: `document/14_マスタードキュメント_分配計画編.md`
|
||||
|
||||
### 設計ドキュメント(プロジェクト横断)
|
||||
|
||||
@@ -476,6 +501,7 @@ docker-compose exec backend python manage.py migrate
|
||||
## 📝 更新履歴
|
||||
|
||||
- 2026-02-28: Cursor連携を廃止。Claude Code 単独運用に変更。`document/20_Cursor_Claude連携ガイド.md` を削除
|
||||
- 2026-03-02: 分配計画機能を実装。`apps/fertilizer` に DistributionPlan/DistributionGroup/DistributionGroupField 追加、API `/api/fertilizer/distribution/`、PDF出力(A4横・グループ★行+圃場サブ行)、フロントエンド `/distribution/`。マスタードキュメント `document/14_マスタードキュメント_分配計画編.md` 追加
|
||||
- 2026-03-01: 施肥計画機能を実装・本番稼働。`apps/fertilizer`(Fertilizer, FertilizationPlan, FertilizationEntry, 自動計算3方式, PDF出力, PROTECT migration 0002)、フロントエンド `/fertilizer/`(一覧・編集・肥料マスタ)。施肥機能全体で alert/confirm 廃止・インラインバナーに統一。マスタードキュメント `document/13_マスタードキュメント_施肥計画編.md` 追加
|
||||
- 2026-02-28: 気象データ機能を実装・本番稼働。`apps/weather`(WeatherRecord, 5 API)、Windmill `f/weather/weather_sync`(毎朝6時)、フロントエンド `/weather`(年別集計・期間指定・Rechartsグラフ)。`Crop.base_temp` 追加。デプロイコマンドの本番パス修正(/home/keinasystem/)。マスタードキュメント `document/12_マスタードキュメント_気象データ編.md` 追加
|
||||
- 2026-02-25: CLAUDE.md更新。パスワード変更機能追記。メールフィルタリング機能を本番稼働済みに更新。マスタードキュメント `document/11_マスタードキュメント_メール通知関連編.md` リンク追加。デプロイコマンド(`--env-file .env.production` 必須)をトラブルシューティングに追加
|
||||
|
||||
Reference in New Issue
Block a user