Logs de diagnostic et rapprochement SumUp ↔ bénévole
- Une ligne de log par requête (route modèle, statut, durée, code d'erreur, compte), identifiant X-Request-ID repris dans chaque log et affiché à l'utilisateur sous une erreur, exceptions non gérées tracées (500 JSON) - Journal d'accès d'uvicorn coupé : il exposait le jeton du formulaire public - Logs métier : paiement SumUp, connexion, import, plannings, solveur - Nom du bénévole dans la description du checkout SumUp - Code et identifiant de transaction SumUp enregistrés au paiement (migration 0023), affichés sur la fiche et dans l'export Excel Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
d722a81a87
commit
d0fa1e109c
@@ -0,0 +1,40 @@
|
||||
"""Transaction SumUp de la cotisation
|
||||
|
||||
Revision ID: 0023_fee_transaction
|
||||
Revises: 0022_drop_availability
|
||||
Create Date: 2026-10-12
|
||||
|
||||
`volunteer.fee_transaction_code` (code affiché dans le tableau de bord SumUp,
|
||||
ex. `TEENSK4W2K`) et `fee_transaction_id` (identifiant technique) : la
|
||||
transaction qui a réglé la cotisation, posée à la confirmation du paiement —
|
||||
voir `app/api/forms.py:_promote_pending`. Les bénévoles déjà payés restent
|
||||
à `NULL`.
|
||||
"""
|
||||
|
||||
from collections.abc import Sequence
|
||||
|
||||
import sqlalchemy as sa
|
||||
from alembic import op
|
||||
|
||||
revision: str = "0023_fee_transaction"
|
||||
down_revision: str | None = "0022_drop_availability"
|
||||
branch_labels: str | Sequence[str] | None = None
|
||||
depends_on: str | Sequence[str] | None = None
|
||||
|
||||
|
||||
def upgrade() -> None:
|
||||
op.add_column(
|
||||
"volunteer", sa.Column("fee_transaction_code", sa.String(), nullable=True)
|
||||
)
|
||||
op.create_index(
|
||||
"ix_volunteer_fee_transaction_code", "volunteer", ["fee_transaction_code"]
|
||||
)
|
||||
op.add_column(
|
||||
"volunteer", sa.Column("fee_transaction_id", sa.String(), nullable=True)
|
||||
)
|
||||
|
||||
|
||||
def downgrade() -> None:
|
||||
op.drop_column("volunteer", "fee_transaction_id")
|
||||
op.drop_index("ix_volunteer_fee_transaction_code", table_name="volunteer")
|
||||
op.drop_column("volunteer", "fee_transaction_code")
|
||||
Reference in New Issue
Block a user