Files
keinasystem/document/06_ドキュメントvs実装_差異レポート.md
Akira 6eb19f75b7 A-7(検索・フィルタ)の実装が完了しました。
実装内容:

テキスト検索: 圃場名・住所で部分一致検索(リアルタイムフィルタリング、検索アイコン付き)
作物フィルタ: ドロップダウンで特定作物に絞り込み
未割当トグル: チェックボックスで未割当の圃場のみ表示
件数表示: フィルタ適用中は 5/39件 のように表示
チェックボックス全選択もフィルタ結果に連動
http://localhost:3000/allocation で確認できます。
2026-02-19 13:11:13 +09:00

10 KiB
Raw Blame History

ドキュメント vs 実装 差異レポート

作成日: 2026-02-16 最終更新: 2026-02-17 目的: ドキュメントと実装の差異を洗い出し、対応方針を決定する


A. ドキュメントに書かれているが実装されていないもの

A-1: ダッシュボード画面 対応済み

  • 対応内容:
    • /dashboard にダッシュボード画面を新設。/ はログイン済みなら /dashboard にリダイレクト
    • 概要サマリー: 全圃場数、作付け済み筆数、未割当筆数(警告アイコン付き)
    • 作物別集計テーブル: 作物名、筆数、面積(反)、合計行
    • クイックアクセス: 作付け計画・圃場管理・帳票出力・データ取込への4ボタン
    • 年度セレクタで年度切替可能
    • Navbarに「ホーム」ボタン追加、KeinaSystemロゴクリックでダッシュボードに遷移
    • バックエンド: summary APIに total_fields, assigned_fields, unassigned_fields を追加
  • 対応日: 2026-02-19

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: 作付け計画画面の検索・フィルタ 対応済み

  • 対応内容:
    • テキスト検索: 圃場名・住所で部分一致検索(リアルタイムフィルタリング)
    • 作物フィルタ: ドロップダウンで特定の作物に絞り込み
    • 未割当トグル: チェックボックスで未割当の圃場のみ表示
    • フィルタ結果件数表示(例: 5/39件
    • クライアントサイドフィルタ39筆のためAPI不要
  • 対応日: 2026-02-19

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 対応付け可視化・紐づけ管理 完了