Champ « Photo du bénévole » (PHOTO) : photo du formulaire recadrée au cadre, orientation EXIF appliquée, réduite à 300 dpi ; cadre vide sans photo. Champ « Texte libre » (FREE_TEXT) alimenté par le nouveau « Texte du badge » de la fiche bénévole (Volunteer.badge_text, migration 0024), repris dans l'export Excel. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
31 lines
938 B
Python
31 lines
938 B
Python
"""Texte libre du badge
|
|
|
|
Revision ID: 0024_volunteer_badge_text
|
|
Revises: 0023_fee_transaction
|
|
Create Date: 2026-10-27
|
|
|
|
`volunteer.badge_text` : texte propre à chaque bénévole, saisi par la
|
|
coordination sur sa fiche et imprimé sur le badge par le champ
|
|
`FREE_TEXT`. Les nouveaux types de champ de badge (`PHOTO`, `FREE_TEXT`)
|
|
tiennent dans la colonne `badge_field.field_type` existante (VARCHAR sans
|
|
contrainte CHECK, longueur 9 inchangée) : rien à migrer de ce côté.
|
|
"""
|
|
|
|
from collections.abc import Sequence
|
|
|
|
import sqlalchemy as sa
|
|
from alembic import op
|
|
|
|
revision: str = "0024_volunteer_badge_text"
|
|
down_revision: str | None = "0023_fee_transaction"
|
|
branch_labels: str | Sequence[str] | None = None
|
|
depends_on: str | Sequence[str] | None = None
|
|
|
|
|
|
def upgrade() -> None:
|
|
op.add_column("volunteer", sa.Column("badge_text", sa.String(), nullable=True))
|
|
|
|
|
|
def downgrade() -> None:
|
|
op.drop_column("volunteer", "badge_text")
|