バックエンド: POST /api/plans/bulk_update/ API(field_ids, year, crop, variety を受けて一括設定) フロントエンド: チェックボックス列、全選択/個別選択、一括操作バー(作物・品種セレクタ + 確認ダイアログ)
10 KiB
10 KiB
ドキュメント vs 実装 差異レポート
作成日: 2026-02-16 最終更新: 2026-02-17 目的: ドキュメントと実装の差異を洗い出し、対応方針を決定する
A. ドキュメントに書かれているが実装されていないもの
A-1: ダッシュボード画面
- ドキュメント: 画面設計書 画面2 - 概要サマリー(全圃場数/作付け済み/未割当)、クイックアクセスボタン、最近の変更履歴
- 実装:
/はトークンの有無で/allocationか/loginにリダイレクトするだけ - 影響: なくても作付け計画画面から全機能にアクセス可能。Navbarで各画面に遷移できる
- 状態: 🔜 未着手
対応方針: 将来、機能追加する時には、ここにボタンが増えていく形式になっていくはずなので必要です
A-2: チェックボックスによる一括操作 ✅ 対応済み
- 対応内容:
- バックエンド:
POST /api/plans/bulk_update/API追加(field_ids, year, crop, variety を受けて一括 update_or_create) - フロントエンド: 作付け計画画面(/allocation)にチェックボックス列追加、全選択/個別選択
- 一括操作バー: 選択件数表示、作物・品種セレクタ、「一括設定」ボタン、確認ダイアログ付き
- バックエンド:
- 対応日: 2026-02-19
A-3: 前年度コピー機能(フロントエンド) ✅ 対応済み
- 対応内容: 作付け計画画面(/allocation)の年度セレクタ横に[前年度コピー]ボタンを追加。確認ダイアログ付き、既存プランはスキップ(ignore_conflicts)
- 対応日: 2026-02-18
A-4: 品種のインライン追加・削除 ✅ 対応済み
- 対応内容:
- 品種セレクトに「+ 新しい品種を追加...」オプション追加。選択するとインライン入力に切り替わり、Enter/追加ボタンでAPI経由で即登録&自動選択
- ヘッダーに「品種管理」ボタン追加。モーダルで作物別の品種一覧表示、追加・削除が可能
- Plan.variety の on_delete を CASCADE → SET_NULL に変更(品種削除時に計画が消えない安全策、マイグレーション0003)
- 対応日: 2026-02-19
A-5: PDFプレビュー機能 ✅ 対応済み
- 対応内容: 帳票出力画面(/reports)をカード形式にリニューアル。各帳票にプレビュー(新タブでPDF表示)とダウンロードのボタンを配置。プレビューからブラウザの印刷機能で直接印刷可能
- 対応日: 2026-02-19
A-6: エクスポート機能(CSV/ZIP) ✅ 対応済み
- 対応内容: データ取込画面(/import)下部に「データエクスポート」セクション追加。全データ(圃場・共済・中山間・作付け計画・品種・M:N紐づけ)を6つのCSVファイルとしてZIPアーカイブでダウンロード。バックエンドAPI
GET /api/fields/export/zip/ - 対応日: 2026-02-19
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: 対応付け可視化・紐づけ管理機能 ✅ 対応済み
対応日: 2026-02-18
対応内容:
- バックエンドAPI 6本(共済/中山間マスタ一覧、紐づけ追加・解除)
- 圃場詳細画面(/fields/[id]): +追加ボタン、×解除ボタン、検索付きモーダル、面積参考表示
- 圃場一覧 通常モード: 「共済」「中山間」件数列
- 圃場一覧「対応表」モード: [通常]/[対応表]トグルで切替、圃場名・住所・面積・共済漢字地名・中山間所在地を一覧表示、直接紐づけ追加・解除可能
- 共通コンポーネント: LinkModal(検索付き複数選択モーダル)を抽出
対応状況サマリー
| カテゴリ | 項目 | 状態 |
|---|---|---|
| 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 | 対応付け可視化・紐づけ管理 | ✅ 完了 |