Commit Graph

14 Commits

Author SHA1 Message Date
Akira
2c515cca6f 気象データ基盤を実装
- apps/weather 新規作成(WeatherRecord モデル、5種APIエンドポイント)
- GET /api/weather/records/ 日次データ一覧
- GET /api/weather/summary/ 月別・年間集計
- GET /api/weather/gdd/ 有効積算温度(GDD)計算
- GET /api/weather/similarity/ 類似年分析(開花・収穫予測の基礎)
- POST /api/weather/sync/ Windmill向け日次更新(APIキー認証)
- management command: fetch_weather(初回一括・差分取得)
- Crop.base_temp フィールド追加(GDD基準温度、default=0.0℃)
- docker-compose.yml: MAIL_API_KEY 環境変数を追加(ローカルテスト修正)
- requirements.txt: requests>=2.31 追加

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-28 13:23:09 +09:00
Akira
b386ee4380 LAUDE.mdの更新が完了しました。変更内容:
最終更新日 → 2026-02-25
プロジェクト構造 → mail/ と settings/password/ ページを追加
データモデル概要 → MailSender, MailEmail, MailNotificationToken を追加
実装状況 → メールフィルタリング機能を本番稼働済みに更新、パスワード変更機能を追加
マスタードキュメントリンク → document/11_マスタードキュメント_メール通知関連編.md を追加
トラブルシューティング → 本番デプロイコマンド(--env-file .env.production 必須)を冒頭に追加
更新履歴 → 今回の変更を記録
2026-02-25 10:06:22 +09:00
Akira
36ced412dc 2つ目のgmailアカウントを処理 2026-02-23 16:52:15 +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
f520e13d02 マスタードキュメント化にともないCLAUDE.mdを更新 2026-02-21 12:31:36 +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
103331f761 更新内容のサマリー
1. 04_画面設計書.md — 画面5 拡張
圃場詳細画面に追加した仕様(E-2):

共済/中山間セクションに [+追加]ボタン → モーダルで全マスタから検索・複数選択して紐づけ
各行に [×]ボタン → 確認ダイアログ付きで紐づけ解除
面積整合性チェック: 圃場面積 vs 紐づけ区画の合計面積を比較し、一致 / ⚠️差異ありを表示
PC/スマホ両方のレイアウト定義
必要なAPI 6本の定義(紐づけ追加・解除の CRUD)
圃場一覧画面にも追加:

「共済」「中山間」の紐づけ件数列
未紐づけ・面積不一致の ⚠️ 警告表示
2. 06_差異レポート.md — E-2 追加
新タスク E-2: 対応付け可視化・紐づけ管理機能 をサマリーテーブルに追加

3. CLAUDE.md — 次タスク更新
完了済みタスク(A-8, D-1〜D-4, E-1)を既知の課題から除外
E-2を最優先タスクに設定
2026-02-18 13:44:40 +09:00
Akira
bcb7413bad 実装とドキュメントの差異を吸収中 2026-02-18 13:33:25 +09:00
Akira
50e23872f3 ドキュメント更新(6ファイル)
03_データ仕様書.md — 全面書き直し(M:N関係、中山間17列モデル、面積単位、PDF出力仕様)
04_画面設計書.md — 全面書き直し(Navbar追加、圃場管理/新規作成画面追加、インライン編集方式、PDF帳票フォーマット仕様 E-1)
01_プロダクトビジョン.md — CSV→PDF、M:1→M:N
05_実装優先順位.md — CSV→PDF、Django 5.0→5.2、モーダル→インライン、init_crops削除
00_Gemini向け統合指示書.md — CSV→PDF、Django 5.2、M:N関係、中山間17列モデル、init_crops削除、IsAuthenticated
CLAUDE.md — 既知の課題一覧、次タスク優先順追加、中山間モデル拡張、差異レポートリンク
コード修正(4件)
D-1: reports/views.py — plan.crop / plan.variety の null チェック追加
D-2: init_crops.py を削除
D-3: settings.py — LANGUAGE_CODE/TIME_ZONE の二重定義を解消
D-4: settings.py — AllowAny → IsAuthenticated に変更
次のタスクは CLAUDE.md の優先順リストに従うと A-8(圃場詳細に共済/中山間情報表示)です。続けますか?
2026-02-17 10:56:09 +09:00
Akira
9c21caa017 見直し前の最終 2026-02-16 13:45:16 +09:00