更新内容のサマリー

1. 04_画面設計書.md — 画面5 拡張
圃場詳細画面に追加した仕様(E-2):

共済/中山間セクションに [+追加]ボタン → モーダルで全マスタから検索・複数選択して紐づけ
各行に [×]ボタン → 確認ダイアログ付きで紐づけ解除
面積整合性チェック: 圃場面積 vs 紐づけ区画の合計面積を比較し、一致 / ⚠️差異ありを表示
PC/スマホ両方のレイアウト定義
必要なAPI 6本の定義(紐づけ追加・解除の CRUD)
圃場一覧画面にも追加:

「共済」「中山間」の紐づけ件数列
未紐づけ・面積不一致の ⚠️ 警告表示
2. 06_差異レポート.md — E-2 追加
新タスク E-2: 対応付け可視化・紐づけ管理機能 をサマリーテーブルに追加

3. CLAUDE.md — 次タスク更新
完了済みタスク(A-8, D-1〜D-4, E-1)を既知の課題から除外
E-2を最優先タスクに設定
This commit is contained in:
Akira
2026-02-18 13:44:40 +09:00
parent bcb7413bad
commit 103331f761
4 changed files with 165 additions and 44 deletions

View File

@@ -17,7 +17,12 @@
"Bash(docker ps:*)",
"Bash(docker exec:*)",
"Bash(npx playwright test:*)",
"Bash(docker restart:*)"
"Bash(docker restart:*)",
"Bash(python3 -c:*)",
"Bash(py:*)",
"Bash(py -3:*)",
"Bash(/c/Users/akira/Develop/keinasystem_t02/.venv/Scripts/python:*)",
"Bash(PYTHONIOENCODING=utf-8 /c/Users/akira/Develop/keinasystem_t02/.venv/Scripts/python:*)"
]
}
}

View File

