import DAE->RH
authorOlivier Larchevêque <olivier.larcheveque@auf.org>
Mon, 26 Mar 2012 14:34:10 +0000 (10:34 -0400)
committerOlivier Larchevêque <olivier.larcheveque@auf.org>
Mon, 26 Mar 2012 14:34:10 +0000 (10:34 -0400)
project/dae/exporter.py
project/dae/managers.py
project/dae/models.py

index 08f4e07..b7dae20 100644 (file)
@@ -90,9 +90,17 @@ class SuperCopier(object):
     
         return copy
 
+    def copy(self, obj):
+        return self.duplicate(obj)
+
 
 class PosteCopier(SuperCopier):
 
+    def copy(self, obj):
+        copy = super(PosteCopier, self).copy(obj)
+        dae.ImportPoste(dae=obj, rh=copy).save()
+        return copy
+
     def clean_rh_dossiers(self, source, copy, parent, field, value):
         self.out(SKIP, 1)
         return []
@@ -140,6 +148,11 @@ class PosteCopier(SuperCopier):
 
 class DossierCopier(SuperCopier):
 
+    def copy(self, obj):
+        copy = super(DossierCopier, self).copy(obj)
+        dae.ImportDossier(dae=obj, rh=copy).save()
+        return copy
+
     def clean_rh_contrats(self, source, copy, parent, field, value):
         self.out(SKIP, 1)
         return []
index 9d6bd55..5ae8204 100644 (file)
@@ -54,9 +54,15 @@ class DossierComparaisonManager(RHDossierComparaisonManager, TodoManagerMixin):
     pass
 
 class DossierFinaliseManager(models.Manager):
+    """
+    Dossiers finalisés, qui ne sont pas encore importés
+    """
     def get_query_set(self):
+        from dae.models import ImportDossier
+        dae_importees = [str(i.dae_id) for i in ImportDossier.objects.all()]
         qs = super(DossierFinaliseManager,
-                self).get_query_set().filter(etat=DOSSIER_ETAT_FINALISE)
+                self).get_query_set().filter(etat=DOSSIER_ETAT_FINALISE,).extra(where=['id\
+                    NOT IN (%s)' % ", ".join(dae_importees)])
         return qs
 
 
index 19f37de..348d757 100644 (file)
@@ -54,10 +54,6 @@ class Poste(PosteWorkflow, rh.Poste_):
     # Managers
     objects = PosteManager()
 
-    def importer(self, verbosity=0, dry_run=False):
-        copieur = PosteCopier(verbosity=verbosity, dry_run=dry_run)
-        return copieur.duplicate(self)
-
     def _get_key(self):
         """
         Les vues sont montées selon une clef spéciale
@@ -417,7 +413,7 @@ class Dossier(DossierWorkflow, rh.Dossier_):
 
     def importer(self, verbosity=0, dry_run=False):
         copieur = DossierCopier(verbosity=verbosity, dry_run=dry_run)
-        return copieur.duplicate(self)
+        return copieur.copy(self)
 
     def get_salaire_anterieur_euros(self):
         if self.devise_anterieur is None: