Files
AdamThomasandClaude Opus 5.5 d0fa1e109c
ci-cd / build-backend (push) Successful in 38s
ci-cd / build-frontend (push) Successful in 20s
ci-cd / deploy (push) Successful in 13s
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>
2026-10-12 18:54:35 +02:00

41 lines
1.3 KiB
Python

"""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")