@@ -209,25 +209,18 @@ Variety (品種マスタ)
2. **エラーハンドリング**: フロントエンドでの統一的なエラー表示が未実装
3. **テスト**: 自動テストが未実装Phase 2で追加予定
4. **パフォーマンス**: N+1問題が一部存在現状は問題ないが、データ増加時に対応必要
5. **セキュリティ**: DEFAULT_PERMISSION_CLASSES が AllowAny → IsAuthenticated に変更必要
6. **settings.py**: LANGUAGE_CODE と TIME_ZONE が二重定義されている(前の定義を削除)
7. **PDF生成バグ**: reports/views.py で variety が null 時にクラッシュnull チェック未実装)
8. **init_crops.py**: 不正データを含むため削除予定
9. **PDF帳票**: 現在のテンプレートは仕様と不一致(中国語混入、セクション形式、@page未設定)→ 再設計必要
10. **中山間モデル**: 現在6フィールド → 17フィールドに拡張必要E-1c
5. **対応付け可視化**: 圃場と共済/中山間マスタのM:N紐づけを管理する画面がないE-2で対応予定
### 🔜 次の実装タスク(優先順)
1. **A-8**: 圃場詳細に共済/中山間情報表示(最優先
2. **D-1〜D-4**: バグ修正null crash, settings二重定義, AllowAny→IsAuthenticated, init_crops削除
3. **E-1**: PDF帳票フォーマット再設計中山間モデル拡張含む
4. **A-3**: 前年度コピーボタンFrontend
5. **A-4**: 品種のインライン追加・削除
6. **A-5**: PDFプレビュー機能
7. **A-6**: エクスポート機能(サーバー移行時のデータ移動用)
8. **A-2**: チェックボックス・一括操作
9. **A-1**: ダッシュボード画面
10. **A-7**: 検索・フィルタ
1. **E-2**: 対応付け可視化・紐づけ管理(圃場詳細画面の拡張、面積整合性チェック
2. **A-3**: 前年度コピーボタンFrontend
3. **A-4**: 品種のインライン追加・削除
4. **A-5**: PDFプレビュー機能
5. **A-6**: エクスポート機能(サーバー移行時のデータ移動用)
6. **A-2**: チェックボックス・一括操作
7. **A-1**: ダッシュボード画面
8. **A-7**: 検索・フィルタ
詳細は `document/06_ドキュメントvs実装_差異レポート.md` を参照
@@ -318,5 +311,6 @@ docker-compose exec backend python manage.py migrate
## 📝 更新履歴
- 2026-02-18: E-2対応付け可視化・紐づけ管理仕様追加。画面設計書・差異レポート・次タスク一覧を更新。完了済みタスク(A-8, D-1〜D-4, E-1)を既知の課題から除外
- 2026-02-17: ドキュメント一斉更新差異レポートA〜E反映、CSV→PDF統一、M:N関係、中山間モデル17列化、インライン編集方式、Navbar追加、既知の課題・次タスク一覧追加
- 2026-02-16: 初版作成(ハイブリッドアプローチの方針決定)

View File

@@ -319,15 +319,77 @@
- [x] [新規作成]ボタン → 画面6へ遷移
- [x] [✏️ 編集]ボタン → 画面5圃場詳細へ遷移
- [x] [🗑 削除]ボタン → 確認ダイアログ後に削除
- [ ] **紐づけ状況列E-2****未実装**
- [ ] 「共済」列: 紐づけ件数表示(例: 「2件」。0件の場合は「⚠ 未紐づけ」と警告表示
- [ ] 「中山間」列: 紐づけ件数表示。0件の場合は「⚠ 未紐づけ」と警告表示
- [ ] 面積不一致がある場合は件数の横に ⚠️ を表示
---
## 画面5: 圃場詳細・編集
### 目的
個別の圃場情報を確認・編集。田んぼにいるときにスマホで確認する用途も想定。
個別の圃場情報を確認・編集。共済/中山間マスタとの紐づけ管理。田んぼにいるときにスマホで確認する用途も想定。
### レイアウトPC/スマホ共通
### レイアウトPC
```
┌────────────────────────────────────────────────────────────┐
│ ← 一覧に戻る │
├────────────────────────────────────────────────────────────┤
│ │
│ 圃場名 住所 │
│ [口神 北中___________] [口神笹ヶ谷374-1)___] │
│ │
│ 面積(反) 面積m2 所有者 グループ名 │
│ [0.4___] [400___] [吉田___] [口神___] │
│ │
│ [保存] │
│ │
├────────────────────────────────────────────────────────────┤
│ │
│ 📋 共済情報 (2件) 合計面積: 800m2 [+追加] │
│ ⚠️ 面積差異: 圃場400m2 ≠ 共済合計800m2 │
│ ─────────────────────────────────────────────────────── │
│ 耕地-分筆 漢字地名 住所 面積(m2) 操作│
│ ─────────────────────────────────────────────────────── │
│ 2-1 四万十町 笹ヶ谷 374-1 笹ヶ谷... 400 [×]│
│ 2-2 四万十町 笹ヶ谷 374-2 笹ヶ谷... 400 [×]│
│ │
├────────────────────────────────────────────────────────────┤
│ │
│ 📋 中山間情報 (1件) 合計面積: 400m2 [+追加] │
│ ✅ 面積一致 │
│ ─────────────────────────────────────────────────────── │
│ ID 所在地 面積(m2) 支払金額 操作 │
│ ─────────────────────────────────────────────────────── │
│ 50 口神ノ川 壱町切 1694 400 ¥8,000 [×] │
│ │
└────────────────────────────────────────────────────────────┘
```
**[+追加]ボタン押下時 — 紐づけ追加モーダル:**
```
┌────────────────────────────────────────────┐
│ 共済区画を追加 [×] │
├────────────────────────────────────────────┤
│ │
│ 🔍 [検索: 地番・漢字地名で絞り込み____] │
│ │
│ ─────────────────────────────────────── │
│ □ 3-1 四万十町 笹ヶ谷 375 300m2 │
│ □ 4-1 四万十町 笹ヶ谷 376 250m2 │
│ □ 5-1 四万十町 口神ノ川 198 500m2 │
│ ─────────────────────────────────────── │
│ ※ 既に他の圃場に紐づいている区画は │
│ (🔗 圃場名) で表示 │
│ │
│ [選択した区画を追加] │
│ │
└────────────────────────────────────────────┘
```
### レイアウト(スマホ)
```
┌────────────────────────────────────┐
@@ -336,33 +398,35 @@
│ │
│ 圃場名 │
│ [口神 北中________________] │
│ │
│ 住所 │
│ [口神笹ヶ谷374-1)__] │
面積(反)
[0.4___]
│ 面積m2
│ [400___] │
│ │
│ 所有者 │
│ [吉田___] │
│ │
│ グループ名 │
│ [口神___] │
│ │
│ 📋 共済情報Phase 1 予定) │
│ 紐づき共済区画: 2件 │
│ • 耕地2-1: 四万十町 笹ヶ谷 374-1 │
│ • 耕地2-2: 四万十町 笹ヶ谷 374-2 │
│ │
│ 📋 中山間情報Phase 1 予定) │
│ 紐づき中山間区画: 1件 │
│ • ID50: 口神ノ川 壱町切 1694 │
面積(反) 面積m2
[0.4___] [400___]
所有者 グループ名
[吉田___] [口神___]
│ │
│ [保存] │
│ │
├────────────────────────────────────┤
│ 📋 共済情報 (2件) [+追加] │
│ ⚠️ 面積差異: 400m2≠800m2 │
│ ┌──────────────────────────────┐│
│ │ 2-1 四万十町笹ヶ谷374-1 ││
│ │ 400m2 [×] ││
│ └──────────────────────────────┘│
│ ┌──────────────────────────────┐│
│ │ 2-2 四万十町笹ヶ谷374-2 ││
│ │ 400m2 [×] ││
│ └──────────────────────────────┘│
│ │
├────────────────────────────────────┤
│ 📋 中山間情報 (1件) [+追加] │
│ ✅ 面積一致 │
│ ┌──────────────────────────────┐│
│ │ ID50 口神川壱町切1694 ││
│ │ 400m2 ¥8,000 [×] ││
│ └──────────────────────────────┘│
│ │
└────────────────────────────────────┘
```
@@ -372,11 +436,39 @@
- [x] [保存]ボタン → PATCH API で更新
- [x] [← 一覧に戻る] → `/fields` へ遷移
- [x] エラーメッセージ表示
- [ ] **共済/中山間情報の表示****未実装A-8: 最優先で実装予定)**
- 紐づいている共済区画の一覧(耕地番号-分筆、漢字地名
- 紐づいている中山間区画の一覧ID、所在地
- [x] 共済情報の読み取り専用テーブル表示A-8 完了)
- [x] 中山間情報の読み取り専用テーブル表示A-8 完了
- [ ] **紐づけ管理機能E-2: 対応付け可視化・編集)****未実装**
- [ ] 共済/中山間セクションに [+追加] ボタン
- [ ] 追加モーダル: 未紐づけの区画一覧から選択して追加
- [ ] 検索フィルタ地番、漢字地名、IDで絞り込み
- [ ] 既に他の圃場に紐づいている区画は紐づけ先を表示M:N のため追加は可能)
- [ ] 各行に [×] ボタンで紐づけ解除(区画自体は削除しない)
- [ ] 確認ダイアログ: 「この紐づけを解除しますか?」
- [ ] **面積整合性チェックE-2****未実装**
- [ ] 圃場面積 vs 紐づけ区画合計面積を比較表示
- [ ] 一致: ✅ アイコン表示
- [ ] 不一致: ⚠️ アイコン + 差異を表示(例: 「圃場400m2 ≠ 共済合計800m2」
- [ ] ※ M:N のため必ずしも一致しなくてよい場合もある。あくまで参考情報
- [ ] 将来的に栽培履歴も表示Phase 2
### 必要なAPIE-2 用)
| メソッド | エンドポイント | 説明 |
|---------|---------------|------|
| GET | `/api/kyosai-fields/` | 共済マスタ全件取得(紐づけ追加モーダル用) |
| GET | `/api/chusankan-fields/` | 中山間マスタ全件取得(紐づけ追加モーダル用) |
| POST | `/api/fields/{id}/kyosai-links/` | 共済紐づけ追加 `{ kyosai_field_ids: [1,2,3] }` |
| DELETE | `/api/fields/{id}/kyosai-links/{kyosai_id}/` | 共済紐づけ解除 |
| POST | `/api/fields/{id}/chusankan-links/` | 中山間紐づけ追加 `{ chusankan_field_ids: [1,2,3] }` |
| DELETE | `/api/fields/{id}/chusankan-links/{chusankan_id}/` | 中山間紐づけ解除 |
### デザインノート
- [+追加] ボタンはセクション見出しの右端に配置
- [×] ボタンは各行の右端、テキストリンクスタイル(赤系)
- 面積チェックは情報表示のみ(警告であり、保存をブロックしない)
- モーダルの区画一覧はチェックボックス選択式(複数同時追加可能)
---
## 画面6: 圃場新規作成

View File

@@ -221,6 +221,35 @@
---
### E-2: 対応付け可視化・紐づけ管理機能
- **背景**: 3つのODSデータファイル吉田農地台帳 → Field、水稲共済細目用 → OfficialKyosaiField、中山間 → OfficialChusankanField間のM:N対応関係を確認・編集する手段がない
- **現状**: 圃場詳細画面に共済/中山間の読み取り専用テーブルはあるA-8完了が、紐づけの追加・解除ができない。面積の整合性チェックもない
- **状態**: 🔜 未着手
**対応方針(仕様は画面設計書 画面5 に記載済み):**
1. **圃場詳細画面(/fields/[id])の拡張**:
- 共済/中山間セクションに [+追加] ボタンを追加
- 追加モーダル: 全マスタ一覧から検索・選択して紐づけ追加(チェックボックス複数選択)
- 各行に [×] ボタンで紐づけ解除(確認ダイアログ付き)
- 面積整合性チェック: 圃場面積 vs 紐づけ区画合計面積の比較表示(✅ 一致 / ⚠️ 差異あり)
2. **圃場一覧画面(/fieldsの拡張**:
- 「共済」「中山間」列を追加し、紐づけ件数を表示
- 未紐づけ圃場は ⚠️ 警告表示
- 面積不一致がある場合も ⚠️ 表示
3. **必要なバックエンドAPI**:
- `GET /api/kyosai-fields/` — 共済マスタ全件取得
- `GET /api/chusankan-fields/` — 中山間マスタ全件取得
- `POST /api/fields/{id}/kyosai-links/` — 共済紐づけ追加
- `DELETE /api/fields/{id}/kyosai-links/{kyosai_id}/` — 共済紐づけ解除
- `POST /api/fields/{id}/chusankan-links/` — 中山間紐づけ追加
- `DELETE /api/fields/{id}/chusankan-links/{chusankan_id}/` — 中山間紐づけ解除
---
## 対応状況サマリー
| カテゴリ | 項目 | 状態 |
@@ -237,3 +266,4 @@
| C-1〜C-8 | ドキュメント/実装の食い違い修正 | ✅ 全件完了 |
| D-1〜D-4 | 不具合修正 | ✅ 全件完了 |
| E-1 | PDF帳票再設計 | ✅ 完了 |
| E-2 | 対応付け可視化・紐づけ管理 | 🔜 未着手 |