[#2658] Intégration de reversion à l'app rh
[auf_rh_dae.git] / project / rh / models.py
index d2771ba..07e702f 100644 (file)
@@ -7,8 +7,6 @@ from decimal import Decimal
 import reversion
 from auf.django.emploi.models import \
         GENRE_CHOICES, SITUATION_CHOICES  # devrait plutot être dans references
 import reversion
 from auf.django.emploi.models import \
         GENRE_CHOICES, SITUATION_CHOICES  # devrait plutot être dans references
-from auf.django.metadata.models import AUFMetadata
-from auf.django.metadata.managers import NoDeleteManager
 from auf.django.references import models as ref
 from django.core.files.storage import FileSystemStorage
 from django.db import models
 from auf.django.references import models as ref
 from django.core.files.storage import FileSystemStorage
 from django.db import models
@@ -109,12 +107,15 @@ class DevisableMixin(object):
         return int(round(float(self.montant) * float(taux), 2))
 
 
         return int(round(float(self.montant) * float(taux), 2))
 
 
-class Commentaire(AUFMetadata):
+class Commentaire(models.Model):
     texte = models.TextField()
     owner = models.ForeignKey(
         'auth.User', db_column='owner', related_name='+',
         verbose_name=u"Commentaire de"
     )
     texte = models.TextField()
     owner = models.ForeignKey(
         'auth.User', db_column='owner', related_name='+',
         verbose_name=u"Commentaire de"
     )
+    date_creation = models.DateTimeField(
+        u'date', auto_now_add=True, blank=True, null=True
+    )
 
     class Meta:
         abstract = True
 
     class Meta:
         abstract = True
@@ -132,7 +133,7 @@ POSTE_APPEL_CHOICES = (
 )
 
 
 )
 
 
-class Poste_(AUFMetadata):
+class Poste_(models.Model):
     """
     Un Poste est un emploi (job) à combler dans une implantation.
     Un Poste peut être comblé par un Employe, auquel cas un Dossier est créé.
     """
     Un Poste est un emploi (job) à combler dans une implantation.
     Un Poste peut être comblé par un Employe, auquel cas un Dossier est créé.
@@ -335,14 +336,13 @@ class Poste(Poste_):
         UTILISE pour mettre a jour le flag vacant
         """
         return [
         UTILISE pour mettre a jour le flag vacant
         """
         return [
-            d.employe for d in self.rh_dossiers
-            .filter(supprime=False)
-            .exclude(date_fin__lt=date.today())
+            d.employe
+            for d in self.rh_dossiers.exclude(date_fin__lt=date.today())
         ]
 
 reversion.register(Poste, format='xml', follow=[
     'rh_financements', 'rh_pieces', 'rh_comparaisons_internes',
         ]
 
 reversion.register(Poste, format='xml', follow=[
     'rh_financements', 'rh_pieces', 'rh_comparaisons_internes',
-    'commentaires', 'rh_dossiers'
+    'commentaires'
 ])
 
 
 ])
 
 
@@ -412,7 +412,7 @@ class PostePiece(PostePiece_):
 reversion.register(PostePiece, format='xml')
 
 
 reversion.register(PostePiece, format='xml')
 
 
-class PosteComparaison_(AUFMetadata, DevisableMixin):
+class PosteComparaison_(models.Model, DevisableMixin):
     """
     De la même manière qu'un dossier, un poste peut-être comparé à un autre
     poste.
     """
     De la même manière qu'un dossier, un poste peut-être comparé à un autre
     poste.
@@ -440,8 +440,6 @@ class PosteComparaison(PosteComparaison_):
         Poste, related_name='rh_comparaisons_internes'
     )
 
         Poste, related_name='rh_comparaisons_internes'
     )
 
-    objects = NoDeleteManager()
-
 reversion.register(PosteComparaison, format='xml')
 
 
 reversion.register(PosteComparaison, format='xml')
 
 
@@ -455,7 +453,7 @@ reversion.register(PosteCommentaire, format='xml')
 
 ### EMPLOYÉ/PERSONNE
 
 
 ### EMPLOYÉ/PERSONNE
 
-class Employe(AUFMetadata):
+class Employe(models.Model):
     """
     Personne occupant ou ayant occupé un Poste. Un Employe aura autant de
     Dossiers qu'il occupe ou a occupé de Postes.
     """
     Personne occupant ou ayant occupé un Poste. Un Employe aura autant de
     Dossiers qu'il occupe ou a occupé de Postes.
