[[PageOutline]] = Guide Utilisateur !GoFlow = GoFlow est un module permettant d'ajouter des fonctionnalités de workflow à un projet django. Nous allons ici apprendre à utiliser ce module, en partant d'un projet django très simple ("Hello world"), puis en ajoutant progressivement des fonctionnalités. == Prérequis == * Créer un répertoire de travail, et copier le répertoire ''goflow'' dans ce répertoire (on peut également le placer dans tout répertoire du PYTHONPATH) == 1. Projet "Hello World" == Nous allons découvrir le moteur de workflow au moyen d'une application très simple basée sur un process workflow possédant une seule activité (une seule activité, pas de transition: le plus simple possible). Cette activité consiste à recevoir un message (par exemple "Hello world"). * Commençons par créer un projet django vide (ou utiliser un projet existant) {{{ django-admin startproj myproj }}} * Ajouter les applications suivantes dans le fichier ''settings.py'' {{{ INSTALLED_APPS = ( ..., 'django.contrib.admin', 'goflow.workflow', 'goflow.instances', ) }}} L'application ''workflow'' contient la partie "statique" du modèle de données (modélisation des process), et l'application ''instances'' contient la partie dynamique, ou runtime. {{{ DATABASE_ENGINE = 'sqlite3' # 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'. DATABASE_NAME = 'data.sqlite' # Or path to database file if using sqlite3. }}} {{{ urlpatterns = patterns('', # Example: # (r'^myproj/', include('myproj.foo.urls')), # Uncomment this for admin: (r'^admin/', include('django.contrib.admin.urls')), (r'^workflow/', include('goflow.urls')), ) }}} [[Image(admin1.png)]] == 2. Ajoutons une activité == B répond à A == 3. Ajoutons nos propres modèles == le message bonjour est contenu dans un objet. on personnalise les templates {{{ #!python class Test: def __init__(self): print "Hello World" if __name__ == '__main__': Test() }}} == 4. Et avec du code == on implémente des méthodes de forms. * liste * liste def:: efvzsefv [[Image(http://www.edgewall.com/gfx/trac_example_image.png)]] === titre 3 === fgghgjh ==== titre 4 ==== {{{ code }}} ---- == 5. !GoFlow avancé == === Applications workflow === * start_application * view_application, edit_model, default_application === Test unitaire d'application === * todo === Objet workflow composite === * todo == 6. A paraître (ou au moins envisagés) == Des modules optionnels, sous la forme d'applications django, sont en préparation ou envisagés. === Vues graphiques === Deux modules graphiques plus ou moins ambitieux ont déjà leur modèle de données dans la distribution actuelle ==== graphics ==== Le but de ce module est de gérer l'affichage graphique d'un process en mode vectoriel, à l'aide des technos javascript, ajax ou svg. Le positionnement des activités dans le diagramme serait laissé à l'utilisateur, mais serait effectué interactivement, à la souris. ==== graphics2 ==== Ce module, plus simple que le précédent, permet juste d'associer une image (scan d'un dessin à main levé, image produite par tout logiciel verctoriel exportant en bitmap) a un process. Il est toutefois possible au niveau de la console admin d'associer aux activités des positions 2d sur cette image, ce qui permet d'obtenir une représentation visuelle d'un process intéressante, d'un point de vue statique autant que dynamique. Le développement de ce module est prioritaire par rapport au précédent. === !EasyGoFlow === Pourquoi ne pas envisager un module permettant de créer interactivement des process workflow, à l'aide de wizzards web. L'utilisation d'objets génériques permettrait de créer une application sans aucun codage; on pourrait aussi personnaliser les templates depuis l'interface web.