Akira
|
13c21ed7de
|
ローカル更新済み:
13_マスタードキュメント_施肥計画編.md — 散布実績セクション整備、在庫連携・集計ルール・WorkRecord自動生成・前年度コピーのセクション追加、旧「散布確定モーダル」記述削除、型定義・ファイル構成・将来の拡張を更新
14_マスタードキュメント_分配計画編.md — 散布実績との連携・WorkRecord自動生成のセクション追加
CLAUDE.md — データモデル(SpreadingSession/Item, WorkRecord, actual_bags)追加、プロジェクト構造にfertilizer/workrecordsアプリ追加、実装状況に散布実績・作業記録索引を追記、更新履歴に2026-03-17エントリ追加
|
2026-03-17 20:31:22 +09:00 |
|
Akira
|
daae1a42e5
|
散布実績: 名称未入力時のバリデーションエラーを追加
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
2026-03-17 20:05:36 +09:00 |
|
Akira
|
4e06318985
|
散布実績ページ: useSearchParamsをSuspense boundaryでラップ(本番ビルドエラー修正)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
2026-03-17 20:03:16 +09:00 |
|
Akira
|
9f96d1f820
|
散布実績レビュー修正: バグ修正・仕様適合・デッドコード削除
- 候補API: 運搬済みフィルタ(date IS NOT NULL)を追加。
delivery_plan_id指定時は全明細表示、年度全体時のみ日付フィルタ適用
- StockTransaction.spreading_item: CASCADE→SET_NULL に修正(仕様7.3準拠)
- perform_destroy: SET_NULL対応でUSEを明示削除してからsession削除
- ConfirmSpreadingModal.tsx: 未使用のため削除
- FertilizerEditPage.tsx: 旧散布確定関連デッドコード全除去
(isConfirmed/confirmedAt state, handleUnconfirm, 確定取消ボタン, 確定済みバナー)
- services.py: 未使用のto_decimal_or_zero削除
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
2026-03-17 19:56:13 +09:00 |
|
Akira
|
140d5e5a4d
|
施肥散布実績機能を実装し運搬・作業記録・在庫連携を追加
|
2026-03-17 19:28:52 +09:00 |
|
Akira
|
722ac4efd0
|
運搬計画: グループ単位の回間移動・未割当戻し機能を追加
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
2026-03-16 17:04:06 +09:00 |
|
Akira
|
bba04f24c2
|
運搬計画: グループ一括割り当て機能を追加
各回の追加ドロップダウンに「+ グループを追加...」を追加。
グループ内の全圃場の未割り当て分を一括で回に追加できるようにした。
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
2026-03-16 16:53:32 +09:00 |
|
Akira
|
287a1ebb59
|
Set イテレーションを Array.from() に修正: 本番ビルドの TypeScript エラーを解消
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
2026-03-16 16:40:06 +09:00 |
|
Akira
|
1c27a66691
|
分配計画を運搬計画に再設計: 軽トラ1回分を基本単位とする運搬回モデルを導入
実運用のワークフロー(複数施肥計画混在・軽トラ複数回・肥料指定)に合わせ、
旧 DistributionPlan/Group/GroupField を DeliveryPlan/Group/GroupField/Trip/TripItem に置き換え。
施肥計画への直接FK廃止→年度ベースで全施肥計画を横断。
回ごとの日付記録、圃場の回間移動、対象肥料フィルタ、回ごとPDF出力に対応。
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
2026-03-16 16:29:01 +09:00 |
|
Akira
|
d9a4bd19eb
|
施肥計画の「利用可能」表示を修正: 在庫の実残数を正しく表示
- getPlanAvailableStock: 自計画の引当を足し戻す計算を廃止し、
サーバー側available_stock + 初期引当 - 現在計画量でリアルタイム算出
- getPlanShortage: available_stockベースの不足判定に変更
- 編集中の計画変更が即座に利用可能数に反映されるように
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
2026-03-16 10:13:41 +09:00 |
|
Akira
|
89ab9b7b83
|
これで:
利用可能 = available_stock = 在庫 - 全計画の引当合計(マイナスならマイナス表示)
不足 = available_stock がマイナスのとき、その絶対値を赤字表示
どの計画画面でも同じ「利用可能」の値が表示される
例(仁井田米有機 55袋、計画A 47袋 + 計画B 5袋):
利用可能: 3.00袋(どちらの計画でも同じ)
不足: 表示なし(まだ余裕あり)
|
2026-03-16 09:57:43 +09:00 |
|
Akira
|
e3c21d6e81
|
ConfirmSpreadingModal の改善点:
groupedEntries(肥料別リスト表示)→ layout(圃場×肥料のマトリクス表)に変更 ✅
施肥計画編集画面と同じ「圃場名 / 面積(反) / 肥料列... / 合計」のテーブル構造に統一 ✅
各セルに計画値ラベル + 実績入力欄を縦並び ✅
列合計(肥料別)・行合計(圃場別)・総合計を追加 ✅
計画情報サマリーカード(年度・品種・圃場数・肥料数)を追加 ✅
操作ガイド(sky色バナー)を追加 ✅
モーダル幅を max-w-4xl → max-w-[95vw] に拡大(マトリクス表に合わせて) ✅
ドキュメント更新:
document/13_マスタードキュメント_施肥計画編.md — 在庫引当・散布確定・確定取消 API を追記 ✅
改善案/在庫管理機能実装案.md — 微修正 ✅
|
2026-03-15 13:48:48 +09:00 |
|
Akira
|
72b4d670fe
|
完璧に動作しています。
テスト 結果
確定取消 API ✅ is_confirmed: false, confirmed_at: null
USE トランザクション削除 ✅ current_stock が 27.5→32 に復帰
引当再作成 ✅ reserved_stock = 5.000 に復帰
追加した変更:
stock_service.py:81-93 — unconfirm_spreading(): USE削除→確定フラグリセット→引当再作成
fertilizer/views.py — unconfirm アクション(POST /api/fertilizer/plans/{id}/unconfirm/)
fertilizer/page.tsx — 一覧に「確定取消」ボタン(確定済み計画のみ表示)
FertilizerEditPage.tsx — 編集画面ヘッダーに「確定取消」ボタン + 在庫情報再取得
|
2026-03-15 13:28:02 +09:00 |
|
Akira
|
497bc87c24
|
在庫管理機能 Phase 1 実装(apps/materials + フロントエンド)
Backend:
- apps/materials 新規作成(Material, FertilizerProfile, PesticideProfile, StockTransaction)
- 資材マスタ CRUD API(/api/materials/materials/)
- 入出庫履歴 API(/api/materials/stock-transactions/)
- 在庫集計 API(/api/materials/stock-summary/)
- 既存 Fertilizer に material OneToOneField 追加(0005マイグレーション、データ移行込み)
Frontend:
- /materials: 在庫一覧画面(タブフィルタ、履歴展開、入出庫モーダル)
- /materials/masters: 資材マスタ管理(肥料/農薬/その他タブ、インライン編集)
- Navbar に「在庫管理」メニュー追加
- Material/StockTransaction/StockSummary 型定義追加
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
2026-03-14 15:42:47 +09:00 |
|
Akira
|
422a6781c5
|
mail: distinguish xserver mailboxes in account labels
|
2026-03-05 14:17:25 +09:00 |
|
Akira
|
0e809ebb99
|
施肥計画編集: ページ開時に自動計算・≈を入力値にも適用
- 編集画面を開いた際、保存済みcalc_settingsで自動計算しcalcMatrixを生成
→ 計算ボタンを押さなくてもラベルが表示されるようになる
- roundColumn(≈)がcalcMatrixにない場合はadjusted値を丸めるよう修正
→ 計算ボタンを押さなくても≈で整数丸めが効くようになる
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
2026-03-02 11:34:59 +09:00 |
|
Akira
|
ff67a6bf26
|
施肥計画: 計算設定の復元とラベル表示バグを修正
- calcNewOnly フィルターを hasAdjusted/hasCalc チェックから inputValue === '' ベースに変更
(既存プランを開いた際に全フィールドが「計算済み」と判定されて計算が動かないバグを修正)
- runCalc で adjusted をクリアしないよう変更
(計算ボタン押下後にラベル=計算結果、テキストボックス=DB/確定値が同時表示されるよう修正)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
2026-03-02 11:23:38 +09:00 |
|
Akira
|
5145217481
|
施肥計画の計算設定を保存・復元し、未入力圃場のみ計算オプションを追加
- FertilizationPlanにcalc_settings JSONFieldを追加(migration 0004)
- 編集画面を開くと前回の計算方式・パラメータが復元される
- 「未入力圃場のみ」チェックで既存値を保持したまま新規圃場だけ計算可能
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
2026-03-02 10:50:56 +09:00 |
|
Akira
|
21d1dc355d
|
施肥計画一覧のボタンを分配計画に合わせて統一
アイコンのみ→アイコン+テキスト+ボーダー付きボタンに変更。
PDF(グレー)/ 編集(青)/ 削除(赤)のスタイルを両ページで統一。
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
2026-03-02 10:00:51 +09:00 |
|
Akira
|
8c47217003
|
未割り当て圃場に交互背景色を追加
行の対応が分かりにくい問題を解消するため、
偶数行/奇数行で白/グレーの交互背景色を適用。
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
2026-03-02 09:54:04 +09:00 |
|
Akira
|
a331f8b30a
|
未割り当て圃場の圃場名が切れる問題を修正
w-32 truncate(128px固定)を flex-1 min-w-0 truncate に変更し、
利用可能な幅いっぱいに伸びるようにした。
ホバーで全文確認できるよう title 属性も追加。
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
2026-03-02 09:50:42 +09:00 |
|
Akira
|
466eef128c
|
分配計画機能を実装
施肥計画の圃場を配置場所単位でグループ化し、グループ×肥料の集計表を
表示・PDF出力できる機能を追加。
- Backend: DistributionPlan/Group/GroupField モデル (migration 0003)
- API: GET/POST/PUT/DELETE/PDF (/api/fertilizer/distribution/)
- Frontend: 一覧・新規作成・編集画面 (/distribution)
- Navbar に分配計画メニューを追加
- 集計プレビューはクライアントサイド計算(API不要)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
2026-03-02 09:43:20 +09:00 |
|
Akira
|
84ae939d73
|
施肥機能の confirm() をすべて除去しエラーバナー化
ブラウザが confirm() をブロックすると何も起きず原因不明になる問題を修正。
confirm() を除去し、失敗時はインラインエラーバナーで理由を表示する。
- masters: 肥料削除失敗 → バナー表示
- page: 計画削除失敗 → バナー表示
- FertilizerEditPage: 肥料除去はローカル操作のため confirm だけ除去
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
2026-03-01 17:16:08 +09:00 |
|
Akira
|
db20a9c3d2
|
施肥計画・肥料マスタのエラーをインライン表示に変更
alert() で表示していたバリデーションエラー・保存エラー・削除エラーを
赤いインラインバナーで表示するように変更。
ブラウザがダイアログをブロックしても確実にユーザーに通知できるようにした。
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
2026-03-01 17:04:47 +09:00 |
|
Akira
|
048b17ef43
|
施肥計画保存時のフィードバックを改善
- 袋数が0件のまま保存しようとした場合に確認ダイアログを表示
- 保存成功後に「保存しました」アラートを表示してから一覧に遷移
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
2026-03-01 16:56:02 +09:00 |
|
Akira
|
b855608084
|
試験結果
|
2026-03-01 13:42:13 +09:00 |
|
Akira
|
cfd67e0d55
|
施肥計画編集画面に四捨五入トグル機能を追加
- calcMatrix(計算値)+ adjusted(確定値)の2層構成に変更
- 肥料列ヘッダーに ≈(青)/ ↩(琥珀)トグルボタンを追加
- 四捨五入後は元の計算値をグレーで参照表示
- docker-compose.yml に WATCHPACK_POLLING=true を追加(Windowsホットリロード修正)
- マスタードキュメント(文書13)を新 UI 仕様に更新
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
2026-03-01 13:40:38 +09:00 |
|
Akira
|
f207f5de27
|
施肥計画機能を追加(年度×品種単位のマトリクス管理)
- Backend: apps/fertilizer を新規追加
- Fertilizer(肥料マスタ)、FertilizationPlan、FertilizationEntry モデル
- 肥料マスタ・施肥計画 CRUD API
- 3方式の自動計算API(反当袋数・均等配分・反当チッソ成分量)
- 作付け計画から圃場候補を取得する API
- WeasyPrint による PDF 出力(圃場×肥料=袋数 マトリクス表)
- Frontend: app/fertilizer を新規追加
- 施肥計画一覧(年度セレクタ・PDF出力・編集・削除)
- 肥料マスタ管理(インライン編集)
- 施肥計画編集(品種選択→圃場自動取得→肥料追加→自動計算→マトリクス手動調整)
- Navbar に「施肥計画」メニューを追加(Sprout アイコン)
- Cursor ルールファイル・連携ガイドを削除(Claude Code 単独運用へ)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
2026-03-01 12:14:29 +09:00 |
|
Akira
|
adb235250e
|
気象データ画面に期間指定モードを追加
- 年別集計 / 期間指定 のモード切替
- 期間指定モード: 開始日・終了日を入力して表示ボタン
- 期間集計カード(平均気温・降水量・日照・猛暑日数)
- 日次グラフ(気温折れ線・降水量棒+日照折れ線)
- データ件数に応じたX軸ラベル間隔の自動調整
- 期間一覧タブ(スクロール対応テーブル)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
2026-02-28 13:53:44 +09:00 |
|
Akira
|
3c888f0503
|
Tooltip formatter の TypeScript 型エラーを修正
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
2026-02-28 13:48:25 +09:00 |
|
Akira
|
8931e4eb87
|
package-lock.json を更新(recharts 追加分)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
2026-02-28 13:46:45 +09:00 |
|
Akira
|
d11e2a708d
|
気象データ画面にグラフ追加(Recharts)
- 月別気温折れ線グラフ(最高・平均・最低)
- 月別降水量棒グラフ + 日照時間折れ線グラフ(右軸)
- recharts ^3.7.0 を依存に追加
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
2026-02-28 13:46:08 +09:00 |
|
Akira
|
8a1887a26d
|
気象データ画面を追加(月別サマリー・直近14日)
- /weather ページ: 月別集計テーブル・年間サマリーカード・直近14日日次記録
- Navbar に「気象」リンク追加
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
2026-02-28 13:40:52 +09:00 |
|
Akira
|
407d915b35
|
パスワード変更機能を追加
- バックエンド: POST /api/auth/change-password/ エンドポイントを追加
- フロントエンド: /settings/password ページを追加(現在のPW確認・8文字バリデーション)
- Navbar: ログアウトボタン横に鍵アイコンでパスワード変更リンクを追加
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
2026-02-25 09:51:03 +09:00 |
|
Akira
|
72ac0c22b4
|
frontend/Dockerfile.prod: public ディレクトリなしに対応
|
2026-02-24 14:59:25 +09:00 |
|
Akira
|
da2154ddca
|
本番デプロイ用設定ファイルを追加
- backend/Dockerfile.prod: gunicorn で起動する本番用 Dockerfile
- frontend/Dockerfile.prod: マルチステージビルドの本番用 Dockerfile
- docker-compose.prod.yml: Traefik 連携・本番用 compose 設定
- main.keinafarm.net でフロントエンド・バックエンドを公開
- /api/ はバックエンド(priority=10)、それ以外はフロントエンド(priority=5)
- .env.production.example: 本番環境変数のサンプル
- settings.py: ALLOWED_HOSTS・CORS_ALLOWED_ORIGINS を環境変数から設定可能に
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
2026-02-24 14:32:12 +09:00 |
|
Akira
|
b19e08a8dd
|
メール処理履歴画面にフィードバック機能を追加
- 全メール(重要・通常問わず)に対してフィードバックボタンを追加
- PATCH /api/mail/emails/<pk>/feedback/ エンドポイントを追加(JWT認証)
- フィードバックモーダル: 重要/普通/今後通知しない/常に通知 の4択
- never_notify/always_notify 選択時はアドレス/ドメインの適用範囲を選択可能
- gmail_service アカウントのフィルタオプションを追加
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
2026-02-24 13:52:21 +09:00 |
|
Akira
|
36ced412dc
|
2つ目のgmailアカウントを処理
|
2026-02-23 16:52:15 +09:00 |
|
Akira
|
ae4e60f156
|
転送検出の仕組み
転送されたメールは元の「To:」ヘッダーに infoseek.jp が残ります:
To: akiracraftwork@infoseek.jp ← Outlook が転送時に保持
このドメインが forwarding_map に一致したら account_code = "infoseek" に切り替えます。
変更まとめ
ファイル 変更内容
models.py infoseek を ACCOUNT_CHOICES に追加 + migration
mail_filter.flow.json forwarding_map追加、転送検出ロジック、ローカルにデプロイ済み
history/page.tsx ACCOUNT_LABELS と フィルタに infoseek 追加
infoseek.jpにテストメールを送って、次回フロー実行時に「Infoseek (転送)」として表示されるか確認してください。
|
2026-02-23 12:42:03 +09:00 |
|
Akira
|
04b1ca1bb9
|
実装完了
Backend(Django)
backend/apps/mail/serializers.py
MailEmailListSerializer を新規追加(フロントエンド向けメール一覧用)
feedback_token フィールドを含む(フィードバックリンク表示用)
backend/apps/mail/views.py
MailEmailCreateView → MailEmailView に変更(GET+POST を統合)
GET /api/mail/emails/ : JWT認証でメール履歴取得(最新100件、account/verdict フィルター対応)
POST /api/mail/emails/ : APIキー認証でWindmillからのメール記録(既存動作を維持)
get_permissions() でメソッドごとに認証方法を切替
MailStatsView を新規追加
GET /api/mail/stats/ : 今日の処理件数、LINE通知数、フィードバック待ち、ルール数を返す
backend/apps/mail/urls.py
emails/ → MailEmailView(GET+POST)
stats/ → MailStatsView を追加
Frontend(Next.js)
frontend/src/app/mail/history/page.tsx (新規作成)
メール処理履歴の一覧テーブル
アカウント・LLM判定でフィルタリング可能
LLM判定・フィードバック状態をバッジで表示
フィードバックトークンがあれば「回答」リンクを表示
frontend/src/app/dashboard/page.tsx (再設計)
2カラムのモジュールカード形式に変更
作付け計画カード: 年度セレクタ、集計数値、作物別集計、クイックアクセス
メール通知カード: 今日の処理件数、LINE通知数、フィードバック待ち、ルール数、メール履歴・ルール管理ボタン
|
2026-02-22 15:01:50 +09:00 |
|
Akira
|
df16ab1ee0
|
変更内容まとめ
バックエンド
models.py — MailSender.rule に always_notify 追加、MailEmail.feedback にも追加、マイグレーション適用済み
views.py — FeedbackView.post が always_notify を受け取ったら MailSender ルールを作成(never_notify と同じ仕組み)
フロントエンド
feedback/[token]/page.tsx — 4択目「🔔 常に通知してほしい」を追加。スコープ選択(アドレス/ドメイン)もあり。色はteal系で区別
mail/rules/page.tsx — 追加フォームにルール種別セレクタを追加、一覧に「常に通知」バッジ(teal)を表示
Windmill側の使い方(メモ)
GET /api/mail/sender-rule/ のレスポンスに "rule": "always_notify" が返ってきたら、LLMをスキップして llm_verdict: "important" で直接 POST /api/mail/emails/ を呼べばOKです。
|
2026-02-22 09:49:28 +09:00 |
|
Akira
|
7a1aa81f9f
|
実装完了
作成・変更したファイル
バックエンド(新規):
apps/mail/models.py — MailSender, MailEmail, MailNotificationToken
apps/mail/serializers.py
apps/mail/views.py — Windmill用API、フィードバック、ルール管理
apps/mail/urls.py
apps/mail/admin.py
マイグレーション(自動生成・適用済み)
バックエンド(変更):
settings.py — apps.mail 追加、MAIL_API_KEY/FRONTEND_URL 環境変数
urls.py — /api/mail/ 追加
フロントエンド(新規):
mail/feedback/[token]/page.tsx — 認証不要、フィードバック3択+スコープ選択
mail/rules/page.tsx — ルール管理(一覧・追加・削除)
フロントエンド(変更):
Navbar.tsx — 「メールルール」メニュー追加
types/index.ts — MailSender, MailEmailFeedback 型追加
次のステップ(Windmill側)
Keinaシステム側の実装は完了しています。次はWindmillにIMAPポーリングスクリプトを書く必要があります。Windmillのスクリプトが必要になったタイミングでお声がけください。
|
2026-02-22 09:27:27 +09:00 |
|
Akira
|
9169018392
|
作付け計画画面 (/allocation):
年度をlocalStorageに保存・復元(ブラウザを閉じても維持、明示的に変えるまで固定)
過去年度を表示中は琥珀色のバナー「{year}年度のデータを参照中(過去年度)」+ 「今年度に戻る」ボタン
テーブル枠も過去年度では薄いセピア調に変化
デフォルトは今年度(2026)
帳票出力画面 (/reports):
デフォルトを 2025 固定 → new Date().getFullYear() に変更
セレクタも動的5年分に変更
ダッシュボード (/dashboard):
既に今年度デフォルト(変更不要)
記憶:
CLAUDE.md「重要な設計判断」に年度管理方針を追記済み
MEMORY.md に Phase 2 のグローバル作業年度導入方針を記録済み
|
2026-02-20 16:52:38 +09:00 |
|
Akira
|
6eb19f75b7
|
A-7(検索・フィルタ)の実装が完了しました。
実装内容:
テキスト検索: 圃場名・住所で部分一致検索(リアルタイムフィルタリング、検索アイコン付き)
作物フィルタ: ドロップダウンで特定作物に絞り込み
未割当トグル: チェックボックスで未割当の圃場のみ表示
件数表示: フィルタ適用中は 5/39件 のように表示
チェックボックス全選択もフィルタ結果に連動
http://localhost:3000/allocation で確認できます。
|
2026-02-19 13:11:13 +09:00 |
|
Akira
|
4afe37968b
|
A-1(ダッシュボード画面)の実装が完了しました。
実装内容:
バックエンド: summary APIに total_fields, assigned_fields, unassigned_fields を追加
フロントエンド: /dashboard に新画面を作成
概要サマリー: 全圃場数 / 作付け済み / 未割当(警告アイコン付き)
作物別集計テーブル(筆数・面積・合計行)
クイックアクセス: 4つのボタン(作付け計画・圃場管理・帳票出力・データ取込)
年度セレクタで切替可能
Navbar: 「ホーム」ボタン追加、KeinaSystemロゴクリックでダッシュボードへ
ルート (/): /allocation → /dashboard にリダイレクト先変更
http://localhost:3000/dashboard で確認できます。
残りタスク: A-7(検索・フィルタ)のみです
|
2026-02-19 13:07:16 +09:00 |
|
Akira
|
cce119b1a8
|
A-2 実装内容まとめ:
バックエンド: POST /api/plans/bulk_update/ API(field_ids, year, crop, variety を受けて一括設定)
フロントエンド: チェックボックス列、全選択/個別選択、一括操作バー(作物・品種セレクタ + 確認ダイアログ)
|
2026-02-19 12:29:54 +09:00 |
|
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 |
|
Akira
|
23cb4d3118
|
再起動完了しました。対応表モードに「住所」列を追加しました。圃場名の右隣に表示されます。
ブラウザで http://localhost:3000/fields をリロードして、対応表モードで住所列が表示されるか確認してください。
|
2026-02-18 14:38:22 +09:00 |
|
Akira
|
73e99f62d4
|
対応表モード 実装サマリー
新規ファイル
ファイル 内容
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 で「対応表」ボタンを押して確認できます。
|
2026-02-18 14:24:10 +09:00 |
|
Akira
|
64e7701456
|
実装サマリー
バックエンド(3ファイル変更)
ファイル 変更内容
views.py OfficialKyosaiFieldViewSet、OfficialChusankanFieldViewSet(ReadOnly)、紐づけ追加/解除の4つのAPIビューを追加
urls.py 紐づけ管理用の4パス追加
serializers.py linked_field_namesフィールドを追加(紐づけ先の圃場名を返す)
keinasystem/urls.py /api/kyosai-fields/、/api/chusankan-fields/ をルーターに登録
新規API一覧
メソッド エンドポイント 動作確認
GET /api/kyosai-fields/ 31件返却
GET /api/chusankan-fields/ 71件返却
POST /api/fields/{id}/kyosai-links/ {"added":1}
DELETE /api/fields/{id}/kyosai-links/{kyosai_id}/ 204
POST /api/fields/{id}/chusankan-links/ 同上
DELETE /api/fields/{id}/chusankan-links/{chusankan_id}/ 同上
フロントエンド(3ファイル変更)
ファイル 変更内容
types/index.ts linked_field_namesプロパティ追加
fields/[id]/page.tsx 紐づけ管理UI全面実装(+追加ボタン、x解除ボタン、検索付きモーダル、面積参考表示)
fields/page.tsx 「共済」「中山間」紐づけ件数列を追加
http://localhost:3000/fields/4 などで圃場詳細画面を開いて動作確認できます。
|
2026-02-18 14:02:40 +09:00 |
|