X-Git-Url: http://git.auf.org/?p=auf_rh_dae.git;a=blobdiff_plain;f=project%2Frh%2Fmodels.py;h=07e702f5a46733eeb706c915320c1d7c0e886704;hp=d2771bae0bce75ea93d95aa8c57d161afa3f77cb;hb=45066657089902dc19cff39f32fd45492154bf0f;hpb=d104b0ae983d1dd90b9f066f003341a4d7d02323 diff --git a/project/rh/models.py b/project/rh/models.py index d2771ba..07e702f 100644 --- a/project/rh/models.py +++ b/project/rh/models.py @@ -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 -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 @@ -109,12 +107,15 @@ class DevisableMixin(object): 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" ) + date_creation = models.DateTimeField( + u'date', auto_now_add=True, blank=True, null=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éé. @@ -335,14 +336,13 @@ class Poste(Poste_): 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', - 'commentaires', 'rh_dossiers' + 'commentaires' ]) @@ -412,7 +412,7 @@ class PostePiece(PostePiece_): 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. @@ -440,8 +440,6 @@ class PosteComparaison(PosteComparaison_): Poste, related_name='rh_comparaisons_internes' ) - objects = NoDeleteManager() - reversion.register(PosteComparaison, format='xml') @@ -455,7 +453,7 @@ reversion.register(PosteCommentaire, format='xml') ### 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. @@ -588,7 +586,7 @@ class Employe(AUFMetadata): 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. """ @@ -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é @@ -1073,7 +1071,7 @@ reversion.register(DossierComparaison, format='xml') ### RÉMUNÉRATION -class RemunerationMixin(AUFMetadata): +class RemunerationMixin(models.Model): # Identification type = models.ForeignKey( @@ -1144,13 +1142,14 @@ reversion.register(Remuneration, format='xml') ### 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') -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 @@ -1188,7 +1187,7 @@ reversion.register(Contrat, format='xml') ### 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. @@ -1223,7 +1222,7 @@ class FamilleProfessionnelle(models.Model): reversion.register(FamilleProfessionnelle, format='xml') -class TypePoste(AUFMetadata): +class TypePoste(models.Model): """ Catégorie de Poste. """ @@ -1266,7 +1265,7 @@ NATURE_REMUNERATION_CHOICES = ( ) -class TypeRemuneration(AUFMetadata): +class TypeRemuneration(models.Model): """ Catégorie de Remuneration. """ @@ -1297,7 +1296,7 @@ class TypeRemuneration(AUFMetadata): reversion.register(TypeRemuneration, format='xml') -class TypeRevalorisation(AUFMetadata): +class TypeRevalorisation(models.Model): """ Justification du changement de la Remuneration. (Actuellement utilisé dans aucun traitement informatique.) @@ -1315,7 +1314,7 @@ class TypeRevalorisation(AUFMetadata): reversion.register(TypeRevalorisation, format='xml') -class Service(AUFMetadata): +class Service(models.Model): """ 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. @@ -1375,7 +1374,7 @@ class OrganismeBstg(AUFMetadata): reversion.register(OrganismeBstg, format='xml') -class Statut(AUFMetadata): +class Statut(models.Model): """ Statut de l'Employe dans le cadre d'un Dossier particulier. """ @@ -1426,7 +1425,7 @@ class ClassementManager(models.Manager): return qs.all() -class Classement_(AUFMetadata): +class Classement_(models.Model): """ É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') -class TauxChange_(AUFMetadata): +class TauxChange_(models.Model): """ 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') -class ValeurPointManager(NoDeleteManager): +class ValeurPointManager(models.Manager): 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 @@ -1506,6 +1505,7 @@ class ValeurPoint_(AUFMetadata): salaire de base = coefficient * valeur du point de l'Implantation du Poste """ + objects = models.Manager() actuelles = ValeurPointManager() valeur = models.FloatField(null=True) @@ -1535,7 +1535,7 @@ class ValeurPoint(ValeurPoint_): reversion.register(ValeurPoint, format='xml') -class Devise(AUFMetadata): +class Devise(models.Model): """ Devise monétaire. """ @@ -1556,7 +1556,7 @@ class Devise(AUFMetadata): reversion.register(Devise, format='xml') -class TypeContrat(AUFMetadata): +class TypeContrat(models.Model): """ Type de contrat. """