CLAUDE.md・施肥計画マスタードキュメントを最終更新
- FertilizationEntry.fertilizer PROTECT化を反映 - alert/confirm廃止・インラインバナー方針を記録 - 実装状況セクションに施肥計画機能を追加 - マスタードキュメント index に13を追加 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -1,8 +1,9 @@
|
||||
# マスタードキュメント:施肥計画機能
|
||||
|
||||
> **作成**: 2026-03-01
|
||||
> **最終更新**: 2026-03-01
|
||||
> **対象機能**: 施肥計画(年度×品種単位のマトリクス管理)
|
||||
> **実装状況**: 実装完了(commit f207f5d)
|
||||
> **実装状況**: 実装完了・本番稼働中(最終 commit deb03ef)
|
||||
|
||||
---
|
||||
|
||||
@@ -56,7 +57,7 @@
|
||||
| id | int | PK | |
|
||||
| plan | FK(FertilizationPlan) | CASCADE | |
|
||||
| field | FK(fields.Field) | CASCADE | |
|
||||
| fertilizer | FK(Fertilizer) | CASCADE | |
|
||||
| fertilizer | FK(Fertilizer) | **PROTECT** | 施肥計画で使用中の肥料は削除不可 |
|
||||
| bags | decimal(8,2) | required | 袋数 |
|
||||
|
||||
- `unique_together = ['plan', 'field', 'fertilizer']`
|
||||
@@ -277,7 +278,8 @@ GET /api/plans/crops/
|
||||
- 肥料一覧テーブル(名前・メーカー・容量・窒素・リン酸・カリ・備考)
|
||||
- インライン行編集(EditRow コンポーネント)
|
||||
- 新規追加フォーム
|
||||
- 削除確認ダイアログ
|
||||
- 削除ボタン押下で即削除を試みる(confirm ダイアログなし)
|
||||
- 施肥計画で使用中の場合は PROTECT によりバックエンドが 500 を返し、赤いインラインバナーで理由を表示
|
||||
|
||||
### 施肥計画編集(`/fertilizer/new` / `/fertilizer/[id]/edit`)
|
||||
|
||||
@@ -341,7 +343,8 @@ backend/apps/fertilizer/
|
||||
├── views.py # FertilizerViewSet, FertilizationPlanViewSet, CandidateFieldsView, CalculateView
|
||||
├── urls.py # DefaultRouter + candidate_fields/ + calculate/
|
||||
├── migrations/
|
||||
│ └── 0001_initial.py
|
||||
│ ├── 0001_initial.py
|
||||
│ └── 0002_alter_fertilizationentry_fertilizer.py # CASCADE → PROTECT
|
||||
└── templates/
|
||||
└── fertilizer/
|
||||
└── pdf.html # WeasyPrint テンプレート(A4横向き)
|
||||
@@ -417,6 +420,16 @@ export interface FertilizationPlan {
|
||||
|
||||
## 注意点・既知の問題
|
||||
|
||||
### エラー表示方針(confirm/alert を使わない)
|
||||
|
||||
ブラウザが `alert()` / `confirm()` をブロックすると操作が無音で失敗する問題を受けて、
|
||||
施肥機能全体で alert/confirm を廃止し、React インラインバナーに統一した。
|
||||
|
||||
- **保存失敗**: `saveError` state → ヘッダー直下に赤いバナー(✕で閉じられる)
|
||||
- **肥料削除失敗**: `deleteError` state → テーブル上部に赤いバナー
|
||||
- **計画削除失敗**: `deleteError` state → 一覧上部に赤いバナー
|
||||
- **肥料列の除去**: ローカルstate操作のみ(失敗しない)
|
||||
|
||||
### URL ルーティング競合(解決済み)
|
||||
|
||||
plans アプリの `DefaultRouter(r'', PlanViewSet)` が `plans/get-crops-with-varieties/` を
|
||||
|
||||
Reference in New Issue
Block a user