@@ -588,7 +586,7 @@ class Employe(AUFMetadata):
         return regions
 
 reversion.register(Employe, format='xml', follow=[
         return regions
 
 reversion.register(Employe, format='xml', follow=[
-    'pieces', 'commentaires', 'ayantdroits', 'rh_dossiers'
+    'pieces', 'commentaires', 'ayantdroits'
 ])
 
 
 ])
 
 
@@ -637,7 +635,7 @@ LIEN_PARENTE_CHOICES = (
 )
 
 
 )
 
 
-class AyantDroit(AUFMetadata):
+class AyantDroit(models.Model):
     """
     Personne en relation avec un Employe.
     """
     """
     Personne en relation avec un Employe.
     """
@@ -709,7 +707,7 @@ COMPTE_COMPTA_CHOICES = (
 )
 
 
 )
 
 
-class Dossier_(AUFMetadata, DevisableMixin):
+class Dossier_(models.Model, DevisableMixin):
     """
     Le Dossier regroupe les informations relatives à l'occupation
     d'un Poste par un Employe. Un seul Dossier existe par Poste occupé
     """
     Le Dossier regroupe les informations relatives à l'occupation
     d'un Poste par un Employe. Un seul Dossier existe par Poste occupé
@@ -1073,7 +1071,7 @@ reversion.register(DossierComparaison, format='xml')
 
 ### RÉMUNÉRATION
 
 
 ### RÉMUNÉRATION
 
