Restructure citizen vote page + add vote deadline

Reorganize the citizen page (/commune/[slug]) for voters: full-width
interactive chart with "Population" zoom by default, separate auth and
vote sections, countdown timer for vote deadline.

Backend: add vote_deadline column to communes with Alembic migration.
Admin: add deadline configuration card with datetime-local input.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Yvv
2026-02-23 00:46:48 +01:00
parent 2af95ebcf1
commit 6caea1b809
7 changed files with 434 additions and 206 deletions

View File

@@ -0,0 +1,30 @@
"""add vote_deadline to communes
Revision ID: 0d7cc7e3efb9
Revises: 25f534648ea7
Create Date: 2026-02-23 00:37:23.451137
"""
from typing import Sequence, Union
from alembic import op
import sqlalchemy as sa
# revision identifiers, used by Alembic.
revision: str = '0d7cc7e3efb9'
down_revision: Union[str, None] = '25f534648ea7'
branch_labels: Union[str, Sequence[str], None] = None
depends_on: Union[str, Sequence[str], None] = None
def upgrade() -> None:
# ### commands auto generated by Alembic - please adjust! ###
op.add_column('communes', sa.Column('vote_deadline', sa.DateTime(), nullable=True))
# ### end Alembic commands ###
def downgrade() -> None:
# ### commands auto generated by Alembic - please adjust! ###
op.drop_column('communes', 'vote_deadline')
# ### end Alembic commands ###