Formulaire public : logo et texte d'introduction personnalisables
FormTemplate porte désormais un logo (image, PUT/GET .../form/logo — GET public comme .../form/public, affiché sur /inscription) et un texte d'introduction libre (PATCH .../form, description désormais optionnelle comme is_open). Écran de configuration (/inscriptions) : nouveau panneau « Personnalisation » pour importer le logo et rédiger le texte. Le formulaire public affiche le logo en grand au-dessus du panneau et le texte juste sous le titre. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 5
parent
48d3deec65
commit
957a004623
@@ -0,0 +1,34 @@
|
||||
"""Logo et description du formulaire public
|
||||
|
||||
Revision ID: 0014_form_logo
|
||||
Revises: 0013_signup_form
|
||||
Create Date: 2026-09-23
|
||||
|
||||
Habillage de la page publique (`/inscription`, `FormTemplate`) : `logo`/
|
||||
`logo_content_type` (image, stockée en base comme les autres images de
|
||||
l'appli) et `description` (texte libre). Voir `app/api/forms.py`.
|
||||
"""
|
||||
|
||||
from collections.abc import Sequence
|
||||
|
||||
import sqlalchemy as sa
|
||||
from alembic import op
|
||||
|
||||
revision: str = "0014_form_logo"
|
||||
down_revision: str | None = "0013_signup_form"
|
||||
branch_labels: str | Sequence[str] | None = None
|
||||
depends_on: str | Sequence[str] | None = None
|
||||
|
||||
|
||||
def upgrade() -> None:
|
||||
op.add_column("form_template", sa.Column("logo", sa.LargeBinary(), nullable=True))
|
||||
op.add_column(
|
||||
"form_template", sa.Column("logo_content_type", sa.String(), nullable=True)
|
||||
)
|
||||
op.add_column("form_template", sa.Column("description", sa.String(), nullable=True))
|
||||
|
||||
|
||||
def downgrade() -> None:
|
||||
op.drop_column("form_template", "description")
|
||||
op.drop_column("form_template", "logo_content_type")
|
||||
op.drop_column("form_template", "logo")
|
||||
Reference in New Issue
Block a user