-class RemunerationMixin(AUFMetadata):
+class RemunerationMixin(models.Model):
 
     # Identification
     type = models.ForeignKey(
 
     # Identification
     type = models.ForeignKey(
@@ -1144,13 +1142,14 @@ reversion.register(Remuneration, format='xml')
 
 ### CONTRATS
 
 
 ### CONTRATS
 
-class ContratManager(NoDeleteManager):
+class ContratManager(models.Manager):
+
     def get_query_set(self):
         return super(ContratManager, self).get_query_set() \
                 .select_related('dossier', 'dossier__poste')
 
 
     def get_query_set(self):
         return super(ContratManager, self).get_query_set() \
                 .select_related('dossier', 'dossier__poste')
 
 
-class Contrat_(AUFMetadata):
+class Contrat_(models.Model):
     """
     Document juridique qui encadre la relation de travail d'un Employe
     pour un Poste particulier. Pour un Dossier (qui documente cette
     """
     Document juridique qui encadre la relation de travail d'un Employe
     pour un Poste particulier. Pour un Dossier (qui documente cette
@@ -1188,7 +1187,7 @@ reversion.register(Contrat, format='xml')
 
 ### RÉFÉRENCES RH
 
 
 ### RÉFÉRENCES RH
 
-class CategorieEmploi(AUFMetadata):
+class CategorieEmploi(models.Model):
     """
     Catégorie utilisée dans la gestion des Postes.
     Catégorie supérieure à TypePoste.
     """
     Catégorie utilisée dans la gestion des Postes.
     Catégorie supérieure à TypePoste.
@@ -1223,7 +1222,7 @@ class FamilleProfessionnelle(models.Model):
 reversion.register(FamilleProfessionnelle, format='xml')
 
 
 reversion.register(FamilleProfessionnelle, format='xml')
 
 
-class TypePoste(AUFMetadata):
+class TypePoste(models.Model):
     """
     Catégorie de Poste.
     """
     """
     Catégorie de Poste.
     """
@@ -1266,7 +1265,7 @@ NATURE_REMUNERATION_CHOICES = (
 )
 
 
 )
 
 
-class TypeRemuneration(AUFMetadata):
+class TypeRemuneration(models.Model):
     """
     Catégorie de Remuneration.
     """
     """
     Catégorie de Remuneration.
     """
@@ -1297,7 +1296,7 @@ class TypeRemuneration(AUFMetadata):
 reversion.register(TypeRemuneration, format='xml')
 
 
 reversion.register(TypeRemuneration, format='xml')
 
 
-class TypeRevalorisation(AUFMetadata):
+class TypeRevalorisation(models.Model):
     """
     Justification du changement de la Remuneration.
     (Actuellement utilisé dans aucun traitement informatique.)
     """
     Justification du changement de la Remuneration.
     (Actuellement utilisé dans aucun traitement informatique.)
@@ -1315,7 +1314,7 @@ class TypeRevalorisation(AUFMetadata):
 reversion.register(TypeRevalorisation, format='xml')
 
 
 reversion.register(TypeRevalorisation, format='xml')
 
 
-class Service(AUFMetadata):
+class Service(models.Model):
     """
     Unité administrative où les Postes sont rattachés.
     """
     """
     Unité administrative où les Postes sont rattachés.
     """
@@ -1345,7 +1344,7 @@ TYPE_ORGANISME_CHOICES = (
 )
 
 
 )
 
 
-class OrganismeBstg(AUFMetadata):
+class OrganismeBstg(models.Model):
     """
     Organisation d'où provient un Employe mis à disposition (MAD) de
     ou détaché (DET) à l'AUF à titre gratuit.
     """
     Organisation d'où provient un Employe mis à disposition (MAD) de
     ou détaché (DET) à l'AUF à titre gratuit.
@@ -1375,7 +1374,7 @@ class OrganismeBstg(AUFMetadata):
 reversion.register(OrganismeBstg, format='xml')
 
 
 reversion.register(OrganismeBstg, format='xml')
 
 
-class Statut(AUFMetadata):
+class Statut(models.Model):
     """
     Statut de l'Employe dans le cadre d'un Dossier particulier.
     """
     """
     Statut de l'Employe dans le cadre d'un Dossier particulier.
     """
@@ -1426,7 +1425,7 @@ class ClassementManager(models.Manager):
         return qs.all()
 
 
         return qs.all()
 
 
-class Classement_(AUFMetadata):
+class Classement_(models.Model):
     """
     Éléments de classement de la
     "Grille générique de classement hiérarchique".
     """
     Éléments de classement de la
     "Grille générique de classement hiérarchique".
@@ -1464,7 +1463,7 @@ class Classement(Classement_):
 reversion.register(Classement, format='xml')
 
 
 reversion.register(Classement, format='xml')
 
 
-class TauxChange_(AUFMetadata):
+class TauxChange_(models.Model):
     """
     Taux de change de la devise vers l'euro (EUR)
     pour chaque année budgétaire.
     """
     Taux de change de la devise vers l'euro (EUR)
     pour chaque année budgétaire.
@@ -1490,14 +1489,14 @@ class TauxChange(TauxChange_):
 reversion.register(TauxChange, format='xml')
 
 
 reversion.register(TauxChange, format='xml')
 
 
-class ValeurPointManager(NoDeleteManager):
+class ValeurPointManager(models.Manager):
 
     def get_query_set(self):
         return super(ValeurPointManager, self).get_query_set() \
                 .select_related('devise', 'implantation')
 
 
 
     def get_query_set(self):
         return super(ValeurPointManager, self).get_query_set() \
                 .select_related('devise', 'implantation')
 
 
-class ValeurPoint_(AUFMetadata):
+class ValeurPoint_(models.Model):
     """
     Utile pour connaître, pour un Dossier, le salaire de base théorique lié
     au classement dans la grille. La ValeurPoint s'obtient par l'implantation
     """
     Utile pour connaître, pour un Dossier, le salaire de base théorique lié
     au classement dans la grille. La ValeurPoint s'obtient par l'implantation
@@ -1506,6 +1505,7 @@ class ValeurPoint_(AUFMetadata):
     salaire de base = coefficient * valeur du point de l'Implantation du Poste
     """
 
     salaire de base = coefficient * valeur du point de l'Implantation du Poste
     """
 
+    objects = models.Manager()
     actuelles = ValeurPointManager()
 
     valeur = models.FloatField(null=True)
     actuelles = ValeurPointManager()
 
     valeur = models.FloatField(null=True)
@@ -1535,7 +1535,7 @@ class ValeurPoint(ValeurPoint_):
 reversion.register(ValeurPoint, format='xml')
 
 
 reversion.register(ValeurPoint, format='xml')
 
 
-class Devise(AUFMetadata):
+class Devise(models.Model):
     """
     Devise monétaire.
     """
     """
     Devise monétaire.
     """
@@ -1556,7 +1556,7 @@ class Devise(AUFMetadata):
 reversion.register(Devise, format='xml')
 
 
 reversion.register(Devise, format='xml')
 
 
-class TypeContrat(AUFMetadata):
+class TypeContrat(models.Model):
     """
     Type de contrat.
     """
     """
     Type de contrat.
     """