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
|
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
|
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
|
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
|
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
|
592aedb665
|
Day 11 完了
実装内容:
1. frontend/src/components/Navbar.tsx - データ取込リンク追加
2. frontend/src/app/import/page.tsx - データインポート画面
機能:
- 共済マスタ取込(POST /api/fields/import/kyosai/)
- 実圃場データ取込(POST /api/fields/import/yoshida/)
- ファイル選択 (.ods)
- 結果表示(作成件数、更新件数)
- エラー表示
API動作確認:
- /api/fields/import/kyosai/ → HTTP 400(ファイルなし時)
- /api/fields/import/yoshida/ → HTTP 400(ファイルなし時)
ブラウザで http://localhost:3000/import からデータインポートが可能です。
次の工程に移りますか?
|
2026-02-15 14:02:46 +09:00 |
|
Akira
|
6334c6deaa
|
Day 10 完了
実装内容:
1. frontend/src/components/Navbar.tsx - 帳票出力リンク追加
2. frontend/src/app/reports/page.tsx - 帳票出力画面(PDFダウンロード)
API動作確認:
- /api/reports/kyosai/2025/ → HTTP 200 (76KB PDF)
- /api/reports/chusankan/2025/ → HTTP 200 (84KB PDF)
ブラウザで http://localhost:3000/reports から帳票ダウンロードが可能です。
次の工程に移りますか?
|
2026-02-15 13:45:46 +09:00 |
|
Akira
|
923dd5dece
|
Day 9 完了
実装内容:
1. backend/apps/fields/views.py - FieldViewSetをModelViewSetに変更(書き込み可能)
2. frontend/src/components/Navbar.tsx - 圃場管理リンク追加
3. frontend/src/app/fields/page.tsx - 圃場一覧画面
4. frontend/src/app/fields/new/page.tsx - 新規作成画面
5. frontend/src/app/fields/[id]/page.tsx - 編集画面
API CRUDテスト結果:
- POST /api/fields/ → 201 Created
- GET /api/fields/ → 200 OK
- PATCH /api/fields/{id}/ → 200 OK
- DELETE /api/fields/{id}/ → 204 No Content
ブラウザで http://localhost:3000/fields から圃場のCRUD操作が可能です。
次の工程に移りますか?
|
2026-02-15 13:34:32 +09:00 |
|
Akira
|
afd434cd4c
|
Day 8 完了
実装内容:
1. frontend/src/types/index.ts - 型定義(Field, Crop, Variety, Plan)
2. frontend/src/components/Navbar.tsx - ナビゲーションバー(ログアウトボタン)
3. backend/apps/fields/views.py - FieldViewSet追加
4. backend/apps/fields/serializers.py - 新規作成(Fieldシリアライザー)
5. backend/apps/fields/urls.py - ViewSetルート追加
6. frontend/src/app/allocation/page.tsx - 作付け計画画面(作物・品種選択可能)
7. frontend/src/app/page.tsx - 自動リダイレクト(ログイン状態による)
API動作確認:
- /api/fields/ → HTTP 200(圃場データなし)
- /api/plans/crops/ → HTTP 200(2作物:水稲・大豆)
- /api/plans/?year=2025 → HTTP 200
テスト: http://localhost:3000/ → 自動リダイレクトで /login または /allocation
※ 現在圃場データがないため、画面には「圃場データがありません。インポートを実行してください。」と表示されます。
次の工程に移りますか?
|
2026-02-15 13:23:40 +09:00 |
|