feat(characters): conséquences conditionnelles sur les actions (#148, PR 4/4) - #169
Merged
Merged
Conversation
PR 4 (dernière) de #148 — ⑤ conséquences conditionnelles. Une action pouvait porter un seul résultat (Action.outcome) ; l'issue demande plusieurs résultats choisis par une condition (« de 7 à 9 »). - Nouveau modèle enfant ActionOutcome (trigger texte libre + text + order), non destructif : Action.outcome reste le résultat simple/base, ActionOutcome ajoute la liste « choisir selon condition ». Migration 0023, aucune migration de données. - Éditeur : ajout + édition inline + suppression des conséquences sous chaque action (swap du bloc #set-<pk>, patron PR 2). Set-scoped only — les actions transverses restent read-only. - Affichage read-only sur la fiche + le bloc transverse. Préfetch actions__outcomes (anti-N+1). - trigger en texte libre, aucune validation de plage (Suddenly n'évalue rien). Tests (CRUD + transverse 404 + étranger 403 + fiche) ; i18n. Ferme #148. Closes #148 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01YBRFVUtmBW3YSP8Yd2uNpB
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Dernière PR de #148 — volet ⑤ conséquences conditionnelles. Ferme l'issue.
Pourquoi
Point ⑤ : « pour les actions, pour la conséquence, plusieurs résultats selon des conditions (de 7 à 9, choisis une option) ».
Action.outcomene portait qu'un seul texte.Décisions (validées) : condition en texte libre (aucune validation de plage — cohérent avec « Suddenly n'évalue rien ») ; édition inline des lignes en v1 (comme le reste de l'éditeur depuis PR 2).
Changements
ActionOutcome(enfant deAction,related_name="outcomes") :trigger(texte libre, ex. « 7-9 »),text(le résultat),order. Non destructif —Action.outcomereste le résultat simple/base ;ActionOutcomeajoute la liste « choisir selon condition ». Migration0023, aucune migration de données.trait_set.html) : sous chaque action, la liste des conséquences avec ajout + édition inline + suppression — même patron HTMX que le reste (swap du bloc#set-<pk>). Vuesaction_outcome_create/action_outcome_edit/action_outcome_delete, 3 routes.trait_set=None) restent read-only : l'endpoint est set-scoped (404 sinon) ; leurs conséquences éventuelles s'affichent en lecture seule.actions__outcomes(anti-N+1).Tests & vérification
trigger),textrequis (422), édition inline (GET form + POST), suppression, action transverse → 404, étranger → 403, rendu sur la fiche publique.manage.py check·makemigrations --check= No changes ·pytest(35 traits + i18n) ·ruff check .+ruff format --check .·mypy suddenly/· design lint.#148 — récap des 4 PR
Closes #148
🤖 Generated with Claude Code
Generated by Claude Code