Skip to content

feat(characters): tags, background & secrets sur la fiche + colonnes desktop (#148, PR 1/3) - #166

Merged
RebelliousSmile merged 1 commit into
mainfrom
claude/plan-derniere-issue-l94t6x
Jul 21, 2026
Merged

feat(characters): tags, background & secrets sur la fiche + colonnes desktop (#148, PR 1/3)#166
RebelliousSmile merged 1 commit into
mainfrom
claude/plan-derniere-issue-l94t6x

Conversation

@RebelliousSmile

Copy link
Copy Markdown
Owner

Première PR de #148 — les 3 volets à faible risque de la fiche personnage. Les volets structurels (③ édition traits/actions, ② bouton « valider », ⑤ conséquences conditionnelles) suivront en PR 2/3.

Changements

  • ① Tags affichés : puces discrètes sur la fiche (detail.html). Le champ M2M tags était éditable mais n'apparaissait nulle part.
  • ④ Champs background + secrets en plus de description :
    • background = histoire publique, affichée sur la fiche.
    • secrets = notes réservées au créateur/propriétaire (garde can_edit_traits), jamais affichées publiquement ni fédérées.
    • Threading complet : modèle + migration additive (0022), service create_character_with_sheet, vues character_create/character_edit (dont update_fields), formulaires create + edit, affichage détail.
  • ⑥ Fiche en 2 colonnes desktop : @lg:grid-cols-3 (narratif à gauche @lg:col-span-2, blocs secondaires dans un <aside> sticky) — règle mobile-first respectée (@container app, jamais @media).

Sécurité — secrets ne fuit pas

Les serializers CharacterSerializer / CharacterSearchSerializer (DRF) et le serializer ActivityPub listent des champs explicites ; background/secrets n'y sont pas ajoutés (aucun fields = "__all__"). secrets est donc invisible en API/fédération, en plus de la garde template.

Tests & vérification

  • Service : background/secrets persistés à la création.
  • Vue edit : background/secrets persistés.
  • Fiche : tags + background visibles publiquement ; secrets visible au mainteneur, masqué aux autres utilisateurs et aux anonymes.
  • manage.py check · makemigrations --check = No changes · pytest (create/edit/traits/i18n) · ruff check . + ruff format --check . · mypy suddenly/ · design lint des 3 templates.
  • i18n fr/en + .mo.

Refs #148

🤖 Generated with Claude Code


Generated by Claude Code

…olumns (#148)

PR 1 de #148 — les 3 volets à faible risque de la fiche personnage.

- ① Tags affichés : puces sur la fiche (le champ M2M existait, éditable,
  mais invisible).
- ④ Champs background (public) + secrets (créateur/propriétaire
  uniquement, jamais public ni fédéré) en plus de description : modèle
  + migration additive, service create, vues create/edit, formulaires,
  affichage. Garde secrets via can_edit_traits.
- ⑥ Fiche en 2 colonnes desktop (@lg:grid-cols-3, @container app) pour
  la lisibilité — narratif à gauche, blocs secondaires à droite.

secrets ne fuit pas : absent des serializers DRF/AP (champs explicites).
Tests service + edit + affichage (mainteneur/autre/anonyme). i18n fr/en.

Les volets structurels (édition traits/actions, bouton valider,
conséquences conditionnelles) suivront en PR 2/3.

Refs #148

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01YBRFVUtmBW3YSP8Yd2uNpB
@RebelliousSmile
RebelliousSmile merged commit 240d428 into main Jul 21, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants