新規ファイル ファイル 内容 LinkModal.tsx 共通コンポーネントとして切り出し(圃場詳細・対応表の両方で使用) 変更ファイル ファイル 変更内容 fields/page.tsx [通常] / [対応表] トグルボタンを追加。対応表モードでは圃場名・面積・共済漢字地名・中山間所在地を横並び表示。各行で直接+追加/x解除が可能 fields/[id]/page.tsx LinkModalのインポートを共通コンポーネントに変更 04_画面設計書.md 画面4に対応表モードのレイアウト・機能要件を追記 06_差異レポート.md E-2の実装状況を更新 対応表モードの機能 一覧表示: 圃場名 / 面積(反) / 共済(耕地-分筆 + 漢字地名) / 中山間(ID + 所在地) 直接編集: 各セルの[+追加]ボタンで検索モーダルを開いて紐づけ追加 紐づけ解除: 各レコードにホバーで表示される[x]ボタン(確認ダイアログ付き) 複数紐づけ: 同一セル内に改行で表示 圃場名クリック: 詳細画面(/fields/[id])に遷移 http://localhost:3000/fields で「対応表」ボタンを押して確認できます。
256 lines
10 KiB
Markdown
256 lines
10 KiB
Markdown
# ドキュメント vs 実装 差異レポート
|
||
|
||
> **作成日**: 2026-02-16
|
||
> **最終更新**: 2026-02-17
|
||
> **目的**: ドキュメントと実装の差異を洗い出し、対応方針を決定する
|
||
|
||
---
|
||
|
||
## A. ドキュメントに書かれているが実装されていないもの
|
||
|
||
### A-1: ダッシュボード画面
|
||
|
||
- **ドキュメント**: 画面設計書 画面2 - 概要サマリー(全圃場数/作付け済み/未割当)、クイックアクセスボタン、最近の変更履歴
|
||
- **実装**: `/` はトークンの有無で `/allocation` か `/login` にリダイレクトするだけ
|
||
- **影響**: なくても作付け計画画面から全機能にアクセス可能。Navbarで各画面に遷移できる
|
||
- **状態**: 🔜 未着手
|
||
|
||
**対応方針**: 将来、機能追加する時には、ここにボタンが増えていく形式になっていくはずなので必要です
|
||
|
||
---
|
||
|
||
### A-2: チェックボックスによる一括操作
|
||
|
||
- **ドキュメント**: 画面設計書 画面3 - 各行にチェックボックス、複数選択→一括割当
|
||
- **実装**: チェックボックスなし、一括操作UI なし
|
||
- **補足**: Backend には `POST /api/plans/bulk_update/` APIが既に存在する
|
||
- **状態**: 🔜 未着手
|
||
|
||
**対応方針**: 利便性向上の為必要です。
|
||
|
||
---
|
||
|
||
### A-3: 前年度コピー機能(フロントエンド)
|
||
|
||
- **ドキュメント**: ユーザーストーリー P1-5、画面設計書 画面3 - [前年度をコピー]ボタン
|
||
- **実装**: Backend API (`POST /api/plans/copy_from_previous_year/`) は存在するが、Frontend にボタンがない
|
||
- **影響**: 毎年手動で39筆を設定する必要がある
|
||
- **状態**: 🔜 未着手
|
||
|
||
**対応方針**: 必要な項目です。
|
||
|
||
---
|
||
|
||
### A-4: 品種のインライン追加
|
||
|
||
- **ドキュメント**: 画面設計書 画面4 - [+ 新しい品種を追加]ボタン、その場で入力して即座にマスタ登録
|
||
- **実装**: 既存品種からの選択のみ。新品種の追加はDjango管理画面からのみ可能
|
||
- **影響**: 運用中に新品種が出てきた場合、管理画面を開く必要がある
|
||
- **状態**: 🔜 未着手
|
||
|
||
**対応方針**: 追加出来る事は必要です。削除も出来ないと間違って追加した時に不便です
|
||
|
||
---
|
||
|
||
### A-5: PDFプレビュー機能
|
||
|
||
- **ドキュメント**: 画面設計書 画面6 - [プレビュー]ボタンで新タブにPDF表示
|
||
- **実装**: ダウンロードボタンのみ(プレビューなし)
|
||
- **影響**: ダウンロード前に内容確認ができない
|
||
- **状態**: 🔜 未着手
|
||
|
||
**対応方針**: プレビューしてから保存、もしくは、印刷出来るようにしたいです。
|
||
|
||
---
|
||
|
||
### A-6: エクスポート機能(CSV/ZIP)
|
||
|
||
- **ドキュメント**: 画面設計書 画面7 - 全圃場データCSV、作付け計画CSV、全データZIPバックアップ
|
||
- **実装**: 未実装
|
||
- **影響**: バックアップ手段がない(DBダンプのみ)
|
||
- **状態**: 🔜 未着手
|
||
|
||
**対応方針**: 必要です。近い将来サーバーに移行するので、その時に、このローカル環境で設定したデータを移動できるようにしたいです。
|
||
|
||
---
|
||
|
||
### A-7: 作付け計画画面の検索・フィルタ
|
||
|
||
- **ドキュメント**: 画面設計書 画面3 - 圃場名・住所で部分一致検索、作物で絞り込み、未割当のみトグル
|
||
- **実装**: 並び替え(カスタム順/グループ順/作付け順)のみ。テキスト検索なし
|
||
- **影響**: 39筆なので目視でも探せるが、検索があると便利
|
||
- **状態**: 🔜 未着手
|
||
|
||
**対応方針**: 優先度は低いですが必要です。
|
||
|
||
---
|
||
|
||
### ~~A-8: 圃場詳細画面の共済/中山間情報表示~~ ✅ 対応済み
|
||
|
||
- **対応内容**: 圃場詳細画面 (`/fields/[id]`) に共済情報テーブルと中山間情報テーブルを追加
|
||
- **対応日**: 2026-02-17
|
||
- **確認**: Playwright E2E テストで検証済み
|
||
|
||
---
|
||
|
||
## B. 実装されているがドキュメントに記載がないもの
|
||
|
||
### B-1〜B-5: ドキュメント追記対応 ✅ 対応済み
|
||
|
||
以下の項目は 2026-02-17 のドキュメント一斉更新で対応済み:
|
||
- **B-1**: グループ機能 → データ仕様書・CLAUDE.md に記載済み
|
||
- **B-2**: 圃場管理画面(/fields) → 画面設計書に追記済み
|
||
- **B-3**: 圃場新規作成画面(/fields/new) → 画面設計書に追記済み
|
||
- **B-4**: インライン編集方式(作付け計画) → 画面設計書をモーダル→インラインに更新済み
|
||
- **B-5**: Navbar → 画面設計書に追記済み
|
||
|
||
---
|
||
|
||
## C. ドキュメントと実装で食い違っているもの
|
||
|
||
### C-1: Field と共済/中山間の関係(M:1 vs M:N) ✅ 対応済み
|
||
|
||
- **対応内容**: データ仕様書を M:N に更新
|
||
- **対応日**: 2026-02-17
|
||
|
||
---
|
||
|
||
### ~~C-2: 共済マスタのフィールド型~~ ✅ 対応済み
|
||
|
||
- **対応内容**: `k_num` = CharField, `s_num` = CharField に統一。`unique_together = [['k_num', 's_num']]` を設定(マイグレーション0005)
|
||
- **対応日**: 2026-02-17
|
||
- **確認**: Playwright E2E テストで重複拒否を検証済み
|
||
|
||
---
|
||
|
||
### C-3: 中山間マスタのフィールド型 ✅ 対応済み
|
||
|
||
- **対応内容**: `c_id` = CharField, `chiban` = CharField で実装。データ仕様書も CharField に更新済み
|
||
- **理由**: 地番に「イ」「ロ」等の非数値データが入るため
|
||
|
||
---
|
||
|
||
### ~~C-4: 面積フィールドの単位~~ ✅ 対応済み
|
||
|
||
- **対応内容**:
|
||
- 共済マスタ・中山間マスタの `area` は IntegerField(m2)に統一
|
||
- 共済インポート時に ODS のアール値を m2 に変換 (×100)
|
||
- PDF テンプレートの面積表示を m2 に修正
|
||
- **対応日**: 2026-02-17
|
||
- **発見したバグ**: ODS カラム名 `本地面積 (m2)` のスペース有無でインポートが失敗し全件 area=0 になっていた → 修正済み
|
||
|
||
---
|
||
|
||
### C-5: 作物マスタの初期データ ✅ 対応済み
|
||
|
||
- **対応内容**: `init_crops.py` を削除。作物・品種は管理画面やUIから登録する運用
|
||
- **対応日**: 2026-02-17(D-2 と同時対応)
|
||
|
||
---
|
||
|
||
### C-6: 申請書の出力形式(CSV vs PDF) ✅ 対応済み
|
||
|
||
- **対応内容**: 全ドキュメントを PDF に統一
|
||
- **対応日**: 2026-02-17
|
||
|
||
---
|
||
|
||
### C-7: Django バージョン ✅ 対応済み
|
||
|
||
- **対応内容**: ドキュメントを Django 5.2 に更新
|
||
- **対応日**: 2026-02-17
|
||
|
||
---
|
||
|
||
### ~~C-8: DEFAULT_PERMISSION_CLASSES~~ ✅ 対応済み
|
||
|
||
- **対応内容**: `AllowAny` → `IsAuthenticated` に変更
|
||
- **対応日**: 2026-02-17(D-4 と同時対応)
|
||
- **確認**: Playwright E2E テストで未認証時 401 を検証済み
|
||
|
||
---
|
||
|
||
## D. 潜在的な不具合
|
||
|
||
### ~~D-1: PDF生成時の variety/crop が null でクラッシュ~~ ✅ 修正済み
|
||
|
||
- **修正内容**: `plan.crop.name if plan.crop else '未設定'` / `plan.variety.name if plan.variety else ''` の null チェック追加
|
||
- **修正日**: 2026-02-17
|
||
- **確認**: Playwright E2E テストで PDF 生成(200 応答)を検証済み
|
||
|
||
---
|
||
|
||
### ~~D-2: init_crops.py の不正データ~~ ✅ 修正済み
|
||
|
||
- **修正内容**: `init_crops.py` 自体を削除
|
||
- **修正日**: 2026-02-17
|
||
|
||
---
|
||
|
||
### ~~D-3: settings.py の二重定義~~ ✅ 修正済み
|
||
|
||
- **修正内容**: 前の `LANGUAGE_CODE = 'en-us'` / `TIME_ZONE = 'UTC'` を削除。`LANGUAGE_CODE = 'ja'` / `TIME_ZONE = 'Asia/Tokyo'` のみ残す
|
||
- **修正日**: 2026-02-17
|
||
|
||
---
|
||
|
||
### ~~D-4: AllowAny で全API公開~~ ✅ 修正済み
|
||
|
||
- **修正内容**: `DEFAULT_PERMISSION_CLASSES` を `IsAuthenticated` に変更
|
||
- **修正日**: 2026-02-17
|
||
- **確認**: Playwright E2E テストで検証済み
|
||
|
||
---
|
||
|
||
## E. 追加で修正の要望
|
||
|
||
### ~~E-1: PDF帳票フォーマットの再設計~~ ✅ 対応済み
|
||
|
||
**対応日**: 2026-02-17
|
||
|
||
**対応内容:**
|
||
- E-1a: 水稲共済細目書 PDF — A4 縦、表形式(1行1区画)、@page 設定、ページ番号、日本語タイトルに修正
|
||
- E-1b: 中山間交付金 PDF — A4 横、表形式(1行1区画)、@page 設定、ページ番号、日本語タイトルに修正
|
||
- E-1c: OfficialChusankanField モデル拡張 — 6→17 フィールドに拡張(マイグレーション0006)
|
||
- 中山間インポート修正 — ODS 17 列すべて読み込み対応
|
||
- 共済インポートバグ修正 — 面積カラム名スペース不一致 + アール→m2 変換(×100)
|
||
- reports/views.py — ロジック全面書き直し(フラットテーブル、null 安全、prefetch_related)
|
||
- シリアライザ — OfficialChusankanFieldSerializer に 11 フィールド追加
|
||
|
||
**確認**: Playwright E2E テスト(PDF 200 応答、中山間 17 フィールド返却、共済面積 > 0)で検証済み
|
||
|
||
---
|
||
|
||
### E-2: 対応付け可視化・紐づけ管理機能
|
||
|
||
- **背景**: 3つのODSデータファイル(吉田農地台帳 → Field、水稲共済細目用 → OfficialKyosaiField、中山間 → OfficialChusankanField)間のM:N対応関係を確認・編集する手段がない
|
||
- **状態**: 🚧 一部実装済み
|
||
|
||
**実装済み:**
|
||
- ✅ バックエンドAPI 6本(共済/中山間マスタ一覧、紐づけ追加・解除)
|
||
- ✅ 圃場詳細画面(/fields/[id]): +追加ボタン、×解除ボタン、検索付きモーダル、面積参考表示
|
||
- ✅ 圃場一覧 通常モード: 「共済」「中山間」件数列
|
||
|
||
**未実装:**
|
||
- 🔜 圃場一覧「対応表」モード: 漢字地名・所在地を一覧表示し、直接紐づけ追加・解除できる表示モード(仕様は画面設計書 画面4 に記載済み)
|
||
|
||
---
|
||
|
||
## 対応状況サマリー
|
||
|
||
| カテゴリ | 項目 | 状態 |
|
||
|---------|------|------|
|
||
| A-1 | ダッシュボード画面 | 🔜 未着手 |
|
||
| A-2 | チェックボックス一括操作 | 🔜 未着手 |
|
||
| A-3 | 前年度コピーボタン | 🔜 未着手 |
|
||
| A-4 | 品種インライン追加・削除 | 🔜 未着手 |
|
||
| A-5 | PDFプレビュー | 🔜 未着手 |
|
||
| A-6 | エクスポート機能 | 🔜 未着手 |
|
||
| A-7 | 検索・フィルタ | 🔜 未着手 |
|
||
| A-8 | 圃場詳細 共済/中山間表示 | ✅ 完了 |
|
||
| B-1〜B-5 | ドキュメント追記 | ✅ 完了 |
|
||
| C-1〜C-8 | ドキュメント/実装の食い違い修正 | ✅ 全件完了 |
|
||
| D-1〜D-4 | 不具合修正 | ✅ 全件完了 |
|
||
| E-1 | PDF帳票再設計 | ✅ 完了 |
|
||
| E-2 | 対応付け可視化・紐づけ管理 | 🚧 一部実装済み(対応表モード未実装) |
|