Files
keinasystem/document/06_ドキュメントvs実装_差異レポート.md
Akira 8b5e0fc66e A-6 完了。 本セッションの進捗まとめ:
タスク	内容	状態
A-3	前年度コピーボタン	 完了
A-4	品種のインライン追加・削除	 完了
A-5	PDFプレビュー機能	 完了
A-6	エクスポート機能	 完了
残りタスク:

A-2: チェックボックス・一括操作
A-1: ダッシュボード画面
A-7: 検索・フィルタ
確認ポイント:

作付け計画 (/allocation): 年度セレクタの横に「前年度コピー」「品種管理」ボタン、品種セレクトに「+ 新しい品種を追加...」
帳票出力 (/reports): 各帳票にプレビュー/ダウンロードの2ボタン
データ取込 (/import): ページ下部に「データエクスポート」(ZIPダウンロード)
2026-02-19 12:21:17 +09:00

10 KiB
Raw Blame History

ドキュメント 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: 前年度コピー機能(フロントエンド) 対応済み

  • 対応内容: 作付け計画画面(/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 は IntegerFieldm2に統一
    • 共済インポート時に ODS のアール値を m2 に変換 (×100)
    • PDF テンプレートの面積表示を m2 に修正
  • 対応日: 2026-02-17
  • 発見したバグ: ODS カラム名 本地面積 (m2) のスペース有無でインポートが失敗し全件 area=0 になっていた → 修正済み

C-5: 作物マスタの初期データ 対応済み

  • 対応内容: init_crops.py を削除。作物・品種は管理画面やUIから登録する運用
  • 対応日: 2026-02-17D-2 と同時対応)

C-6: 申請書の出力形式CSV vs PDF 対応済み

  • 対応内容: 全ドキュメントを PDF に統一
  • 対応日: 2026-02-17

C-7: Django バージョン 対応済み

  • 対応内容: ドキュメントを Django 5.2 に更新
  • 対応日: 2026-02-17

C-8: DEFAULT_PERMISSION_CLASSES 対応済み

  • 対応内容: AllowAnyIsAuthenticated に変更
  • 対応日: 2026-02-17D-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_CLASSESIsAuthenticated に変更
  • 修正日: 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 対応付け可視化・紐づけ管理 完了