safe groupe création
authorOlivier Larchevêque <olivier.larcheveque@auf.org>
Mon, 9 May 2011 16:22:05 +0000 (12:22 -0400)
committerNicolas Cadou <ncadou@cadou.ca>
Thu, 19 May 2011 00:12:22 +0000 (20:12 -0400)
project/dae/workflow.py

index b575914..414d160 100644 (file)
@@ -3,16 +3,28 @@
 from django.contrib.auth.models import Group
 from auf.django.workflow.models import WorkflowMixin
 
+def safe_create_groupe(name):
+    """
+    Création d'un groupe prédéfini. Retourne None, quand la création
+    ne peut se faire. (C'est le cas au syncdb, quand la table de groupe
+    n'a pas été crée encore).
+    """
+    try:
+        grp, created = Group.objects.get_or_create(name=name)
+    except:
+        return None
+    return grp
+
 # Groupes impliqués dans le Worflow
-grp_administrateurs, created = Group.objects.get_or_create(name='Administrateurs')
-grp_gestionnaires, created = Group.objects.get_or_create(name='Gestionnaires')
-grp_directeurs_bureau, created = Group.objects.get_or_create(name='Directeurs de bureau')
-grp_drh, created  = Group.objects.get_or_create(name='DRH')
-grp_pole_financier, created  =  Group.objects.get_or_create(name='Pôle financier')
-grp_haute_direction, created  = Group.objects.get_or_create(name='Haute direction')
-grp_service_utilisateurs, created = Group.objects.get_or_create(name='Service utilisateurs')
-grp_directeurs_service, created  = Group.objects.get_or_create(name='Directeurs de service / pôle')
-grp_correspondants_rh, created = Group.objects.get_or_create(name='Correspondants RH')
+grp_administrateurs = safe_create_groupe(name='Administrateurs')
+grp_gestionnaires = safe_create_groupe(name='Gestionnaires')
+grp_directeurs_bureau = safe_create_groupe(name='Directeurs de bureau')
+grp_drh = safe_create_groupe(name='DRH')
+grp_pole_financier = safe_create_groupe(name='Pôle financier')
+grp_haute_direction = safe_create_groupe(name='Haute direction')
+grp_service_utilisateurs = safe_create_groupe(name='Service utilisateurs')
+grp_directeurs_service = safe_create_groupe(name='Directeurs de service / pôle')
+grp_correspondants_rh = safe_create_groupe(name='Correspondants RH')
 
 dae_groupes = (grp_administrateurs, grp_gestionnaires, grp_directeurs_bureau, grp_drh,
                grp_pole_financier, grp_haute_direction, grp_service_utilisateurs,