Skip to main content

Forge workflow — statuts et transitions applicatives.

Project description

forge-mvc-workflow

Module workflow pour Forge — statuts et transitions applicatives.

Extrait du core Forge depuis la version 2.6.0 (ADR-004).

Installation

pip install forge-mvc-workflow
# ou en mode developpement
pip install -e packages/forge-mvc-workflow/

Usage

from forge_mvc_workflow import (
    WorkflowStatus,
    WorkflowTransition,
    make_status,
    make_transition,
    validate_statuses,
    validate_transitions,
    can_transition,
    get_available_transitions,
    make_workflow_jinja_helpers,
)

# Definir des statuts
statuses = validate_statuses([
    make_status("brouillon", label="Brouillon", color="gray"),
    make_status("confirme", label="Confirme", color="green"),
    make_status("annule", label="Annule", color="red"),
])

# Definir des transitions autorisees
transitions = validate_transitions([
    make_transition("brouillon", "confirme"),
    make_transition("brouillon", "annule"),
    make_transition("confirme", "annule"),
], statuses=statuses)

# Verifier une transition
if can_transition(transitions, "brouillon", "confirme"):
    ...

# Obtenir les transitions disponibles depuis un statut
available = get_available_transitions(transitions, "brouillon")

Helpers Jinja2

env.globals.update(make_workflow_jinja_helpers())

Dans un template :

{{ workflow_status_badge(reservation.status) }}
{{ workflow_status_label(reservation.status) }}

Cas d'usage

  • Statut d'une reservation (brouillon → confirmee → terminee → annulee)
  • Statut d'un document (redaction → validation → publie)
  • Statut d'une commande (panier → payee → expediee → livree)

API publique

  • WorkflowStatus — dataclass statut (name, label, color)
  • WorkflowTransition — dataclass transition (from_status, to_status)
  • make_status(name, label, color) — constructeur valide
  • make_transition(from_status, to_status) — constructeur valide
  • validate_statuses(list) — valide une liste de statuts
  • validate_transitions(list, statuses) — valide les transitions par rapport aux statuts
  • can_transition(transitions, from_name, to_name) — teste une transition
  • get_available_transitions(transitions, from_name) — liste les transitions disponibles
  • make_workflow_jinja_helpers() — dict de helpers Jinja2

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

forge_mvc_workflow-1.0.0b16.tar.gz (6.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

forge_mvc_workflow-1.0.0b16-py3-none-any.whl (7.3 kB view details)

Uploaded Python 3

File details

Details for the file forge_mvc_workflow-1.0.0b16.tar.gz.

File metadata

  • Download URL: forge_mvc_workflow-1.0.0b16.tar.gz
  • Upload date:
  • Size: 6.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.13

File hashes

Hashes for forge_mvc_workflow-1.0.0b16.tar.gz
Algorithm Hash digest
SHA256 ed25c0aa3ce18beb0b778a523cc1d46968b444829d6f98b6ba6e68a93523ea0e
MD5 fec110c59e5f41d4721d28b113bdb606
BLAKE2b-256 2f247809db8f110d666a6a8e01ba3e442e9d7fc9ad0babe5f70cd95177364105

See more details on using hashes here.

File details

Details for the file forge_mvc_workflow-1.0.0b16-py3-none-any.whl.

File metadata

File hashes

Hashes for forge_mvc_workflow-1.0.0b16-py3-none-any.whl
Algorithm Hash digest
SHA256 84d282d679ff4ed231c978809dcf363c96d987023216ba26dedf82e1411b89fd
MD5 f38ac8dd4ce08a4648465e4f6618e3cb
BLAKE2b-256 89b95ad8de4f3eee704ce75109c23152549edc60c3aaf50539019de429e205cb

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page