経費フォームの検証エラーでスキャン済み領収書の紐付けが失われる #1

Closed
opened 2026-09-27 10:15:02 +00:00 by joe · 1 comment
Owner

レビュー指摘(deferred minor)の正式なissue化。

現象

領収書スキャン(/expenses/scan)→フォーム初期値表示→バリデーションエラーで再表示されると、hiddenのscanned_receiptがv['receipt_filename']にマップされず消える。そのまま保存するとreceipt_filename=Noneになり、保存済み画像が孤立する。

対象

  • app/routes/expenses.py — new_expenseのエラーパス
  • app/templates/expenses/form.html — hiddenフィールドの参照キー

修正方針

  • エラー再表示時にv['receipt_filename'] = request.form.get('scanned_receipt')を補う、またはフィールド名をreceipt_filenameに統一

関連

/expenses/newはバリデーション前に画像を保存するため、検証失敗でも無参照ファイルが残る。edit_expenseは検証後保存で順序が不整合。併せて「バリデーション→保存」の順に統一する。

レビュー指摘(deferred minor)の正式なissue化。 ## 現象 領収書スキャン(`/expenses/scan`)→フォーム初期値表示→バリデーションエラーで再表示されると、hiddenの`scanned_receipt`が`v['receipt_filename']`にマップされず消える。そのまま保存すると`receipt_filename=None`になり、保存済み画像が孤立する。 ## 対象 - `app/routes/expenses.py` — `new_expense`のエラーパス - `app/templates/expenses/form.html` — hiddenフィールドの参照キー ## 修正方針 - エラー再表示時に`v['receipt_filename'] = request.form.get('scanned_receipt')`を補う、またはフィールド名を`receipt_filename`に統一 ## 関連 `/expenses/new`はバリデーション前に画像を保存するため、検証失敗でも無参照ファイルが残る。`edit_expense`は検証後保存で順序が不整合。併せて「バリデーション→保存」の順に統一する。
Author
Owner

修正しました。バリデーションを先に行い、エラー再表示時も scanned_receipt をhiddenで保持するようにしました。検証失敗時に無参照画像が残る問題(保存順序の不整合)も同時に解消。テスト70件パス。

修正しました。バリデーションを先に行い、エラー再表示時も `scanned_receipt` をhiddenで保持するようにしました。検証失敗時に無参照画像が残る問題(保存順序の不整合)も同時に解消。テスト70件パス。
joe closed this issue 2026-09-27 10:56:37 +00:00
Sign in to join this conversation.
No labels
bug
cleanup
enhancement
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
joe/sougi#1
No description provided.