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.0b11.tar.gz (5.1 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.0b11-py3-none-any.whl (6.2 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: forge_mvc_workflow-1.0.0b11.tar.gz
  • Upload date:
  • Size: 5.1 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.0b11.tar.gz
Algorithm Hash digest
SHA256 2d34d2fdeed5d0ff3b388cc26b50ec2c200c3e81b1fd85c04f07ffb2a6b5c966
MD5 945e7b6c02bd3ff02947e43891af5f55
BLAKE2b-256 83d659f7a695dd4a2af0923d0870996021f09469d727598b456eb0b0570c3a09

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for forge_mvc_workflow-1.0.0b11-py3-none-any.whl
Algorithm Hash digest
SHA256 54a9b7610802895709cf6ef968cc97b200d116d28cff2b527510167c382263cb
MD5 29c7b3c31241f3a42e6feb75fafbe11b
BLAKE2b-256 9c7900325aa69eb4793c09be2a0f9949e98bc23f76b29a678eebe3f621c89460

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