新機能実装準備

This commit is contained in:
Akira
2026-02-21 16:44:36 +09:00
parent f520e13d02
commit 24fa9b4e64
8 changed files with 145 additions and 0 deletions

View File

@@ -0,0 +1,243 @@
# ドキュメント 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~~ ✅ 対応済み
- **対応内容**: `AllowAny``IsAuthenticated` に変更
- **対応日**: 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_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 | 対応付け可視化・紐づけ管理 | ✅ 完了 |