south = 0.7
auf.django.skin = 0.15dev
auf.django.auth = 0.5.5dev
+auf.django.metadata = 0.2dev
django-reversion = 1.3.3
auf.django.workflow = 0.14dev
django-ajax-selects = 1.1.4
-django-alphafilter = 0.5.3auf2
+django-alphafilter = 0.5.3auf4
#reportlab = 2.5
#html5lib = 0.90
#pyPDF = 1.13
# -*- encoding: utf-8 -*-
+
+from lib import get_employe_from_user
from permissions import is_admin
# Ajout de variables accessibles dans les templates (pour tester permissions dans templates)
def utilisateur(request):
return {'utilisateur': request.user}
+def this_employe(request):
+ user = request.user
+ employe = get_employe_from_user(user)
+ return {'this_employe': employe}
+
def user_is_admin(request):
return {'user_is_admin': not request.user.is_anonymous() and is_admin(request.user)}
--- /dev/null
+# -*- encoding: utf-8 -*-
+from dae.decorators import user_in_dae_groupes as in_dae_groupes
+
+# Ajout de variables accessibles dans les templates (pour tester permissions dans templates)
+
+def user_in_dae_groupes(request):
+ return {'user_in_dae_groupes': in_dae_groupes(request.user)}
+
class Meta:
model = dae.Remuneration
+ def clean_devise(self):
+ devise = self.cleaned_data['devise']
+ liste_taux = devise.tauxchange_set.order_by('-annee').filter(implantation=self.instance.dossier.poste.implantation)
+ if len(liste_taux) == 0:
+ raise forms.ValidationError(u"La devise %s n'a pas de taux pour l'implantation %s" % (devise, self.instance.dossier.poste.implantation))
+ else:
+ return devise
+
+
class RemunForm(inlineformset_factory(dae.Dossier, dae.Remuneration, extra=5, form=FlexibleRemunForm)):
pass
--- /dev/null
+# encoding: utf-8
+import datetime
+from south.db import db
+from south.v2 import SchemaMigration
+from django.db import models
+
+class Migration(SchemaMigration):
+
+ def forwards(self, orm):
+
+ # Deleting field 'DossierComparaison.montant_euros'
+ db.delete_column('dae_dossiercomparaison', 'montant_euros')
+
+ # Deleting field 'PosteComparaison.montant_euros'
+ db.delete_column('dae_postecomparaison', 'montant_euros')
+
+
+ def backwards(self, orm):
+
+ # Adding field 'DossierComparaison.montant_euros'
+ db.add_column('dae_dossiercomparaison', 'montant_euros', self.gf('django.db.models.fields.IntegerField')(null=True), keep_default=False)
+
+ # Adding field 'PosteComparaison.montant_euros'
+ db.add_column('dae_postecomparaison', 'montant_euros', self.gf('django.db.models.fields.IntegerField')(null=True), keep_default=False)
+
+
+ models = {
+ 'auth.group': {
+ 'Meta': {'object_name': 'Group'},
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '80', 'unique': 'True'}),
+ 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'})
+ },
+ 'auth.permission': {
+ 'Meta': {'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},
+ 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
+ },
+ 'auth.user': {
+ 'Meta': {'object_name': 'User'},
+ 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+ 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
+ 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
+ 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+ 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+ 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+ 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+ 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
+ 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
+ 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}),
+ 'username': ('django.db.models.fields.CharField', [], {'max_length': '30', 'unique': 'True'})
+ },
+ 'contenttypes.contenttype': {
+ 'Meta': {'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},
+ 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
+ },
+ 'dae.dossier': {
+ 'Meta': {'object_name': 'Dossier'},
+ 'classement': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'blank': 'True', 'null': 'True', 'to': "orm['rh_v1.Classement']"}),
+ 'classement_anterieur': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'blank': 'True', 'null': 'True', 'to': "orm['rh_v1.Classement']"}),
+ 'classement_titulaire_anterieur': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'blank': 'True', 'null': 'True', 'to': "orm['rh_v1.Classement']"}),
+ 'compte_compta': ('django.db.models.fields.CharField', [], {'default': "'aucun'", 'max_length': '10'}),
+ 'compte_courriel': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+ 'contrat_date_debut': ('django.db.models.fields.DateField', [], {}),
+ 'contrat_date_fin': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'date_creation': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
+ 'devise': ('django.db.models.fields.related.ForeignKey', [], {'default': '5', 'related_name': "'+'", 'to': "orm['rh_v1.Devise']"}),
+ 'employe': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': "orm['dae.Employe']"}),
+ 'employe_anterieur': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'blank': 'True', 'null': 'True', 'to': "orm['rh_v1.Employe']"}),
+ 'etat': ('django.db.models.fields.CharField', [], {'default': 'None', 'max_length': '20', 'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'justif_nouveau_commentaire': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'justif_nouveau_salaire': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'justif_nouveau_statut': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'justif_nouveau_tmp_remplacement': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'justif_rempl_commentaire': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'justif_rempl_evaluation': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'justif_rempl_salaire': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'justif_rempl_statut_employe': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'justif_rempl_type_contrat': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'organisme_bstg': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'blank': 'True', 'null': 'True', 'to': "orm['rh_v1.OrganismeBstg']"}),
+ 'organisme_bstg_autre': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+ 'poste': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'dossiers'", 'to': "orm['dae.Poste']"}),
+ 'regime_travail': ('django.db.models.fields.DecimalField', [], {'default': '100.0', 'max_digits': '12', 'decimal_places': '2'}),
+ 'regime_travail_nb_heure_semaine': ('django.db.models.fields.DecimalField', [], {'default': '35.0', 'max_digits': '12', 'decimal_places': '2'}),
+ 'remplacement': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+ 'salaire': ('django.db.models.fields.DecimalField', [], {'default': 'None', 'null': 'True', 'max_digits': '12', 'decimal_places': '2'}),
+ 'salaire_anterieur': ('django.db.models.fields.DecimalField', [], {'default': 'None', 'null': 'True', 'max_digits': '12', 'decimal_places': '2', 'blank': 'True'}),
+ 'salaire_titulaire_anterieur': ('django.db.models.fields.DecimalField', [], {'default': 'None', 'null': 'True', 'max_digits': '12', 'decimal_places': '2', 'blank': 'True'}),
+ 'statut': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': "orm['rh_v1.Statut']"}),
+ 'statut_anterieur': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'blank': 'True', 'null': 'True', 'to': "orm['rh_v1.Statut']"}),
+ 'statut_residence': ('django.db.models.fields.CharField', [], {'default': "'local'", 'max_length': '10'}),
+ 'statut_titulaire_anterieur': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'blank': 'True', 'null': 'True', 'to': "orm['rh_v1.Statut']"}),
+ 'type_contrat': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': "orm['rh_v1.TypeContrat']"})
+ },
+ 'dae.dossiercomparaison': {
+ 'Meta': {'object_name': 'DossierComparaison'},
+ 'devise': ('django.db.models.fields.related.ForeignKey', [], {'default': '5', 'related_name': "'+'", 'blank': 'True', 'null': 'True', 'to': "orm['rh_v1.Devise']"}),
+ 'dossier': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'comparaisons'", 'to': "orm['dae.Dossier']"}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'implantation': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['datamaster_modeles.Implantation']", 'null': 'True', 'blank': 'True'}),
+ 'montant': ('django.db.models.fields.IntegerField', [], {'null': 'True'}),
+ 'personne': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+ 'poste': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'})
+ },
+ 'dae.dossierpiece': {
+ 'Meta': {'object_name': 'DossierPiece'},
+ 'dossier': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['dae.Dossier']"}),
+ 'fichier': ('django.db.models.fields.files.FileField', [], {'max_length': '100'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+ },
+ 'dae.employe': {
+ 'Meta': {'object_name': 'Employe'},
+ 'genre': ('django.db.models.fields.CharField', [], {'max_length': '1'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'id_rh': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'null': 'True', 'to': "orm['rh_v1.Employe']"}),
+ 'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+ 'prenom': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+ },
+ 'dae.poste': {
+ 'Meta': {'object_name': 'Poste'},
+ 'actif': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+ 'appel': ('django.db.models.fields.CharField', [], {'default': "'interne'", 'max_length': '10'}),
+ 'autre_max': ('django.db.models.fields.DecimalField', [], {'default': '0', 'max_digits': '12', 'decimal_places': '2'}),
+ 'autre_min': ('django.db.models.fields.DecimalField', [], {'default': '0', 'max_digits': '12', 'decimal_places': '2'}),
+ 'charges_patronales_max': ('django.db.models.fields.DecimalField', [], {'default': '0', 'max_digits': '12', 'decimal_places': '2'}),
+ 'charges_patronales_min': ('django.db.models.fields.DecimalField', [], {'default': '0', 'max_digits': '12', 'decimal_places': '2'}),
+ 'classement_max': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'blank': 'True', 'null': 'True', 'to': "orm['rh_v1.Classement']"}),
+ 'classement_min': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'blank': 'True', 'null': 'True', 'to': "orm['rh_v1.Classement']"}),
+ 'comp_autre_max': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '12', 'decimal_places': '2', 'blank': 'True'}),
+ 'comp_autre_min': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '12', 'decimal_places': '2', 'blank': 'True'}),
+ 'comp_fonctionpub_max': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '12', 'decimal_places': '2', 'blank': 'True'}),
+ 'comp_fonctionpub_min': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '12', 'decimal_places': '2', 'blank': 'True'}),
+ 'comp_locale_max': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '12', 'decimal_places': '2', 'blank': 'True'}),
+ 'comp_locale_min': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '12', 'decimal_places': '2', 'blank': 'True'}),
+ 'comp_ong_max': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '12', 'decimal_places': '2', 'blank': 'True'}),
+ 'comp_ong_min': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '12', 'decimal_places': '2', 'blank': 'True'}),
+ 'comp_universite_max': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '12', 'decimal_places': '2', 'blank': 'True'}),
+ 'comp_universite_min': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '12', 'decimal_places': '2', 'blank': 'True'}),
+ 'date_creation': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
+ 'date_debut': ('django.db.models.fields.DateField', [], {}),
+ 'date_fin': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'date_modification': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
+ 'devise_comparaison': ('django.db.models.fields.related.ForeignKey', [], {'default': '5', 'related_name': "'+'", 'to': "orm['rh_v1.Devise']"}),
+ 'devise_max': ('django.db.models.fields.related.ForeignKey', [], {'default': '5', 'related_name': "'+'", 'to': "orm['rh_v1.Devise']"}),
+ 'devise_min': ('django.db.models.fields.related.ForeignKey', [], {'default': '5', 'related_name': "'+'", 'to': "orm['rh_v1.Devise']"}),
+ 'etat': ('django.db.models.fields.CharField', [], {'default': 'None', 'max_length': '20', 'null': 'True', 'blank': 'True'}),
+ 'expatrie': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'id_rh': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'null': 'True', 'to': "orm['rh_v1.Poste']"}),
+ 'implantation': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['datamaster_modeles.Implantation']"}),
+ 'indemn_expat_max': ('django.db.models.fields.DecimalField', [], {'default': '0', 'max_digits': '12', 'decimal_places': '2'}),
+ 'indemn_expat_min': ('django.db.models.fields.DecimalField', [], {'default': '0', 'max_digits': '12', 'decimal_places': '2'}),
+ 'indemn_fct_max': ('django.db.models.fields.DecimalField', [], {'default': '0', 'max_digits': '12', 'decimal_places': '2'}),
+ 'indemn_fct_min': ('django.db.models.fields.DecimalField', [], {'default': '0', 'max_digits': '12', 'decimal_places': '2'}),
+ 'justification': ('django.db.models.fields.TextField', [], {}),
+ 'local': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+ 'mise_a_disposition': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+ 'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+ 'regime_travail': ('django.db.models.fields.DecimalField', [], {'default': '100.0', 'max_digits': '12', 'decimal_places': '2'}),
+ 'regime_travail_nb_heure_semaine': ('django.db.models.fields.DecimalField', [], {'default': '35.0', 'max_digits': '12', 'decimal_places': '2'}),
+ 'responsable': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': "orm['rh_v1.Poste']"}),
+ 'salaire_max': ('django.db.models.fields.DecimalField', [], {'default': '0', 'max_digits': '12', 'decimal_places': '2'}),
+ 'salaire_min': ('django.db.models.fields.DecimalField', [], {'default': '0', 'max_digits': '12', 'decimal_places': '2'}),
+ 'service': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': "orm['rh_v1.Service']"}),
+ 'type_intervention': ('django.db.models.fields.CharField', [], {'default': "'N'", 'max_length': '1'}),
+ 'type_poste': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'null': 'True', 'to': "orm['rh_v1.TypePoste']"}),
+ 'valeur_point_max': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'blank': 'True', 'null': 'True', 'to': "orm['rh_v1.ValeurPoint']"}),
+ 'valeur_point_min': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'blank': 'True', 'null': 'True', 'to': "orm['rh_v1.ValeurPoint']"})
+ },
+ 'dae.postecomparaison': {
+ 'Meta': {'object_name': 'PosteComparaison'},
+ 'devise': ('django.db.models.fields.related.ForeignKey', [], {'default': '5', 'related_name': "'+'", 'blank': 'True', 'null': 'True', 'to': "orm['rh_v1.Devise']"}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'implantation': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['datamaster_modeles.Implantation']", 'null': 'True', 'blank': 'True'}),
+ 'montant': ('django.db.models.fields.IntegerField', [], {'null': 'True'}),
+ 'nom': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+ 'poste': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'comparaisons_internes'", 'to': "orm['dae.Poste']"})
+ },
+ 'dae.postefinancement': {
+ 'Meta': {'object_name': 'PosteFinancement'},
+ 'commentaire': ('django.db.models.fields.TextField', [], {}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'poste': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'financements'", 'to': "orm['dae.Poste']"}),
+ 'pourcentage': ('django.db.models.fields.DecimalField', [], {'max_digits': '12', 'decimal_places': '2'}),
+ 'type': ('django.db.models.fields.CharField', [], {'max_length': '1'})
+ },
+ 'dae.postepiece': {
+ 'Meta': {'object_name': 'PostePiece'},
+ 'fichier': ('django.db.models.fields.files.FileField', [], {'max_length': '100'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+ 'poste': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['dae.Poste']"})
+ },
+ 'dae.remuneration': {
+ 'Meta': {'object_name': 'Remuneration'},
+ 'date_creation': ('django.db.models.fields.DateField', [], {'auto_now_add': 'True', 'blank': 'True'}),
+ 'devise': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to_field': "'code'", 'db_column': "'devise'", 'to': "orm['rh_v1.Devise']"}),
+ 'dossier': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['dae.Dossier']", 'db_column': "'dossier'"}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'montant': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '12', 'decimal_places': '2'}),
+ 'precision': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+ 'type': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'db_column': "'type'", 'to': "orm['rh_v1.TypeRemuneration']"}),
+ 'user_creation': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'})
+ },
+ 'datamaster_modeles.bureau': {
+ 'Meta': {'object_name': 'Bureau', 'db_table': "u'ref_bureau'"},
+ 'actif': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+ 'code': ('django.db.models.fields.CharField', [], {'max_length': '255', 'unique': 'True'}),
+ 'id': ('django.db.models.fields.IntegerField', [], {'primary_key': 'True'}),
+ 'implantation': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['datamaster_modeles.Implantation']", 'db_column': "'implantation'"}),
+ 'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+ 'nom_court': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+ 'nom_long': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+ 'region': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['datamaster_modeles.Region']", 'db_column': "'region'"})
+ },
+ 'datamaster_modeles.implantation': {
+ 'Meta': {'object_name': 'Implantation', 'db_table': "u'ref_implantation'"},
+ 'actif': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+ 'adresse_physique_bureau': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+ 'adresse_physique_code_postal': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
+ 'adresse_physique_code_postal_avant_ville': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}),
+ 'adresse_physique_no': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
+ 'adresse_physique_pays': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'impl_adresse_physique'", 'to_field': "'code'", 'db_column': "'adresse_physique_pays'", 'to': "orm['datamaster_modeles.Pays']"}),
+ 'adresse_physique_precision': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+ 'adresse_physique_precision_avant': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+ 'adresse_physique_region': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+ 'adresse_physique_rue': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+ 'adresse_physique_ville': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+ 'adresse_postale_boite_postale': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+ 'adresse_postale_bureau': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+ 'adresse_postale_code_postal': ('django.db.models.fields.CharField', [], {'max_length': '20', 'null': 'True', 'blank': 'True'}),
+ 'adresse_postale_code_postal_avant_ville': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}),
+ 'adresse_postale_no': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}),
+ 'adresse_postale_pays': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'impl_adresse_postale'", 'to_field': "'code'", 'db_column': "'adresse_postale_pays'", 'to': "orm['datamaster_modeles.Pays']"}),
+ 'adresse_postale_precision': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+ 'adresse_postale_precision_avant': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+ 'adresse_postale_region': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+ 'adresse_postale_rue': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+ 'adresse_postale_ville': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+ 'bureau_rattachement': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['datamaster_modeles.Implantation']", 'db_column': "'bureau_rattachement'"}),
+ 'code': ('django.db.models.fields.CharField', [], {'max_length': '255', 'unique': 'True'}),
+ 'code_meteo': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+ 'commentaire': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+ 'courriel': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
+ 'courriel_interne': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
+ 'date_extension': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'date_fermeture': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'date_inauguration': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'date_ouverture': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'fax': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+ 'fax_interne': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+ 'fuseau_horaire': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+ 'hebergement_convention': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}),
+ 'hebergement_convention_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'hebergement_etablissement': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.IntegerField', [], {'primary_key': 'True'}),
+ 'modif_date': ('django.db.models.fields.DateField', [], {}),
+ 'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+ 'nom_court': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+ 'nom_long': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+ 'region': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['datamaster_modeles.Region']", 'db_column': "'region'"}),
+ 'remarque': ('django.db.models.fields.TextField', [], {}),
+ 'responsable_implantation': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'statut': ('django.db.models.fields.IntegerField', [], {}),
+ 'telephone': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+ 'telephone_interne': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+ 'type': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+ 'url': ('django.db.models.fields.URLField', [], {'max_length': '255', 'blank': 'True'})
+ },
+ 'datamaster_modeles.pays': {
+ 'Meta': {'object_name': 'Pays', 'db_table': "u'ref_pays'"},
+ 'actif': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+ 'code': ('django.db.models.fields.CharField', [], {'max_length': '2', 'unique': 'True'}),
+ 'code_bureau': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['datamaster_modeles.Bureau']", 'to_field': "'code'", 'db_column': "'code_bureau'"}),
+ 'code_iso3': ('django.db.models.fields.CharField', [], {'max_length': '3', 'unique': 'True', 'blank': 'True'}),
+ 'developpement': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.IntegerField', [], {'primary_key': 'True'}),
+ 'monnaie': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+ 'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+ 'nord_sud': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+ 'region': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['datamaster_modeles.Region']", 'db_column': "'region'"})
+ },
+ 'datamaster_modeles.region': {
+ 'Meta': {'object_name': 'Region', 'db_table': "u'ref_region'"},
+ 'actif': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+ 'code': ('django.db.models.fields.CharField', [], {'max_length': '255', 'unique': 'True'}),
+ 'id': ('django.db.models.fields.IntegerField', [], {'primary_key': 'True'}),
+ 'implantation_bureau': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'gere_region'", 'db_column': "'implantation_bureau'", 'to': "orm['datamaster_modeles.Implantation']"}),
+ 'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+ },
+ 'rh_v1.classement': {
+ 'Meta': {'object_name': 'Classement'},
+ 'actif': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+ 'coefficient': ('django.db.models.fields.FloatField', [], {}),
+ 'commentaire': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'date_modification': ('django.db.models.fields.DateField', [], {'auto_now': 'True', 'blank': 'True'}),
+ 'degre': ('django.db.models.fields.IntegerField', [], {}),
+ 'echelon': ('django.db.models.fields.IntegerField', [], {}),
+ 'id': ('django.db.models.fields.IntegerField', [], {'primary_key': 'True'}),
+ 'type': ('django.db.models.fields.CharField', [], {'max_length': '10'})
+ },
+ 'rh_v1.devise': {
+ 'Meta': {'object_name': 'Devise'},
+ 'code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'unique': 'True'}),
+ 'id': ('django.db.models.fields.IntegerField', [], {'primary_key': 'True'}),
+ 'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+ },
+ 'rh_v1.employe': {
+ 'Meta': {'object_name': 'Employe'},
+ 'adresse': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+ 'code_postal': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+ 'commentaire': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'date_creation': ('django.db.models.fields.DateField', [], {'auto_now_add': 'True', 'blank': 'True'}),
+ 'date_entree': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'date_maj': ('django.db.models.fields.DateField', [], {'auto_now': 'True', 'blank': 'True'}),
+ 'date_naissance': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'genre': ('django.db.models.fields.CharField', [], {'max_length': '1', 'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.IntegerField', [], {'primary_key': 'True'}),
+ 'nationalite': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'nationalite'", 'to_field': "'code'", 'db_column': "'nationalite'", 'to': "orm['datamaster_modeles.Pays']"}),
+ 'no_rue': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+ 'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+ 'pays': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'pays'", 'db_column': "'pays'", 'to_field': "'code'", 'to': "orm['datamaster_modeles.Pays']", 'blank': 'True', 'null': 'True'}),
+ 'prenom': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+ 'province': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+ 'situation_famille': ('django.db.models.fields.CharField', [], {'max_length': '1', 'null': 'True', 'blank': 'True'}),
+ 'tel_cellulaire': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+ 'tel_domicile': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+ 'ville': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'})
+ },
+ 'rh_v1.familleemploi': {
+ 'Meta': {'object_name': 'FamilleEmploi'},
+ 'actif': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.IntegerField', [], {'primary_key': 'True'}),
+ 'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+ },
+ 'rh_v1.organismebstg': {
+ 'Meta': {'object_name': 'OrganismeBstg'},
+ 'actif': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.IntegerField', [], {'primary_key': 'True'}),
+ 'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+ 'type': ('django.db.models.fields.CharField', [], {'max_length': '10'})
+ },
+ 'rh_v1.poste': {
+ 'Meta': {'object_name': 'Poste'},
+ 'actif': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+ 'date_modification': ('django.db.models.fields.DateField', [], {'auto_now': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.IntegerField', [], {'primary_key': 'True'}),
+ 'implantation': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'db_column': "'implantation'", 'to': "orm['datamaster_modeles.Implantation']"}),
+ 'proportion': ('django.db.models.fields.CharField', [], {'max_length': '10'}),
+ 'type_poste': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['rh_v1.TypePoste']", 'db_column': "'type_poste'"})
+ },
+ 'rh_v1.service': {
+ 'Meta': {'object_name': 'Service'},
+ 'actif': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.IntegerField', [], {'primary_key': 'True'}),
+ 'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+ },
+ 'rh_v1.statut': {
+ 'Meta': {'object_name': 'Statut'},
+ 'actif': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+ 'code': ('django.db.models.fields.CharField', [], {'max_length': '25', 'unique': 'True'}),
+ 'id': ('django.db.models.fields.IntegerField', [], {'primary_key': 'True'}),
+ 'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+ 'type_contrat_categorie': ('django.db.models.fields.CharField', [], {'max_length': '10'})
+ },
+ 'rh_v1.typecontrat': {
+ 'Meta': {'object_name': 'TypeContrat'},
+ 'actif': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+ 'categorie': ('django.db.models.fields.CharField', [], {'max_length': '10'}),
+ 'id': ('django.db.models.fields.IntegerField', [], {'primary_key': 'True'}),
+ 'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+ 'nom_long': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+ },
+ 'rh_v1.typeposte': {
+ 'Meta': {'object_name': 'TypePoste'},
+ 'actif': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+ 'date_modification': ('django.db.models.fields.DateField', [], {'auto_now': 'True', 'blank': 'True'}),
+ 'description': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+ 'famille_emploi': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['rh_v1.FamilleEmploi']", 'db_column': "'famille_emploi'"}),
+ 'id': ('django.db.models.fields.IntegerField', [], {'primary_key': 'True'}),
+ 'is_responsable': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+ 'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+ 'nom_feminin': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+ },
+ 'rh_v1.typeremuneration': {
+ 'Meta': {'object_name': 'TypeRemuneration'},
+ 'actif': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.IntegerField', [], {'primary_key': 'True'}),
+ 'nature_remuneration': ('django.db.models.fields.CharField', [], {'max_length': '30'}),
+ 'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+ 'type_paiement': ('django.db.models.fields.CharField', [], {'max_length': '30'})
+ },
+ 'rh_v1.valeurpoint': {
+ 'Meta': {'object_name': 'ValeurPoint'},
+ 'annee': ('django.db.models.fields.IntegerField', [], {}),
+ 'id': ('django.db.models.fields.IntegerField', [], {'primary_key': 'True'}),
+ 'implantation': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'valeurs_point'", 'db_column': "'implantation'", 'to': "orm['datamaster_modeles.Implantation']"}),
+ 'valeur': ('django.db.models.fields.FloatField', [], {})
+ },
+ 'workflow.workflowcommentaire': {
+ 'Meta': {'object_name': 'WorkflowCommentaire'},
+ 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+ 'date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
+ 'etat_final': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+ 'etat_initial': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),
+ 'owner': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}),
+ 'texte': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'})
+ }
+ }
+
+ complete_apps = ['dae']
--- /dev/null
+# encoding: utf-8
+import datetime
+from south.db import db
+from south.v2 import SchemaMigration
+from django.db import models
+
+class Migration(SchemaMigration):
+
+ def forwards(self, orm):
+
+ # Adding field 'DossierComparaison.classement'
+ db.add_column('dae_dossiercomparaison', 'classement', self.gf('django.db.models.fields.related.ForeignKey')(related_name='+', blank=True, null=True, to=orm['rh_v1.Classement']), keep_default=False)
+
+ # Adding field 'DossierComparaison.statut'
+ db.add_column('dae_dossiercomparaison', 'statut', self.gf('django.db.models.fields.related.ForeignKey')(related_name='+', blank=True, null=True, to=orm['rh_v1.Statut']), keep_default=False)
+
+
+ def backwards(self, orm):
+
+ # Deleting field 'DossierComparaison.classement'
+ db.delete_column('dae_dossiercomparaison', 'classement_id')
+
+ # Deleting field 'DossierComparaison.statut'
+ db.delete_column('dae_dossiercomparaison', 'statut_id')
+
+
+ models = {
+ 'auth.group': {
+ 'Meta': {'object_name': 'Group'},
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '80', 'unique': 'True'}),
+ 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'})
+ },
+ 'auth.permission': {
+ 'Meta': {'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},
+ 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
+ },
+ 'auth.user': {
+ 'Meta': {'object_name': 'User'},
+ 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+ 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
+ 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
+ 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+ 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+ 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+ 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+ 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
+ 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
+ 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}),
+ 'username': ('django.db.models.fields.CharField', [], {'max_length': '30', 'unique': 'True'})
+ },
+ 'contenttypes.contenttype': {
+ 'Meta': {'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},
+ 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
+ },
+ 'dae.dossier': {
+ 'Meta': {'object_name': 'Dossier'},
+ 'classement': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'blank': 'True', 'null': 'True', 'to': "orm['rh_v1.Classement']"}),
+ 'classement_anterieur': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'blank': 'True', 'null': 'True', 'to': "orm['rh_v1.Classement']"}),
+ 'classement_titulaire_anterieur': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'blank': 'True', 'null': 'True', 'to': "orm['rh_v1.Classement']"}),
+ 'compte_compta': ('django.db.models.fields.CharField', [], {'default': "'aucun'", 'max_length': '10'}),
+ 'compte_courriel': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+ 'contrat_date_debut': ('django.db.models.fields.DateField', [], {}),
+ 'contrat_date_fin': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'date_creation': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
+ 'devise': ('django.db.models.fields.related.ForeignKey', [], {'default': '5', 'related_name': "'+'", 'to': "orm['rh_v1.Devise']"}),
+ 'employe': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': "orm['dae.Employe']"}),
+ 'employe_anterieur': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'blank': 'True', 'null': 'True', 'to': "orm['rh_v1.Employe']"}),
+ 'etat': ('django.db.models.fields.CharField', [], {'default': 'None', 'max_length': '20', 'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'justif_nouveau_commentaire': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'justif_nouveau_salaire': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'justif_nouveau_statut': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'justif_nouveau_tmp_remplacement': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'justif_rempl_commentaire': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'justif_rempl_evaluation': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'justif_rempl_salaire': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'justif_rempl_statut_employe': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'justif_rempl_type_contrat': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'organisme_bstg': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'blank': 'True', 'null': 'True', 'to': "orm['rh_v1.OrganismeBstg']"}),
+ 'organisme_bstg_autre': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+ 'poste': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'dossiers'", 'to': "orm['dae.Poste']"}),
+ 'regime_travail': ('django.db.models.fields.DecimalField', [], {'default': '100.0', 'max_digits': '12', 'decimal_places': '2'}),
+ 'regime_travail_nb_heure_semaine': ('django.db.models.fields.DecimalField', [], {'default': '35.0', 'max_digits': '12', 'decimal_places': '2'}),
+ 'remplacement': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+ 'salaire': ('django.db.models.fields.DecimalField', [], {'default': 'None', 'null': 'True', 'max_digits': '12', 'decimal_places': '2'}),
+ 'salaire_anterieur': ('django.db.models.fields.DecimalField', [], {'default': 'None', 'null': 'True', 'max_digits': '12', 'decimal_places': '2', 'blank': 'True'}),
+ 'salaire_titulaire_anterieur': ('django.db.models.fields.DecimalField', [], {'default': 'None', 'null': 'True', 'max_digits': '12', 'decimal_places': '2', 'blank': 'True'}),
+ 'statut': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': "orm['rh_v1.Statut']"}),
+ 'statut_anterieur': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'blank': 'True', 'null': 'True', 'to': "orm['rh_v1.Statut']"}),
+ 'statut_residence': ('django.db.models.fields.CharField', [], {'default': "'local'", 'max_length': '10'}),
+ 'statut_titulaire_anterieur': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'blank': 'True', 'null': 'True', 'to': "orm['rh_v1.Statut']"}),
+ 'type_contrat': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': "orm['rh_v1.TypeContrat']"})
+ },
+ 'dae.dossiercomparaison': {
+ 'Meta': {'object_name': 'DossierComparaison'},
+ 'classement': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'blank': 'True', 'null': 'True', 'to': "orm['rh_v1.Classement']"}),
+ 'devise': ('django.db.models.fields.related.ForeignKey', [], {'default': '5', 'related_name': "'+'", 'blank': 'True', 'null': 'True', 'to': "orm['rh_v1.Devise']"}),
+ 'dossier': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'comparaisons'", 'to': "orm['dae.Dossier']"}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'implantation': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['datamaster_modeles.Implantation']", 'null': 'True', 'blank': 'True'}),
+ 'montant': ('django.db.models.fields.IntegerField', [], {'null': 'True'}),
+ 'personne': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+ 'poste': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+ 'statut': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'blank': 'True', 'null': 'True', 'to': "orm['rh_v1.Statut']"})
+ },
+ 'dae.dossierpiece': {
+ 'Meta': {'object_name': 'DossierPiece'},
+ 'dossier': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['dae.Dossier']"}),
+ 'fichier': ('django.db.models.fields.files.FileField', [], {'max_length': '100'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+ },
+ 'dae.employe': {
+ 'Meta': {'object_name': 'Employe'},
+ 'genre': ('django.db.models.fields.CharField', [], {'max_length': '1'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'id_rh': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'null': 'True', 'to': "orm['rh_v1.Employe']"}),
+ 'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+ 'prenom': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+ },
+ 'dae.poste': {
+ 'Meta': {'object_name': 'Poste'},
+ 'actif': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+ 'appel': ('django.db.models.fields.CharField', [], {'default': "'interne'", 'max_length': '10'}),
+ 'autre_max': ('django.db.models.fields.DecimalField', [], {'default': '0', 'max_digits': '12', 'decimal_places': '2'}),
+ 'autre_min': ('django.db.models.fields.DecimalField', [], {'default': '0', 'max_digits': '12', 'decimal_places': '2'}),
+ 'charges_patronales_max': ('django.db.models.fields.DecimalField', [], {'default': '0', 'max_digits': '12', 'decimal_places': '2'}),
+ 'charges_patronales_min': ('django.db.models.fields.DecimalField', [], {'default': '0', 'max_digits': '12', 'decimal_places': '2'}),
+ 'classement_max': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'blank': 'True', 'null': 'True', 'to': "orm['rh_v1.Classement']"}),
+ 'classement_min': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'blank': 'True', 'null': 'True', 'to': "orm['rh_v1.Classement']"}),
+ 'comp_autre_max': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '12', 'decimal_places': '2', 'blank': 'True'}),
+ 'comp_autre_min': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '12', 'decimal_places': '2', 'blank': 'True'}),
+ 'comp_fonctionpub_max': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '12', 'decimal_places': '2', 'blank': 'True'}),
+ 'comp_fonctionpub_min': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '12', 'decimal_places': '2', 'blank': 'True'}),
+ 'comp_locale_max': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '12', 'decimal_places': '2', 'blank': 'True'}),
+ 'comp_locale_min': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '12', 'decimal_places': '2', 'blank': 'True'}),
+ 'comp_ong_max': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '12', 'decimal_places': '2', 'blank': 'True'}),
+ 'comp_ong_min': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '12', 'decimal_places': '2', 'blank': 'True'}),
+ 'comp_universite_max': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '12', 'decimal_places': '2', 'blank': 'True'}),
+ 'comp_universite_min': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '12', 'decimal_places': '2', 'blank': 'True'}),
+ 'date_creation': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
+ 'date_debut': ('django.db.models.fields.DateField', [], {}),
+ 'date_fin': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'date_modification': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
+ 'devise_comparaison': ('django.db.models.fields.related.ForeignKey', [], {'default': '5', 'related_name': "'+'", 'to': "orm['rh_v1.Devise']"}),
+ 'devise_max': ('django.db.models.fields.related.ForeignKey', [], {'default': '5', 'related_name': "'+'", 'to': "orm['rh_v1.Devise']"}),
+ 'devise_min': ('django.db.models.fields.related.ForeignKey', [], {'default': '5', 'related_name': "'+'", 'to': "orm['rh_v1.Devise']"}),
+ 'etat': ('django.db.models.fields.CharField', [], {'default': 'None', 'max_length': '20', 'null': 'True', 'blank': 'True'}),
+ 'expatrie': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'id_rh': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'null': 'True', 'to': "orm['rh_v1.Poste']"}),
+ 'implantation': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['datamaster_modeles.Implantation']"}),
+ 'indemn_expat_max': ('django.db.models.fields.DecimalField', [], {'default': '0', 'max_digits': '12', 'decimal_places': '2'}),
+ 'indemn_expat_min': ('django.db.models.fields.DecimalField', [], {'default': '0', 'max_digits': '12', 'decimal_places': '2'}),
+ 'indemn_fct_max': ('django.db.models.fields.DecimalField', [], {'default': '0', 'max_digits': '12', 'decimal_places': '2'}),
+ 'indemn_fct_min': ('django.db.models.fields.DecimalField', [], {'default': '0', 'max_digits': '12', 'decimal_places': '2'}),
+ 'justification': ('django.db.models.fields.TextField', [], {}),
+ 'local': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+ 'mise_a_disposition': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+ 'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+ 'regime_travail': ('django.db.models.fields.DecimalField', [], {'default': '100.0', 'max_digits': '12', 'decimal_places': '2'}),
+ 'regime_travail_nb_heure_semaine': ('django.db.models.fields.DecimalField', [], {'default': '35.0', 'max_digits': '12', 'decimal_places': '2'}),
+ 'responsable': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': "orm['rh_v1.Poste']"}),
+ 'salaire_max': ('django.db.models.fields.DecimalField', [], {'default': '0', 'max_digits': '12', 'decimal_places': '2'}),
+ 'salaire_min': ('django.db.models.fields.DecimalField', [], {'default': '0', 'max_digits': '12', 'decimal_places': '2'}),
+ 'service': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': "orm['rh_v1.Service']"}),
+ 'type_intervention': ('django.db.models.fields.CharField', [], {'default': "'N'", 'max_length': '1'}),
+ 'type_poste': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'null': 'True', 'to': "orm['rh_v1.TypePoste']"}),
+ 'valeur_point_max': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'blank': 'True', 'null': 'True', 'to': "orm['rh_v1.ValeurPoint']"}),
+ 'valeur_point_min': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'blank': 'True', 'null': 'True', 'to': "orm['rh_v1.ValeurPoint']"})
+ },
+ 'dae.postecomparaison': {
+ 'Meta': {'object_name': 'PosteComparaison'},
+ 'devise': ('django.db.models.fields.related.ForeignKey', [], {'default': '5', 'related_name': "'+'", 'blank': 'True', 'null': 'True', 'to': "orm['rh_v1.Devise']"}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'implantation': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['datamaster_modeles.Implantation']", 'null': 'True', 'blank': 'True'}),
+ 'montant': ('django.db.models.fields.IntegerField', [], {'null': 'True'}),
+ 'nom': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+ 'poste': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'comparaisons_internes'", 'to': "orm['dae.Poste']"})
+ },
+ 'dae.postefinancement': {
+ 'Meta': {'object_name': 'PosteFinancement'},
+ 'commentaire': ('django.db.models.fields.TextField', [], {}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'poste': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'financements'", 'to': "orm['dae.Poste']"}),
+ 'pourcentage': ('django.db.models.fields.DecimalField', [], {'max_digits': '12', 'decimal_places': '2'}),
+ 'type': ('django.db.models.fields.CharField', [], {'max_length': '1'})
+ },
+ 'dae.postepiece': {
+ 'Meta': {'object_name': 'PostePiece'},
+ 'fichier': ('django.db.models.fields.files.FileField', [], {'max_length': '100'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+ 'poste': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['dae.Poste']"})
+ },
+ 'dae.remuneration': {
+ 'Meta': {'object_name': 'Remuneration'},
+ 'date_creation': ('django.db.models.fields.DateField', [], {'auto_now_add': 'True', 'blank': 'True'}),
+ 'devise': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to_field': "'code'", 'db_column': "'devise'", 'to': "orm['rh_v1.Devise']"}),
+ 'dossier': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['dae.Dossier']", 'db_column': "'dossier'"}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'montant': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '12', 'decimal_places': '2'}),
+ 'precision': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+ 'type': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'db_column': "'type'", 'to': "orm['rh_v1.TypeRemuneration']"}),
+ 'user_creation': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'})
+ },
+ 'datamaster_modeles.bureau': {
+ 'Meta': {'object_name': 'Bureau', 'db_table': "u'ref_bureau'"},
+ 'actif': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+ 'code': ('django.db.models.fields.CharField', [], {'max_length': '255', 'unique': 'True'}),
+ 'id': ('django.db.models.fields.IntegerField', [], {'primary_key': 'True'}),
+ 'implantation': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['datamaster_modeles.Implantation']", 'db_column': "'implantation'"}),
+ 'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+ 'nom_court': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+ 'nom_long': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+ 'region': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['datamaster_modeles.Region']", 'db_column': "'region'"})
+ },
+ 'datamaster_modeles.implantation': {
+ 'Meta': {'object_name': 'Implantation', 'db_table': "u'ref_implantation'"},
+ 'actif': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+ 'adresse_physique_bureau': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+ 'adresse_physique_code_postal': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
+ 'adresse_physique_code_postal_avant_ville': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}),
+ 'adresse_physique_no': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
+ 'adresse_physique_pays': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'impl_adresse_physique'", 'to_field': "'code'", 'db_column': "'adresse_physique_pays'", 'to': "orm['datamaster_modeles.Pays']"}),
+ 'adresse_physique_precision': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+ 'adresse_physique_precision_avant': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+ 'adresse_physique_region': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+ 'adresse_physique_rue': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+ 'adresse_physique_ville': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+ 'adresse_postale_boite_postale': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+ 'adresse_postale_bureau': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+ 'adresse_postale_code_postal': ('django.db.models.fields.CharField', [], {'max_length': '20', 'null': 'True', 'blank': 'True'}),
+ 'adresse_postale_code_postal_avant_ville': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}),
+ 'adresse_postale_no': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}),
+ 'adresse_postale_pays': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'impl_adresse_postale'", 'to_field': "'code'", 'db_column': "'adresse_postale_pays'", 'to': "orm['datamaster_modeles.Pays']"}),
+ 'adresse_postale_precision': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+ 'adresse_postale_precision_avant': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+ 'adresse_postale_region': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+ 'adresse_postale_rue': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+ 'adresse_postale_ville': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+ 'bureau_rattachement': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['datamaster_modeles.Implantation']", 'db_column': "'bureau_rattachement'"}),
+ 'code': ('django.db.models.fields.CharField', [], {'max_length': '255', 'unique': 'True'}),
+ 'code_meteo': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+ 'commentaire': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+ 'courriel': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
+ 'courriel_interne': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
+ 'date_extension': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'date_fermeture': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'date_inauguration': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'date_ouverture': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'fax': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+ 'fax_interne': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+ 'fuseau_horaire': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+ 'hebergement_convention': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}),
+ 'hebergement_convention_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'hebergement_etablissement': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.IntegerField', [], {'primary_key': 'True'}),
+ 'modif_date': ('django.db.models.fields.DateField', [], {}),
+ 'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+ 'nom_court': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+ 'nom_long': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+ 'region': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['datamaster_modeles.Region']", 'db_column': "'region'"}),
+ 'remarque': ('django.db.models.fields.TextField', [], {}),
+ 'responsable_implantation': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'statut': ('django.db.models.fields.IntegerField', [], {}),
+ 'telephone': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+ 'telephone_interne': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+ 'type': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+ 'url': ('django.db.models.fields.URLField', [], {'max_length': '255', 'blank': 'True'})
+ },
+ 'datamaster_modeles.pays': {
+ 'Meta': {'object_name': 'Pays', 'db_table': "u'ref_pays'"},
+ 'actif': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+ 'code': ('django.db.models.fields.CharField', [], {'max_length': '2', 'unique': 'True'}),
+ 'code_bureau': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['datamaster_modeles.Bureau']", 'to_field': "'code'", 'db_column': "'code_bureau'"}),
+ 'code_iso3': ('django.db.models.fields.CharField', [], {'max_length': '3', 'unique': 'True', 'blank': 'True'}),
+ 'developpement': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.IntegerField', [], {'primary_key': 'True'}),
+ 'monnaie': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+ 'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+ 'nord_sud': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+ 'region': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['datamaster_modeles.Region']", 'db_column': "'region'"})
+ },
+ 'datamaster_modeles.region': {
+ 'Meta': {'object_name': 'Region', 'db_table': "u'ref_region'"},
+ 'actif': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+ 'code': ('django.db.models.fields.CharField', [], {'max_length': '255', 'unique': 'True'}),
+ 'id': ('django.db.models.fields.IntegerField', [], {'primary_key': 'True'}),
+ 'implantation_bureau': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'gere_region'", 'db_column': "'implantation_bureau'", 'to': "orm['datamaster_modeles.Implantation']"}),
+ 'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+ },
+ 'rh_v1.classement': {
+ 'Meta': {'object_name': 'Classement'},
+ 'actif': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+ 'coefficient': ('django.db.models.fields.FloatField', [], {}),
+ 'commentaire': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'date_modification': ('django.db.models.fields.DateField', [], {'auto_now': 'True', 'blank': 'True'}),
+ 'degre': ('django.db.models.fields.IntegerField', [], {}),
+ 'echelon': ('django.db.models.fields.IntegerField', [], {}),
+ 'id': ('django.db.models.fields.IntegerField', [], {'primary_key': 'True'}),
+ 'type': ('django.db.models.fields.CharField', [], {'max_length': '10'})
+ },
+ 'rh_v1.devise': {
+ 'Meta': {'object_name': 'Devise'},
+ 'code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'unique': 'True'}),
+ 'id': ('django.db.models.fields.IntegerField', [], {'primary_key': 'True'}),
+ 'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+ },
+ 'rh_v1.employe': {
+ 'Meta': {'object_name': 'Employe'},
+ 'adresse': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+ 'code_postal': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+ 'commentaire': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'date_creation': ('django.db.models.fields.DateField', [], {'auto_now_add': 'True', 'blank': 'True'}),
+ 'date_entree': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'date_maj': ('django.db.models.fields.DateField', [], {'auto_now': 'True', 'blank': 'True'}),
+ 'date_naissance': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'genre': ('django.db.models.fields.CharField', [], {'max_length': '1', 'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.IntegerField', [], {'primary_key': 'True'}),
+ 'nationalite': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'nationalite'", 'to_field': "'code'", 'db_column': "'nationalite'", 'to': "orm['datamaster_modeles.Pays']"}),
+ 'no_rue': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+ 'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+ 'pays': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'pays'", 'db_column': "'pays'", 'to_field': "'code'", 'to': "orm['datamaster_modeles.Pays']", 'blank': 'True', 'null': 'True'}),
+ 'prenom': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+ 'province': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+ 'situation_famille': ('django.db.models.fields.CharField', [], {'max_length': '1', 'null': 'True', 'blank': 'True'}),
+ 'tel_cellulaire': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+ 'tel_domicile': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+ 'ville': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'})
+ },
+ 'rh_v1.familleemploi': {
+ 'Meta': {'object_name': 'FamilleEmploi'},
+ 'actif': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.IntegerField', [], {'primary_key': 'True'}),
+ 'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+ },
+ 'rh_v1.organismebstg': {
+ 'Meta': {'object_name': 'OrganismeBstg'},
+ 'actif': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.IntegerField', [], {'primary_key': 'True'}),
+ 'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+ 'type': ('django.db.models.fields.CharField', [], {'max_length': '10'})
+ },
+ 'rh_v1.poste': {
+ 'Meta': {'object_name': 'Poste'},
+ 'actif': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+ 'date_modification': ('django.db.models.fields.DateField', [], {'auto_now': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.IntegerField', [], {'primary_key': 'True'}),
+ 'implantation': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'db_column': "'implantation'", 'to': "orm['datamaster_modeles.Implantation']"}),
+ 'proportion': ('django.db.models.fields.CharField', [], {'max_length': '10'}),
+ 'type_poste': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['rh_v1.TypePoste']", 'db_column': "'type_poste'"})
+ },
+ 'rh_v1.service': {
+ 'Meta': {'object_name': 'Service'},
+ 'actif': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.IntegerField', [], {'primary_key': 'True'}),
+ 'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+ },
+ 'rh_v1.statut': {
+ 'Meta': {'object_name': 'Statut'},
+ 'actif': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+ 'code': ('django.db.models.fields.CharField', [], {'max_length': '25', 'unique': 'True'}),
+ 'id': ('django.db.models.fields.IntegerField', [], {'primary_key': 'True'}),
+ 'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+ 'type_contrat_categorie': ('django.db.models.fields.CharField', [], {'max_length': '10'})
+ },
+ 'rh_v1.typecontrat': {
+ 'Meta': {'object_name': 'TypeContrat'},
+ 'actif': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+ 'categorie': ('django.db.models.fields.CharField', [], {'max_length': '10'}),
+ 'id': ('django.db.models.fields.IntegerField', [], {'primary_key': 'True'}),
+ 'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+ 'nom_long': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+ },
+ 'rh_v1.typeposte': {
+ 'Meta': {'object_name': 'TypePoste'},
+ 'actif': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+ 'date_modification': ('django.db.models.fields.DateField', [], {'auto_now': 'True', 'blank': 'True'}),
+ 'description': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+ 'famille_emploi': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['rh_v1.FamilleEmploi']", 'db_column': "'famille_emploi'"}),
+ 'id': ('django.db.models.fields.IntegerField', [], {'primary_key': 'True'}),
+ 'is_responsable': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+ 'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+ 'nom_feminin': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+ },
+ 'rh_v1.typeremuneration': {
+ 'Meta': {'object_name': 'TypeRemuneration'},
+ 'actif': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.IntegerField', [], {'primary_key': 'True'}),
+ 'nature_remuneration': ('django.db.models.fields.CharField', [], {'max_length': '30'}),
+ 'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+ 'type_paiement': ('django.db.models.fields.CharField', [], {'max_length': '30'})
+ },
+ 'rh_v1.valeurpoint': {
+ 'Meta': {'object_name': 'ValeurPoint'},
+ 'annee': ('django.db.models.fields.IntegerField', [], {}),
+ 'id': ('django.db.models.fields.IntegerField', [], {'primary_key': 'True'}),
+ 'implantation': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'valeurs_point'", 'db_column': "'implantation'", 'to': "orm['datamaster_modeles.Implantation']"}),
+ 'valeur': ('django.db.models.fields.FloatField', [], {})
+ },
+ 'workflow.workflowcommentaire': {
+ 'Meta': {'object_name': 'WorkflowCommentaire'},
+ 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+ 'date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
+ 'etat_final': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+ 'etat_initial': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),
+ 'owner': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}),
+ 'texte': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'})
+ }
+ }
+
+ complete_apps = ['dae']
--- /dev/null
+# encoding: utf-8
+import datetime
+from south.db import db
+from south.v2 import SchemaMigration
+from django.db import models
+
+class Migration(SchemaMigration):
+
+ def forwards(self, orm):
+
+ # Adding field 'PosteComparaison.classement'
+ db.add_column('dae_postecomparaison', 'classement', self.gf('django.db.models.fields.related.ForeignKey')(related_name='+', blank=True, null=True, to=orm['rh_v1.Classement']), keep_default=False)
+
+ # Adding field 'PosteComparaison.statut'
+ db.add_column('dae_postecomparaison', 'statut', self.gf('django.db.models.fields.related.ForeignKey')(related_name='+', blank=True, null=True, to=orm['rh_v1.Statut']), keep_default=False)
+
+
+ def backwards(self, orm):
+
+ # Deleting field 'PosteComparaison.classement'
+ db.delete_column('dae_postecomparaison', 'classement_id')
+
+ # Deleting field 'PosteComparaison.statut'
+ db.delete_column('dae_postecomparaison', 'statut_id')
+
+
+ models = {
+ 'auth.group': {
+ 'Meta': {'object_name': 'Group'},
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '80', 'unique': 'True'}),
+ 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'})
+ },
+ 'auth.permission': {
+ 'Meta': {'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},
+ 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
+ },
+ 'auth.user': {
+ 'Meta': {'object_name': 'User'},
+ 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+ 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
+ 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
+ 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+ 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+ 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+ 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+ 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
+ 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
+ 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}),
+ 'username': ('django.db.models.fields.CharField', [], {'max_length': '30', 'unique': 'True'})
+ },
+ 'contenttypes.contenttype': {
+ 'Meta': {'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},
+ 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
+ },
+ 'dae.dossier': {
+ 'Meta': {'object_name': 'Dossier'},
+ 'classement': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'blank': 'True', 'null': 'True', 'to': "orm['rh_v1.Classement']"}),
+ 'classement_anterieur': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'blank': 'True', 'null': 'True', 'to': "orm['rh_v1.Classement']"}),
+ 'classement_titulaire_anterieur': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'blank': 'True', 'null': 'True', 'to': "orm['rh_v1.Classement']"}),
+ 'compte_compta': ('django.db.models.fields.CharField', [], {'default': "'aucun'", 'max_length': '10'}),
+ 'compte_courriel': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+ 'contrat_date_debut': ('django.db.models.fields.DateField', [], {}),
+ 'contrat_date_fin': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'date_creation': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
+ 'devise': ('django.db.models.fields.related.ForeignKey', [], {'default': '5', 'related_name': "'+'", 'to': "orm['rh_v1.Devise']"}),
+ 'employe': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': "orm['dae.Employe']"}),
+ 'employe_anterieur': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'blank': 'True', 'null': 'True', 'to': "orm['rh_v1.Employe']"}),
+ 'etat': ('django.db.models.fields.CharField', [], {'default': 'None', 'max_length': '20', 'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'justif_nouveau_commentaire': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'justif_nouveau_salaire': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'justif_nouveau_statut': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'justif_nouveau_tmp_remplacement': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'justif_rempl_commentaire': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'justif_rempl_evaluation': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'justif_rempl_salaire': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'justif_rempl_statut_employe': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'justif_rempl_type_contrat': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'organisme_bstg': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'blank': 'True', 'null': 'True', 'to': "orm['rh_v1.OrganismeBstg']"}),
+ 'organisme_bstg_autre': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+ 'poste': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'dossiers'", 'to': "orm['dae.Poste']"}),
+ 'regime_travail': ('django.db.models.fields.DecimalField', [], {'default': '100.0', 'max_digits': '12', 'decimal_places': '2'}),
+ 'regime_travail_nb_heure_semaine': ('django.db.models.fields.DecimalField', [], {'default': '35.0', 'max_digits': '12', 'decimal_places': '2'}),
+ 'remplacement': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+ 'salaire': ('django.db.models.fields.DecimalField', [], {'default': 'None', 'null': 'True', 'max_digits': '12', 'decimal_places': '2'}),
+ 'salaire_anterieur': ('django.db.models.fields.DecimalField', [], {'default': 'None', 'null': 'True', 'max_digits': '12', 'decimal_places': '2', 'blank': 'True'}),
+ 'salaire_titulaire_anterieur': ('django.db.models.fields.DecimalField', [], {'default': 'None', 'null': 'True', 'max_digits': '12', 'decimal_places': '2', 'blank': 'True'}),
+ 'statut': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': "orm['rh_v1.Statut']"}),
+ 'statut_anterieur': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'blank': 'True', 'null': 'True', 'to': "orm['rh_v1.Statut']"}),
+ 'statut_residence': ('django.db.models.fields.CharField', [], {'default': "'local'", 'max_length': '10'}),
+ 'statut_titulaire_anterieur': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'blank': 'True', 'null': 'True', 'to': "orm['rh_v1.Statut']"}),
+ 'type_contrat': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': "orm['rh_v1.TypeContrat']"})
+ },
+ 'dae.dossiercomparaison': {
+ 'Meta': {'object_name': 'DossierComparaison'},
+ 'classement': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'blank': 'True', 'null': 'True', 'to': "orm['rh_v1.Classement']"}),
+ 'devise': ('django.db.models.fields.related.ForeignKey', [], {'default': '5', 'related_name': "'+'", 'blank': 'True', 'null': 'True', 'to': "orm['rh_v1.Devise']"}),
+ 'dossier': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'comparaisons'", 'to': "orm['dae.Dossier']"}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'implantation': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['datamaster_modeles.Implantation']", 'null': 'True', 'blank': 'True'}),
+ 'montant': ('django.db.models.fields.IntegerField', [], {'null': 'True'}),
+ 'personne': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+ 'poste': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+ 'statut': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'blank': 'True', 'null': 'True', 'to': "orm['rh_v1.Statut']"})
+ },
+ 'dae.dossierpiece': {
+ 'Meta': {'object_name': 'DossierPiece'},
+ 'dossier': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['dae.Dossier']"}),
+ 'fichier': ('django.db.models.fields.files.FileField', [], {'max_length': '100'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+ },
+ 'dae.employe': {
+ 'Meta': {'object_name': 'Employe'},
+ 'genre': ('django.db.models.fields.CharField', [], {'max_length': '1'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'id_rh': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'null': 'True', 'to': "orm['rh_v1.Employe']"}),
+ 'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+ 'prenom': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+ },
+ 'dae.poste': {
+ 'Meta': {'object_name': 'Poste'},
+ 'actif': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+ 'appel': ('django.db.models.fields.CharField', [], {'default': "'interne'", 'max_length': '10'}),
+ 'autre_max': ('django.db.models.fields.DecimalField', [], {'default': '0', 'max_digits': '12', 'decimal_places': '2'}),
+ 'autre_min': ('django.db.models.fields.DecimalField', [], {'default': '0', 'max_digits': '12', 'decimal_places': '2'}),
+ 'charges_patronales_max': ('django.db.models.fields.DecimalField', [], {'default': '0', 'max_digits': '12', 'decimal_places': '2'}),
+ 'charges_patronales_min': ('django.db.models.fields.DecimalField', [], {'default': '0', 'max_digits': '12', 'decimal_places': '2'}),
+ 'classement_max': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'blank': 'True', 'null': 'True', 'to': "orm['rh_v1.Classement']"}),
+ 'classement_min': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'blank': 'True', 'null': 'True', 'to': "orm['rh_v1.Classement']"}),
+ 'comp_autre_max': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '12', 'decimal_places': '2', 'blank': 'True'}),
+ 'comp_autre_min': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '12', 'decimal_places': '2', 'blank': 'True'}),
+ 'comp_fonctionpub_max': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '12', 'decimal_places': '2', 'blank': 'True'}),
+ 'comp_fonctionpub_min': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '12', 'decimal_places': '2', 'blank': 'True'}),
+ 'comp_locale_max': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '12', 'decimal_places': '2', 'blank': 'True'}),
+ 'comp_locale_min': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '12', 'decimal_places': '2', 'blank': 'True'}),
+ 'comp_ong_max': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '12', 'decimal_places': '2', 'blank': 'True'}),
+ 'comp_ong_min': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '12', 'decimal_places': '2', 'blank': 'True'}),
+ 'comp_universite_max': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '12', 'decimal_places': '2', 'blank': 'True'}),
+ 'comp_universite_min': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '12', 'decimal_places': '2', 'blank': 'True'}),
+ 'date_creation': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
+ 'date_debut': ('django.db.models.fields.DateField', [], {}),
+ 'date_fin': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'date_modification': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
+ 'devise_comparaison': ('django.db.models.fields.related.ForeignKey', [], {'default': '5', 'related_name': "'+'", 'to': "orm['rh_v1.Devise']"}),
+ 'devise_max': ('django.db.models.fields.related.ForeignKey', [], {'default': '5', 'related_name': "'+'", 'to': "orm['rh_v1.Devise']"}),
+ 'devise_min': ('django.db.models.fields.related.ForeignKey', [], {'default': '5', 'related_name': "'+'", 'to': "orm['rh_v1.Devise']"}),
+ 'etat': ('django.db.models.fields.CharField', [], {'default': 'None', 'max_length': '20', 'null': 'True', 'blank': 'True'}),
+ 'expatrie': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'id_rh': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'null': 'True', 'to': "orm['rh_v1.Poste']"}),
+ 'implantation': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['datamaster_modeles.Implantation']"}),
+ 'indemn_expat_max': ('django.db.models.fields.DecimalField', [], {'default': '0', 'max_digits': '12', 'decimal_places': '2'}),
+ 'indemn_expat_min': ('django.db.models.fields.DecimalField', [], {'default': '0', 'max_digits': '12', 'decimal_places': '2'}),
+ 'indemn_fct_max': ('django.db.models.fields.DecimalField', [], {'default': '0', 'max_digits': '12', 'decimal_places': '2'}),
+ 'indemn_fct_min': ('django.db.models.fields.DecimalField', [], {'default': '0', 'max_digits': '12', 'decimal_places': '2'}),
+ 'justification': ('django.db.models.fields.TextField', [], {}),
+ 'local': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+ 'mise_a_disposition': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+ 'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+ 'regime_travail': ('django.db.models.fields.DecimalField', [], {'default': '100.0', 'max_digits': '12', 'decimal_places': '2'}),
+ 'regime_travail_nb_heure_semaine': ('django.db.models.fields.DecimalField', [], {'default': '35.0', 'max_digits': '12', 'decimal_places': '2'}),
+ 'responsable': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': "orm['rh_v1.Poste']"}),
+ 'salaire_max': ('django.db.models.fields.DecimalField', [], {'default': '0', 'max_digits': '12', 'decimal_places': '2'}),
+ 'salaire_min': ('django.db.models.fields.DecimalField', [], {'default': '0', 'max_digits': '12', 'decimal_places': '2'}),
+ 'service': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': "orm['rh_v1.Service']"}),
+ 'type_intervention': ('django.db.models.fields.CharField', [], {'default': "'N'", 'max_length': '1'}),
+ 'type_poste': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'null': 'True', 'to': "orm['rh_v1.TypePoste']"}),
+ 'valeur_point_max': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'blank': 'True', 'null': 'True', 'to': "orm['rh_v1.ValeurPoint']"}),
+ 'valeur_point_min': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'blank': 'True', 'null': 'True', 'to': "orm['rh_v1.ValeurPoint']"})
+ },
+ 'dae.postecomparaison': {
+ 'Meta': {'object_name': 'PosteComparaison'},
+ 'classement': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'blank': 'True', 'null': 'True', 'to': "orm['rh_v1.Classement']"}),
+ 'devise': ('django.db.models.fields.related.ForeignKey', [], {'default': '5', 'related_name': "'+'", 'blank': 'True', 'null': 'True', 'to': "orm['rh_v1.Devise']"}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'implantation': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['datamaster_modeles.Implantation']", 'null': 'True', 'blank': 'True'}),
+ 'montant': ('django.db.models.fields.IntegerField', [], {'null': 'True'}),
+ 'nom': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+ 'poste': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'comparaisons_internes'", 'to': "orm['dae.Poste']"}),
+ 'statut': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'blank': 'True', 'null': 'True', 'to': "orm['rh_v1.Statut']"})
+ },
+ 'dae.postefinancement': {
+ 'Meta': {'object_name': 'PosteFinancement'},
+ 'commentaire': ('django.db.models.fields.TextField', [], {}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'poste': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'financements'", 'to': "orm['dae.Poste']"}),
+ 'pourcentage': ('django.db.models.fields.DecimalField', [], {'max_digits': '12', 'decimal_places': '2'}),
+ 'type': ('django.db.models.fields.CharField', [], {'max_length': '1'})
+ },
+ 'dae.postepiece': {
+ 'Meta': {'object_name': 'PostePiece'},
+ 'fichier': ('django.db.models.fields.files.FileField', [], {'max_length': '100'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+ 'poste': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['dae.Poste']"})
+ },
+ 'dae.remuneration': {
+ 'Meta': {'object_name': 'Remuneration'},
+ 'date_creation': ('django.db.models.fields.DateField', [], {'auto_now_add': 'True', 'blank': 'True'}),
+ 'devise': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to_field': "'code'", 'db_column': "'devise'", 'to': "orm['rh_v1.Devise']"}),
+ 'dossier': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['dae.Dossier']", 'db_column': "'dossier'"}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'montant': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '12', 'decimal_places': '2'}),
+ 'precision': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+ 'type': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'db_column': "'type'", 'to': "orm['rh_v1.TypeRemuneration']"}),
+ 'user_creation': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'})
+ },
+ 'datamaster_modeles.bureau': {
+ 'Meta': {'object_name': 'Bureau', 'db_table': "u'ref_bureau'"},
+ 'actif': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+ 'code': ('django.db.models.fields.CharField', [], {'max_length': '255', 'unique': 'True'}),
+ 'id': ('django.db.models.fields.IntegerField', [], {'primary_key': 'True'}),
+ 'implantation': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['datamaster_modeles.Implantation']", 'db_column': "'implantation'"}),
+ 'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+ 'nom_court': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+ 'nom_long': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+ 'region': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['datamaster_modeles.Region']", 'db_column': "'region'"})
+ },
+ 'datamaster_modeles.implantation': {
+ 'Meta': {'object_name': 'Implantation', 'db_table': "u'ref_implantation'"},
+ 'actif': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+ 'adresse_physique_bureau': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+ 'adresse_physique_code_postal': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
+ 'adresse_physique_code_postal_avant_ville': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}),
+ 'adresse_physique_no': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
+ 'adresse_physique_pays': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'impl_adresse_physique'", 'to_field': "'code'", 'db_column': "'adresse_physique_pays'", 'to': "orm['datamaster_modeles.Pays']"}),
+ 'adresse_physique_precision': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+ 'adresse_physique_precision_avant': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+ 'adresse_physique_region': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+ 'adresse_physique_rue': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+ 'adresse_physique_ville': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+ 'adresse_postale_boite_postale': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+ 'adresse_postale_bureau': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+ 'adresse_postale_code_postal': ('django.db.models.fields.CharField', [], {'max_length': '20', 'null': 'True', 'blank': 'True'}),
+ 'adresse_postale_code_postal_avant_ville': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}),
+ 'adresse_postale_no': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}),
+ 'adresse_postale_pays': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'impl_adresse_postale'", 'to_field': "'code'", 'db_column': "'adresse_postale_pays'", 'to': "orm['datamaster_modeles.Pays']"}),
+ 'adresse_postale_precision': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+ 'adresse_postale_precision_avant': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+ 'adresse_postale_region': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+ 'adresse_postale_rue': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+ 'adresse_postale_ville': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+ 'bureau_rattachement': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['datamaster_modeles.Implantation']", 'db_column': "'bureau_rattachement'"}),
+ 'code': ('django.db.models.fields.CharField', [], {'max_length': '255', 'unique': 'True'}),
+ 'code_meteo': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+ 'commentaire': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+ 'courriel': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
+ 'courriel_interne': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
+ 'date_extension': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'date_fermeture': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'date_inauguration': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'date_ouverture': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'fax': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+ 'fax_interne': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+ 'fuseau_horaire': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+ 'hebergement_convention': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}),
+ 'hebergement_convention_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'hebergement_etablissement': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.IntegerField', [], {'primary_key': 'True'}),
+ 'modif_date': ('django.db.models.fields.DateField', [], {}),
+ 'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+ 'nom_court': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+ 'nom_long': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+ 'region': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['datamaster_modeles.Region']", 'db_column': "'region'"}),
+ 'remarque': ('django.db.models.fields.TextField', [], {}),
+ 'responsable_implantation': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'statut': ('django.db.models.fields.IntegerField', [], {}),
+ 'telephone': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+ 'telephone_interne': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+ 'type': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+ 'url': ('django.db.models.fields.URLField', [], {'max_length': '255', 'blank': 'True'})
+ },
+ 'datamaster_modeles.pays': {
+ 'Meta': {'object_name': 'Pays', 'db_table': "u'ref_pays'"},
+ 'actif': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+ 'code': ('django.db.models.fields.CharField', [], {'max_length': '2', 'unique': 'True'}),
+ 'code_bureau': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['datamaster_modeles.Bureau']", 'to_field': "'code'", 'db_column': "'code_bureau'"}),
+ 'code_iso3': ('django.db.models.fields.CharField', [], {'max_length': '3', 'unique': 'True', 'blank': 'True'}),
+ 'developpement': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.IntegerField', [], {'primary_key': 'True'}),
+ 'monnaie': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+ 'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+ 'nord_sud': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+ 'region': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['datamaster_modeles.Region']", 'db_column': "'region'"})
+ },
+ 'datamaster_modeles.region': {
+ 'Meta': {'object_name': 'Region', 'db_table': "u'ref_region'"},
+ 'actif': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+ 'code': ('django.db.models.fields.CharField', [], {'max_length': '255', 'unique': 'True'}),
+ 'id': ('django.db.models.fields.IntegerField', [], {'primary_key': 'True'}),
+ 'implantation_bureau': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'gere_region'", 'db_column': "'implantation_bureau'", 'to': "orm['datamaster_modeles.Implantation']"}),
+ 'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+ },
+ 'rh_v1.classement': {
+ 'Meta': {'object_name': 'Classement'},
+ 'actif': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+ 'coefficient': ('django.db.models.fields.FloatField', [], {}),
+ 'commentaire': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'date_modification': ('django.db.models.fields.DateField', [], {'auto_now': 'True', 'blank': 'True'}),
+ 'degre': ('django.db.models.fields.IntegerField', [], {}),
+ 'echelon': ('django.db.models.fields.IntegerField', [], {}),
+ 'id': ('django.db.models.fields.IntegerField', [], {'primary_key': 'True'}),
+ 'type': ('django.db.models.fields.CharField', [], {'max_length': '10'})
+ },
+ 'rh_v1.devise': {
+ 'Meta': {'object_name': 'Devise'},
+ 'code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'unique': 'True'}),
+ 'id': ('django.db.models.fields.IntegerField', [], {'primary_key': 'True'}),
+ 'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+ },
+ 'rh_v1.employe': {
+ 'Meta': {'object_name': 'Employe'},
+ 'adresse': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+ 'code_postal': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+ 'commentaire': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'date_creation': ('django.db.models.fields.DateField', [], {'auto_now_add': 'True', 'blank': 'True'}),
+ 'date_entree': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'date_maj': ('django.db.models.fields.DateField', [], {'auto_now': 'True', 'blank': 'True'}),
+ 'date_naissance': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'genre': ('django.db.models.fields.CharField', [], {'max_length': '1', 'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.IntegerField', [], {'primary_key': 'True'}),
+ 'nationalite': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'nationalite'", 'to_field': "'code'", 'db_column': "'nationalite'", 'to': "orm['datamaster_modeles.Pays']"}),
+ 'no_rue': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+ 'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+ 'pays': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'pays'", 'db_column': "'pays'", 'to_field': "'code'", 'to': "orm['datamaster_modeles.Pays']", 'blank': 'True', 'null': 'True'}),
+ 'prenom': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+ 'province': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+ 'situation_famille': ('django.db.models.fields.CharField', [], {'max_length': '1', 'null': 'True', 'blank': 'True'}),
+ 'tel_cellulaire': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+ 'tel_domicile': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+ 'ville': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'})
+ },
+ 'rh_v1.familleemploi': {
+ 'Meta': {'object_name': 'FamilleEmploi'},
+ 'actif': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.IntegerField', [], {'primary_key': 'True'}),
+ 'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+ },
+ 'rh_v1.organismebstg': {
+ 'Meta': {'object_name': 'OrganismeBstg'},
+ 'actif': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.IntegerField', [], {'primary_key': 'True'}),
+ 'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+ 'type': ('django.db.models.fields.CharField', [], {'max_length': '10'})
+ },
+ 'rh_v1.poste': {
+ 'Meta': {'object_name': 'Poste'},
+ 'actif': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+ 'date_modification': ('django.db.models.fields.DateField', [], {'auto_now': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.IntegerField', [], {'primary_key': 'True'}),
+ 'implantation': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'db_column': "'implantation'", 'to': "orm['datamaster_modeles.Implantation']"}),
+ 'proportion': ('django.db.models.fields.CharField', [], {'max_length': '10'}),
+ 'type_poste': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['rh_v1.TypePoste']", 'db_column': "'type_poste'"})
+ },
+ 'rh_v1.service': {
+ 'Meta': {'object_name': 'Service'},
+ 'actif': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.IntegerField', [], {'primary_key': 'True'}),
+ 'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+ },
+ 'rh_v1.statut': {
+ 'Meta': {'object_name': 'Statut'},
+ 'actif': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+ 'code': ('django.db.models.fields.CharField', [], {'max_length': '25', 'unique': 'True'}),
+ 'id': ('django.db.models.fields.IntegerField', [], {'primary_key': 'True'}),
+ 'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+ 'type_contrat_categorie': ('django.db.models.fields.CharField', [], {'max_length': '10'})
+ },
+ 'rh_v1.typecontrat': {
+ 'Meta': {'object_name': 'TypeContrat'},
+ 'actif': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+ 'categorie': ('django.db.models.fields.CharField', [], {'max_length': '10'}),
+ 'id': ('django.db.models.fields.IntegerField', [], {'primary_key': 'True'}),
+ 'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+ 'nom_long': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+ },
+ 'rh_v1.typeposte': {
+ 'Meta': {'object_name': 'TypePoste'},
+ 'actif': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+ 'date_modification': ('django.db.models.fields.DateField', [], {'auto_now': 'True', 'blank': 'True'}),
+ 'description': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+ 'famille_emploi': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['rh_v1.FamilleEmploi']", 'db_column': "'famille_emploi'"}),
+ 'id': ('django.db.models.fields.IntegerField', [], {'primary_key': 'True'}),
+ 'is_responsable': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+ 'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+ 'nom_feminin': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+ },
+ 'rh_v1.typeremuneration': {
+ 'Meta': {'object_name': 'TypeRemuneration'},
+ 'actif': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.IntegerField', [], {'primary_key': 'True'}),
+ 'nature_remuneration': ('django.db.models.fields.CharField', [], {'max_length': '30'}),
+ 'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+ 'type_paiement': ('django.db.models.fields.CharField', [], {'max_length': '30'})
+ },
+ 'rh_v1.valeurpoint': {
+ 'Meta': {'object_name': 'ValeurPoint'},
+ 'annee': ('django.db.models.fields.IntegerField', [], {}),
+ 'id': ('django.db.models.fields.IntegerField', [], {'primary_key': 'True'}),
+ 'implantation': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'valeurs_point'", 'db_column': "'implantation'", 'to': "orm['datamaster_modeles.Implantation']"}),
+ 'valeur': ('django.db.models.fields.FloatField', [], {})
+ },
+ 'workflow.workflowcommentaire': {
+ 'Meta': {'object_name': 'WorkflowCommentaire'},
+ 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+ 'date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
+ 'etat_final': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+ 'etat_initial': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),
+ 'owner': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}),
+ 'texte': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'})
+ }
+ }
+
+ complete_apps = ['dae']
class PosteComparaison(models.Model):
poste = models.ForeignKey('Poste', related_name='comparaisons_internes')
implantation = models.ForeignKey(ref.Implantation, null=True, blank=True, related_name="+")
+ statut = models.ForeignKey(rh.Statut, related_name='+', verbose_name='Statut', null=True, blank=True, )
+ classement = models.ForeignKey(rh.Classement, related_name='+', verbose_name='Classement', null=True, blank=True, )
nom = models.CharField(verbose_name="Poste", max_length=255, null=True, blank=True)
montant = models.IntegerField(null=True)
devise = models.ForeignKey(rh.Devise, default=5, related_name='+', null=True, blank=True)
- montant_euros = models.IntegerField(null=True)
+
+ def taux_devise(self):
+ liste_taux = self.devise.tauxchange_set.order_by('-annee').filter(implantation=self.implantation)
+ if len(liste_taux) == 0:
+ raise Exception(u"La devise %s n'a pas de taux pour l'implantation %s" % (self.devise, self.implantation))
+ else:
+ return liste_taux[0].taux
+
+ def montant_euros(self):
+ return round(float(self.montant) * float(self.taux_devise()), 2)
### EMPLOYÉ/PERSONNE
Photo d'une comparaison salariale au moment de l'embauche.
"""
dossier = models.ForeignKey('Dossier', related_name='comparaisons')
+ statut = models.ForeignKey(rh.Statut, related_name='+', verbose_name='Statut', null=True, blank=True, )
+ classement = models.ForeignKey(rh.Classement, related_name='+', verbose_name='Classement', null=True, blank=True, )
implantation = models.ForeignKey(ref.Implantation, null=True, blank=True)
poste = models.CharField(max_length=255, null=True, blank=True)
personne = models.CharField(max_length=255, null=True, blank=True)
montant = models.IntegerField(null=True)
devise = models.ForeignKey(rh.Devise, default=5, related_name='+', null=True, blank=True)
- montant_euros = models.IntegerField(null=True)
+
+ def taux_devise(self):
+ liste_taux = self.devise.tauxchange_set.order_by('-annee').filter(implantation=self.dossier.poste.implantation)
+ if len(liste_taux) == 0:
+ raise Exception(u"La devise %s n'a pas de taux pour l'implantation %s" % (self.devise, self.dossier.poste.implantation))
+ else:
+ return liste_taux[0].taux
+
+ def montant_euros(self):
+ return round(float(self.montant) * float(self.taux_devise()), 2)
+
### RÉMUNÉRATION
return round(self.montant / 12, 2)
def taux_devise(self):
- return self.devise.tauxchange_set.order_by('-annee').filter(implantation=self.dossier.poste.implantation)[0].taux
+ liste_taux = self.devise.tauxchange_set.order_by('-annee').filter(implantation=self.dossier.poste.implantation)
+ if len(liste_taux) == 0:
+ raise Exception(u"La devise %s n'a pas de taux pour l'implantation %s" % (self.devise, self.dossier.poste.implantation))
+ else:
+ return liste_taux[0].taux
def montant_euro(self):
return round(float(self.montant) * float(self.taux_devise()), 2)
{% load adminmedia %}
{% block title %}RH - DAE - Embauche{% endblock %}
-{% block titre %}Ressources humaines{% endblock %}
{% block sous_titre %}Demande d'autorisation d'engagement{% endblock %}
{% block extrahead %}
<tr><th>{{ f.implantation.label }}</th><td>{{ f.implantation.errors }} {{ f.implantation }}</td></tr>
<tr><th>{{ f.poste.label }}</th><td>{{ f.poste.errors }} {{ f.poste }}</td></tr>
<tr><th>{{ f.personne.label }}</th><td>{{ f.personne.errors }} {{ f.personne }}</td></tr>
- <tr><th>{{ f.montant.label }} ({{f.devise.label }})</th><td>{{ f.montant.errors }} {{ f.montant }} {{ f.devise.errors }} {{f.devise }} ({{ f.montant_euros.errors }} {{ f.montant_euros }} EUR)</td></tr>
+ <tr><th>{{ f.statut.label }}</th><td>{{ f.statut.errors }} {{ f.statut }}</td></tr>
+ <tr><th>{{ f.classement.label }}</th><td>{{ f.classement.errors }} {{ f.classement }}</td></tr>
+ <tr><th>{{ f.montant.label }} ({{f.devise.label }})</th><td>{{ f.montant.errors }} {{ f.montant }} {{ f.devise.errors }} {{f.devise }}</td></tr>
</table>
{% endfor %}
</fieldset>
{% load adminmedia dae %}
{% block title %}RH - DAE - Embauche{% endblock %}
-{% block titre %}Ressources humaines{% endblock %}
{% block sous_titre %}Demande d'autorisation d'engagement{% endblock %}
{% block extrahead %}
<table>
<tbody>
<tr>
+ <th>Classement</th>
+ <th>Statut</th>
<th>Implantation</th>
<th>Employé</th>
<th>Poste</th>
</tr>
{% for dc in dossier.comparaisons.all %}
<tr>
+ <td>{{ dc.classement|default:"" }}</td>
+ <td>{{ dc.statut|default:"" }}</td>
<td>{{ dc.implantation }}</td>
<td>{{ dc.personne }}</td>
<td>{{ dc.poste }}</td>
- <td>{{ dc.montant }} {{ dc.devise }}</td>
- <td>{{ dc.montant_euros }} EUR</td>
+ <td>{{ dc.montant|floatformat:0 }} {{ dc.devise }}</td>
+ <td>{{ dc.montant_euros|floatformat:0 }} EUR</td>
</tr>
{% endfor %}
</tbody>
{% extends 'base.html' %}
{% block title %}RH - DAE - Embauches{% endblock %}
-{% block titre %}Ressources humaines{% endblock %}
{% block sous_titre %}Demande d'autorisation d'engagement{% endblock %}
{% block main %}
{% load dae %}
{% block title %}RH - DAE{% endblock %}
-{% block titre %}Ressources humaines{% endblock %}
{% block sous_titre %}Demande d'autorisation d'engagement{% endblock %}
{% block main %}
{% load adminmedia %}
{% block title %}RH - DAE - Poste{% endblock %}
-{% block titre %}Ressources humaines{% endblock %}
{% block sous_titre %}
Demande d'autorisation d'embauche
{% endblock %}
<tr class="comparaison-interne"><td colspan=2>Rechercher un poste : {{ f.recherche }}</td></tr>
<tr><th>{{ f.implantation.label }}</th><td>{{ f.implantation.errors }} {{ f.implantation }}</td></tr>
<tr><th>{{ f.nom.label }}</th><td>{{ f.nom.errors }} {{ f.nom }}</td></tr>
- <tr><th>{{ f.montant.label }} ({{f.devise.label }})</th><td>{{ f.montant.errors }} {{ f.montant }} {{ f.devise.errors }} {{f.devise }} ({{ f.montant_euros.errors }} {{ f.montant_euros }} EUR)</td></tr>
+ <tr><th>{{ f.statut.label }}</th><td>{{ f.statut.errors }} {{ f.statut}}</td></tr>
+ <tr><th>{{ f.classement.label }}</th><td>{{ f.classement.errors }} {{ f.classement}}</td></tr>
+ <tr><th>{{ f.montant.label }} ({{f.devise.label }})</th><td>{{ f.montant.errors }} {{ f.montant }} {{ f.devise.errors }} {{f.devise }}</td></tr>
</table>
{% endfor %}
</fieldset>
{% load adminmedia dae %}
{% block title %}RH - DAE - Poste{% endblock %}
-{% block titre %}Ressources humaines{% endblock %}
{% block sous_titre %}
Demande d'autorisation d'embauche
{% endblock %}
<table>
<tbody>
<tr>
+ <th>Classement</th>
+ <th>Statut</th>
<th>Poste</th>
<th>Implantation</th>
<th>Montant</th>
</tr>
{% for poste_connexe in poste.comparaisons_internes.all %}
<tr>
+ <td>{{ poste_connexe.classement }}</td>
+ <td>{{ poste_connexe.statut }}</td>
<td>{{ poste_connexe.nom }}</td>
<td>{{ poste_connexe.implantation }}</td>
- <td>{{ poste_connexe.montant }} {{ poste_connexe.devise.code }}</td>
- <td>{{ poste_connexe.montant_euros }} €</td>
+ <td>{{ poste_connexe.montant|floatformat:0 }} {{ poste_connexe.devise.code }}</td>
+ <td>{{ poste_connexe.montant_euros|floatformat:0 }} €</td>
</tr>
{% endfor %}
</tbody>
{% extends 'base.html' %}
{% block title %}RH - DAE - Postes{% endblock %}
-{% block titre %}Ressources humaines{% endblock %}
{% block sous_titre %}Demande d'autorisation d'engagement{% endblock %}
{% block main %}
import datamaster_modeles.models as ref
def get_employe_from_user(user):
- """
- Retourne un employé AUF à partir de son user Django.
- """
- try:
- employe = ref.Authentification.objects.get(courriel=user.email).id
- except:
- raise Exception(u"L'employé avec le courriel %s n'a pas été trouvé dans le référentiel." % user.email)
- return employe
+ """
+ Retourne un employé AUF à partir de son user Django.
+ """
+ # TODO : Refactoring : utiliser project.lib.get_employe_from_user
+ try:
+ employe = ref.Authentification.objects.get(courriel=user.email).id
+ except:
+ raise Exception(u"L'employé avec le courriel %s n'a pas été trouvé dans le référentiel." % user.email)
+ return employe
def is_user_dans_services_centraux(user):
employe = get_employe_from_user(user)
ne peut se faire. (C'est le cas au syncdb, quand la table de groupe
n'a pas été crée encore).
"""
+ # TODO : Refactoring : utiliser project.lib.safe_create_groupe
try:
grp, created = Group.objects.get_or_create(name=name)
except:
# append an app list module for "Applications"
self.children.append(modules.AppList(
_('Applications'),
- exclude=('django.contrib.*',),
+ exclude=('django.contrib.*',
+ 'project.rh.models.AyantDroit',
+ 'project.rh.models.Classement',
+ 'project.rh.models.Devise',
+ 'project.rh.models.FamilleEmploi',
+ 'project.rh.models.OrganismeBstg',
+ 'project.rh.models.Responsable',
+ 'project.rh.models.Service',
+ 'project.rh.models.Statut',
+ 'project.rh.models.TauxChange',
+ 'project.rh.models.TypeContrat',
+ 'project.rh.models.TypePoste',
+ 'project.rh.models.TypeRevalorisation',
+ 'project.rh.models.TypeRemuneration',
+ 'project.rh.models.ValeurPoint',
+ ),
))
# append an app list module for "Administration"
"""
Décorateurs AUF
"""
-from django.contrib.auth.decorators import user_passes_test
-from django.core.urlresolvers import reverse
+#from django.contrib.auth.decorators import user_passes_test
+#from django.core.exceptions import PermissionDenied
+#from django.core.urlresolvers import reverse
from django.http import HttpResponseRedirect
+from django.shortcuts import redirect
from permissions import is_employe, is_admin
+#from datamaster_modeles import models as ref
+from dae.utils import get_employe_from_user
+from rh import models as rh
+
# Décorateurs des fonctions dans views (pour tester permissions dans views)
def admin_required(fn):
tup = login_url, REDIRECT_FIELD_NAME, path
return HttpResponseRedirect('%s?%s=%s' % tup)
return inner
+
+def user_is_this_employe(fn):
+ """
+ Décorateur qui vérifie si le user est l'employé demandé.
+ Succes = execution de la vue.
+ Echec = page d'erreur de permission
+ """
+ def inner(request, id, *args, **kwargs):
+ id = int(id)
+ user = request.user
+ employe = get_employe_from_user(user)
+ if user.is_authenticated() and employe and id==employe.id:
+ return fn(request, id, *args, **kwargs)
+# raise PermissionDenied
+ return redirect('550')
+ return inner
--- /dev/null
+# -*- encoding: utf-8 -*-
+
+import datamaster_modeles.models as ref
+import rh.models as rh
+
+def get_employe_from_user(user):
+ """
+ Retourne un employé AUF (rh.Employe) à partir de son user Django.
+ """
+ try:
+ ref_employe = ref.Authentification.objects.get(courriel=user.email).id
+ employe = rh.Employe.objects.get(id=ref_employe.id)
+ employe.courriel = ref.Employe.objects.get(id=employe.id).courriel
+ except:
+ #raise Exception(u"L'employé avec le courriel %s n'a pas été trouvé dans le référentiel." % user.email)
+ employe = rh.Employe.objects.none()
+ return employe
+
+def get_employe_from_id(id):
+ """
+ Retourne un employé AUF (rh.Employe) à partir de son id.
+ """
+ try:
+ employe = rh.Employe.objects.get(id=id)
+ employe.courriel = ref.Employe.objects.get(id=employe.id).courriel
+ except:
+ employe = rh.Employe.objects.none()
+ return employe
+
+def safe_create_groupe(name=None, id=None):
+ """
+ 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:
+ if name:
+ grp, created = Group.objects.get_or_create(name=name)
+ elif id :
+ grp, created = Group.objects.get_or_create(id=id)
+ except:
+ return None
+ return grp
--- /dev/null
+#menu li a.disabled { color:#BBD8EC }
+#menu li a.disabled:hover { color:#BBD8EC }
+
+.clear { clear:both; }
+.gauche { float:left; padding-right:2%; }
+.gauche25 { float:left; width:23%; padding-right:2%; }
+.gauche33 { float:left; width:31%; padding-right:2%; }
+.gauche40 { float:left; width:38%; padding-right:2%; }
+.gauche50 { float:left; width:48%; padding-right:2%; }
+.gauche60 { float:left; width:58%; padding-right:2%; }
+.droite { float:right; }
+.droite25 { float:right; width:23%; padding-left:2%; }
+.droite33 { float:right; width:31%; padding-left:2%; }
+.droite40 { float:right; width:38%; padding-left:2%; }
+.droite50 { float:right; width:48%; padding-left:2%; }
+.droite60 { float:right; width:58%; padding-left:2%; }
+
+.nombre { text-align:right; }
+.archive td { background-color:#e6e6e6; }
--- /dev/null
+# -*- encoding: utf-8 -*-
+from recrutement.permissions import user_in_recrutement_groupes as in_recrutement_groupes
+
+# Ajout de variables accessibles dans les templates (pour tester permissions dans templates)
+
+def user_in_recrutement_groupes(request):
+ return {'user_in_recrutement_groupes': in_recrutement_groupes(request.user)}
+
--- /dev/null
+# -*- encoding: utf-8 -*-
+from django.contrib.auth.models import Group
+
+from project.lib import safe_create_groupe
+
+# Logique AUF des permissions
+
+grp_drh = safe_create_groupe(id=4) # DRH
+grp_evaluateurs = safe_create_groupe(id=13) # Évaluateurs
+
+recrutement_groupes = (
+ grp_drh,
+ grp_evaluateurs,
+)
+
+def user_in_recrutement_groupes(user):
+ """
+ Teste si un user Django fait parti des groupes prédéfinis de DAE.
+ """
+ if user.is_superuser:
+ return True
+ for g in user.groups.all():
+ if g in recrutement_groupes:
+ return True
+ return False
{% load i18n adminmedia form_utils_tags %}
{% block title %}RH - Recrutement{% endblock %}
-{% block titre %}Ressources humaines{% endblock %}
{% block sous_titre %}Affecter évaluateur{% endblock %}
{% block content %}
{% load i18n adminmedia form_utils_tags %}
{% block title %}RH - Recrutement{% endblock %}
-{% block titre %}Ressources humaines{% endblock %}
{% block sous_titre %}Envoyer courriel aux candidats{% endblock %}
{% block extrahead %}
{% extends 'base.html' %}
-{% block title %}RH{% endblock %}
-{% block titre %}Ressources humaines{% endblock %}
-{% block sous_titre %}Accueil{% endblock %}
+{% block title %}RH - Recrutement{% endblock %}
+{% block sous_titre %}Recrutement{% endblock %}
{% block main %}
<h1>Recrutement</h1>
<p>
-Recrutement
+Application de gestion du recrutement.
</p>
{% endblock %}
{% load adminmedia %}
{% block title %}RH{% endblock %}
-{% block titre %}Ressources humaines{% endblock %}
{% block sous_titre %}Accueil{% endblock %}
{% block main %}
{% load i18n adminmedia form_utils_tags %}
{% block title %}RH - Recrutement{% endblock %}
-{% block titre %}Ressources humaines{% endblock %}
{% block sous_titre %}Envoyer courriel aux candidats{% endblock %}
{% block extrahead %}
{{ form.media }}
#admin.site.register(AyantDroitCommentaire, AyantDroitCommentaireAdmin)
admin.site.register(Classement, ClassementAdmin)
#admin.site.register(Commentaire, CommentaireAdmin)
-admin.site.register(Contrat, ContratAdmin)
+#admin.site.register(Contrat, ContratAdmin)
admin.site.register(Devise, DeviseAdmin)
admin.site.register(Dossier, DossierAdmin)
#admin.site.register(DossierCommentaire, DossierCommentaireAdmin)
--- /dev/null
+# -*- encoding: utf-8 -*-
+
+from django import forms
+from models import Dossier, Contrat
+
+
+class FormDate(object):
+
+ def clean_date_fin(self):
+ date_fin = self.cleaned_data['date_fin']
+ if date_fin is None:
+ return date_fin
+ date_debut = self.cleaned_data['date_debut']
+ if date_fin < date_debut:
+ raise forms.ValidationError("La date de fin est antérieure à la date de début")
+ return date_fin
+
+class DossierForm(forms.ModelForm, FormDate):
+
+ class Model:
+ model = Dossier
+
+class ContratForm(forms.ModelForm, FormDate):
+
+ class Model:
+ model = Contrat
from django.db import models
from django.contrib import admin
+from django.conf import settings
from auf.django.metadata.admin import AUFMetadataAdminMixin, AUFMetadataInlineAdminMixin, AUF_METADATA_READONLY_FIELDS
from project.rh import models as rh
+from forms import DossierForm, ContratForm
# Inlines
return [f.name for f in self.model._meta.fields if f.name not in AUF_METADATA_READONLY_FIELDS]
-class AyantDroitInline(AUFMetadataInlineAdminMixin, admin.TabularInline):
+class AyantDroitInline(AUFMetadataInlineAdminMixin, admin.StackedInline):
model = models.Model # à remplacer dans admin.py
- extra = 1
+ extra = 0
class AyantDroitCommentaireInline(AUFMetadataInlineAdminMixin, admin.TabularInline):
class ContratInline(AUFMetadataInlineAdminMixin, admin.TabularInline):
+ form = ContratForm
model = models.Model # à remplacer dans admin.py
extra = 1
class DossierPieceInline(admin.TabularInline):
model = models.Model # à remplacer dans admin.py
+ extra = 4
class EmployeInline(admin.TabularInline):
class EmployePieceInline(admin.TabularInline):
model = models.Model # à remplacer dans admin.py
+ extra = 4
class EvenementInline(AUFMetadataInlineAdminMixin, admin.TabularInline):
)
def save_formset(self, request, form, formset, change):
- super(AyantDroitAdmin, self).save_formset(request, form, formset, change)
instances = formset.save(commit=False)
for instance in instances:
if instance.__class__ == rh.AyantDroitCommentaire:
instance.owner = request.user
instance.save()
- formset.save_m2m()
def _ayantdroit(self, obj):
return unicode(obj)
)
-
class CommentaireAdmin(admin.ModelAdmin):
pass
-class ContratAdmin(AUFMetadataAdminMixin, admin.ModelAdmin):
- alphabet_filter = 'dossier__employe__nom'
- search_fields = ('dossier__employe__nom', 'dossier__employe__prenom', 'dossier__poste__nom', 'dossier__poste__nom_feminin', )
- list_display = ('id', 'dossier', '_poste', )
- fieldsets = AUFMetadataAdminMixin.fieldsets + (
- (None, {
- 'fields': ('dossier', 'type_contrat', 'date_debut', 'date_fin', )
- }),
- )
-
- def lookup_allowed(self, key, value):
- if key in ('dossier__employe__nom__istartswith', ):
- return True
-
- def _poste(self, obj):
- return obj.dossier.poste
- _poste.short_description = "Poste"
-
+#class ContratAdmin(AUFMetadataAdminMixin, admin.ModelAdmin):
+# form = ContratForm
+# alphabet_filter = 'dossier__employe__nom'
+# search_fields = ('dossier__employe__nom', 'dossier__employe__prenom', 'dossier__poste__nom', 'dossier__poste__nom_feminin', )
+# list_display = ('id', '_employe', '_poste', 'date_debut', 'date_fin', '_implantation', )
+# fieldsets = AUFMetadataAdminMixin.fieldsets + (
+# (None, {
+# 'fields': ('dossier', 'type_contrat', 'date_debut', 'date_fin', )
+# }),
+# )
+#
+# def lookup_allowed(self, key, value):
+# if key in ('dossier__employe__nom__istartswith', ):
+# return True
+#
+# def _employe(self, obj):
+# return unicode(obj.dossier.employe)
+# _employe.short_description = "Employé"
+#
+# def _poste(self, obj):
+# return obj.dossier.poste.nom
+# _poste.short_description = "Poste"
+#
+# def _implantation(self, obj):
+# return obj.dossier.poste.implantation
+# _poste.short_description = "Implantation"
class DeviseAdmin(AUFMetadataAdminMixin, admin.ModelAdmin):
fieldsets = AUFMetadataAdminMixin.fieldsets + (
class DossierAdmin(AUFMetadataAdminMixin, admin.ModelAdmin,):
+ form = DossierForm
alphabet_filter = 'employe__nom'
search_fields = ('employe__nom', 'employe__prenom', 'poste__nom', 'poste__nom_feminin')
- list_display = ('_employe', '_poste', 'date_debut', 'date_fin', )
+ list_display = ('_employe', '_poste', 'date_debut', 'date_fin', '_actif')
inlines = (DossierPieceInline, ContratInline,
RemunerationInline,
#EvenementInline,
)
def lookup_allowed(self, key, value):
- if key in ('employe__nom__istartswith', ):
+ if key in ('employe__nom__istartswith', 'actif__exact', ):
return True
+ def _actif(self, dossier):
+ if dossier.employe.actif:
+ html = """<img alt="True" src="%simg/admin/icon-yes.gif">"""
+ else:
+ html = """<img alt="False" src="%simg/admin/icon-no.gif">"""
+ return html % settings.ADMIN_MEDIA_PREFIX
+ _actif.allow_tags = u'Employé actif'
+ _actif.short_description = u'Employé actif'
+ _actif.admin_order_field = 'employe__actif'
def _poste(self, dossier):
return unicode(dossier.poste.nom)
_poste.short_description = u'Poste'
+ _poste.admin_order_field = 'poste__nom'
def _employe(self, dossier):
return unicode(dossier.employe)
_employe.short_description = u'Employé'
-
+ _employe.admin_order_field = 'employe__nom'
+
def save_formset(self, request, form, formset, change):
- super(DossierAdmin, self).save_formset(request, form, formset, change)
instances = formset.save(commit=False)
for instance in instances:
if instance.__class__ == rh.DossierCommentaire:
instance.owner = request.user
instance.save()
- formset.save_m2m()
class DossierPieceAdmin(admin.ModelAdmin):
pass
class EmployeAdmin(AUFMetadataAdminMixin, admin.ModelAdmin):
alphabet_filter = 'nom'
- search_fields = ('id', 'nom', 'prenom', 'nom_affichage', )
+ search_fields = ('id', 'nom', 'prenom', 'nom_affichage', 'actif', )
+ list_filter = ('actif', )
+ ordering = ('nom', )
+ actions = ('desactiver', )
+ list_display = ('nom', 'prenom', 'actif', )
inlines = (AyantDroitInline,
DossierROInline,
EmployePieceInline,
)
def save_formset(self, request, form, formset, change):
- super(EmployeAdmin, self).save_formset(request, form, formset, change)
instances = formset.save(commit=False)
for instance in instances:
if instance.__class__ == rh.EmployeCommentaire:
instance.owner = request.user
instance.save()
- formset.save_m2m()
class EmployeCommentaireAdmin(admin.ModelAdmin):
pass
from auf.django.metadata.models import AUFMetadata
from auf.django.metadata.managers import NoDeleteManager
import datamaster_modeles.models as ref
-
+from validators import validate_date_passee
# Constantes
HELP_TEXT_DATE = "format: aaaa-mm-jj"
nom = models.CharField(verbose_name="Poste", max_length=255, null=True, blank=True)
montant = models.IntegerField(null=True)
devise = models.ForeignKey("Devise", default=5, related_name='+', null=True, blank=True)
- montant_euros = models.IntegerField(null=True)
+
+ def taux_devise(self):
+ liste_taux = self.devise.tauxchange_set.order_by('-annee').filter(implantation=self.implantation)
+ if len(liste_taux) == 0:
+ raise Exception(u"La devise %s n'a pas de taux pour l'implantation %s" % (self.devise, self.implantation))
+ else:
+ return liste_taux[0].taux
+
+ def montant_euros(self):
+ return round(float(self.montant) * float(self.taux_devise()), 2)
class PosteCommentaire(Commentaire):
verbose_name="Nationalité")
date_naissance = models.DateField(help_text=HELP_TEXT_DATE,
verbose_name="Date de naissance",
+ validators=[validate_date_passee],
null=True, blank=True)
genre = models.CharField(max_length=1, choices=GENRE_CHOICES)
if not nom_affichage:
nom_affichage = u'%s %s' % (self.nom.upper(), self.prenom)
return nom_affichage
+
+ def civilite(self):
+ civilite = u''
+ if self.genre.upper() == u'M':
+ civilite = u'M.'
+ elif self.genre.upper() == u'F':
+ civilite = u'Mme'
+ return civilite
class EmployePiece(models.Model):
"""Documents relatifs à un employé.
verbose_name="Nationalité")
date_naissance = models.DateField(help_text=HELP_TEXT_DATE,
verbose_name="Date de naissance",
+ validators=[validate_date_passee],
null=True, blank=True)
genre = models.CharField(max_length=1, choices=GENRE_CHOICES)
"""
# Identification
employe = models.ForeignKey('Employe', db_column='employe',
- related_name='+',
+ related_name='dossiers',
verbose_name="Employé")
poste = models.ForeignKey('Poste', db_column='poste', related_name='+')
statut = models.ForeignKey('Statut', related_name='+', default=3,
class Meta:
abstract = True
- ordering = ['employe__nom_affichage', 'employe__nom', 'poste__nom']
+ ordering = ['employe__nom', ]
verbose_name = "Dossier"
verbose_name_plural = "Dossiers"
__doc__ = Dossier_.__doc__
-
-class Dossier(Dossier_):
- __doc__ = Dossier_.__doc__
-
-
class DossierPiece(models.Model):
"""Documents relatifs au Dossier (à l'occupation de ce poste par employé).
Ex.: Lettre de motivation.
dossier = models.ForeignKey('Dossier', db_column='dossier',
related_name='+')
+class DossierComparaison(models.Model):
+ """
+ Photo d'une comparaison salariale au moment de l'embauche.
+ """
+ dossier = models.ForeignKey('Dossier', related_name='comparaisons')
+ implantation = models.ForeignKey(ref.Implantation, related_name="+", null=True, blank=True)
+ poste = models.CharField(max_length=255, null=True, blank=True)
+ personne = models.CharField(max_length=255, null=True, blank=True)
+ montant = models.IntegerField(null=True)
+ devise = models.ForeignKey('Devise', default=5, related_name='+', null=True, blank=True)
+
+ def taux_devise(self):
+ liste_taux = self.devise.tauxchange_set.order_by('-annee').filter(implantation=self.dossier.poste.implantation)
+ if len(liste_taux) == 0:
+ raise Exception(u"La devise %s n'a pas de taux pour l'implantation %s" % (self.devise, self.dossier.poste.implantation))
+ else:
+ return liste_taux[0].taux
+
+ def montant_euros(self):
+ return round(float(self.montant) * float(self.taux_devise()), 2)
+
### RÉMUNÉRATION
--- /dev/null
+{% extends 'base.html' %}
+
+{% block title %}RH - {{ employe }}{% endblock %}
+{% block sous_titre %}Employés{% endblock %}
+
+{% block main %}
+<h1>{{ employe }}</h1>
+
+{{ employe }}
+{% endblock %}
+
--- /dev/null
+{% extends 'base.html' %}
+
+{% block title %}RH - Employés{% endblock %}
+{% block sous_titre %}Employés{% endblock %}
+
+{% block main %}
+<h1>Employés</h1>
+
+<ul>
+<li style="display:inline"><a href="">Annuaire courriel</a></li>
+<li style="display:inline"><a href="">Annuaire téléphonique</a></li>
+</ul>
+
+{% comment %}
+TODO
+Implémenter interface de recherche rapide et complète telle que sur :
+http://intranet.auf/rubrique46.html
+{% endcomment %}
+
+<ul>
+{% for e in employes %}
+ <li><a href="{% url rh_employe e.id %}">{{ e }}</a></li>
+{% endfor %}
+</ul>
+
+{% endblock %}
+
--- /dev/null
+<tr{% if d.archive %} class="archive"{% endif %}>
+ <td class="nombre">{{ d.id }}</td>
+ <td><a href ="">{{ d.poste.nom }}</a></td>
+ <td>{{ d.date_debut }}</td>
+ <td>{{ d.date_fin|default_if_none:"" }}</td>
+ <td></td>
+ <td></td>
+ <td></td>
+</tr>
+++ /dev/null
-{% extends 'base.html' %}
-
-{% block title %}RH{% endblock %}
-{% block titre %}Ressources humaines{% endblock %}
-{% block sous_titre %}Accueil{% endblock %}
-
-{% block main %}
-<h1>Ressources humaines</h1>
-
-<p>
-L'ensemble des applications RH sera regroupé dans ce système de gestion des ressources humaines (SGRH).
-</p>
-<p>
-Voici les modules actuellement disponibles :
-</p>
-<ul>
- <li><a href="{% url dae_index %}">Demande d'autorisation d'embauche (DAE)</a></li>
-</ul>
-{% endblock %}
-
--- /dev/null
+{% extends 'sgrh.html' %}
+
+{% block title %}RH - {{ employe }}{% endblock %}
+{% block sous_titre %}Mon profil RH{% endblock %}
+
+{% block main %}
+<h1>Mon profil RH</h1>
+
+<div id="identification">
+ <div class="gauche50">
+ <h2>{{ employe.civilite }} {{ employe }}</h2>
+ {% for d in dossiers_encours %}
+ <p>
+ {% if employe.genre.upper == 'F' %}
+ {{ d.poste.nom_feminin }}
+ {% else %}
+ {{ d.poste.nom }}
+ {% endif %}
+ </p>
+ <p>
+ {{ d.poste.service|default_if_none:"Service inconnu" }}<br />
+ {{ d.poste.implantation.nom }}<br />
+ {{ d.poste.implantation.adresse_physique_ville }}
+ </p>
+ {% endfor %}
+ </div>
+ <div class="gauche50">
+ <img src="{{ employe.photo }}" alt="Photo" width="150" height="200" />
+ </div>
+</div>
+<hr class="clear" />
+
+<div>
+ <h2>Dépendants (ayant-droits)</h2>
+ {% if employe.ayantdroits.all %}
+ <ul>
+ {% for ad in employe.ayantdroits.all %}
+ <li>{{ ad }}</li>
+ {% endfor %}
+ </ul>
+ {% else %}
+ Aucun dépendant.
+ {% endif %}
+</div>
+
+<div id="infos" class="gauche50">
+ <h2>Informations professionnelles AUF</h2>
+ <table>
+ <tbody>
+ <tr>
+ <th>Date d'entrée :</th>
+ <td>{{ employe.date_entree }}</td>
+ </tr>
+ </tbody>
+ </table>
+
+</div>
+<div id="infos_perso" class="gauche50">
+ <h2>Informations personnelles</h2>
+ <table>
+ <tbody>
+ {% comment %}
+ <tr>
+ <th>Nom d'affichage :</th>
+ <td>{{ employe.nom_affichage }}</td>
+ </tr>
+ {% endcomment %}
+ <tr>
+ <th>Date de naissance :</th>
+ <td>{{ employe.date_naissance }}</td>
+ </tr>
+ <tr>
+ <th>Nationalité :</th>
+ <td>{{ employe.nationalite }}</td>
+ </tr>
+ <tr>
+ <th>Situation familiale :</th>
+ <td>{{ employe.situation_familiale }}</td>
+ </tr>
+ </tbody>
+ </table>
+</div>
+
+<div id="coord" class="clear gauche50">
+ <h2>Coordonnées professionnelles AUF</h2>
+ <table>
+ <tbody>
+ <tr>
+ <th>Courriel :</th>
+ <td>{{ employe.courriel }}</td>
+ </tr>
+ <tr>
+ <th>Téléphone IP :</th>
+ <td>{{ employe.champ }}</td>
+ </tr>
+ <tr>
+ <th>Téléphone :</th>
+ <td>{{ employe.champ }}</td>
+ </tr>
+ <tr>
+ <th>Télécopie :</th>
+ <td>{{ employe.champ }}</td>
+ </tr>
+ <tr>
+ <th>Adresse postale :</th>
+ <td>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+</div>
+<div id="coord_perso" class="gauche50">
+ <h2>Coordonnées personnelles</h2>
+ <table>
+ <tbody>
+ <tr>
+ <th>Téléphone domicile :</th>
+ <td>{{ employe.tel_domicile }}</td>
+ </tr>
+ <tr>
+ <th>Téléphone cellulaire :</th>
+ <td>{{ employe.tel_cellulaire }}</td>
+ </tr>
+ <tr>
+ <th>Adresse complète :</th>
+ <td>
+ {{ employe.adresse }}<br />
+ {% if employe.ville or employe.province %}
+ {{ employe.ville }}
+ {% if employe.ville and employe.province %}, {% endif %}
+ {{ employe.province }}
+ <br />
+ {% endif %}
+ {% if employe.code_postal %}
+ {{ employe.code_postal }}<br />
+ {% endif %}
+ {{ employe.pays.nom }}
+ </td>
+ </tr>
+ </tbody>
+ </table>
+</div>
+
+<div id="postes" class="clear">
+ <h2>Poste{{ dossiers_encours|pluralize }}</h2>
+ Globalement, mettre les infos du poste pertinente (n'en a pas beaucoup)...
+ ... mais surtout les infos du dossier (le fait que cette personne occupe ce poste).
+ {% for d in dossiers_encours %}
+ <table>
+ <tbody>
+ <tr>
+ <th>Nom :</th>
+ <td>{{ d.poste.nom }}</td>
+ </tr>
+ <tr>
+ <th>Implantation :</th>
+ <td>{{ d.poste.implantation }}</td>
+ </tr>
+ <tr>
+ <th>Type de poste :</th>
+ <td>{{ d.poste.type_poste }}</td>
+ </tr>
+ <tr>
+ <th>Service :</th>
+ <td>{{ d.poste.service }}</td>
+ </tr>
+ <tr>
+ <th>Poste du responsable :</th>
+ <td>{{ d.poste.responsable }}</td>
+ </tr>
+ <tr>
+ <th>Régime de travail :</th>
+ <td>{{ d.poste.regime_travail }}</td>
+ </tr>
+ <tr>
+ <th>Nombre d'heures par semaine :</th>
+ <td>{{ d.poste.regime_travail_nb_heure_semaine }}</td>
+ </tr>
+ </tbody>
+ </table>
+ {% endfor %}
+</div>
+
+<div id="dossiers">
+ <h2>Dossier{{ dossiers|pluralize }}</h2>
+ <table>
+ <thead>
+ <tr>
+ <th></th>
+ <th>Poste</th>
+ <th>Début</th>
+ <th>Fin</th>
+ <th>Contrat(s)</th>
+ <th>Début</th>
+ <th>Fin</th>
+ </tr>
+ </thead>
+ <tbody>
+ {% for d in dossiers_encours %}
+ {% include "rh/include/dossier.html" %}
+ {% endfor %}
+ {% for d in dossiers_passes %}
+ {% include "rh/include/dossier.html" %}
+ {% endfor %}
+ </tbody>
+ </table>
+</div>
+
+{% comment %}
+* Pièces jointes (Employé, Poste, Dossier?)
+* Commentaire / remarque ? attention, commentaires privés des gestionnnaires?
+* Rémunération
+* Évaluation
+{% endcomment %}
+
+{% endblock %}
+
urlpatterns = patterns(
'project.rh.views',
- url(r'^$', 'index', name='index'),
- #url(r'^employes$', 'employes', name='employes'),
+ url(r'^employes/$', 'employes_liste', name='rh_employes'),
+ url(r'^profil$', 'profil', name='rh_profil'),
+ url(r'^employes/(?P<id>\d+)$', 'employe', name='rh_employe'),
)
--- /dev/null
+# -*- encoding: utf-8 -*-
+
+import datetime
+from django.core.exceptions import ValidationError
+from django.utils.translation import ugettext_lazy as _
+
+def validate_date_passee(date):
+ if date >= datetime.date.today():
+ raise ValidationError(_(u"La date ne peut pas être future"))
# -*- encoding: utf-8 -*-
+from datetime import date
+
+from django.contrib.auth.decorators import login_required
from django.shortcuts import redirect, render_to_response, get_object_or_404
from django.template import RequestContext
-from project.rh import models as rh
+from datamaster_modeles import models as ref
+from project.lib import get_employe_from_id
+
+from rh import models as rh
-def index(request):
- return render_to_response('rh/index.html', {}, RequestContext(request))
+# homes
+@login_required
+def profil(request):
+ """Profil personnel de l'employé - éditable"""
+ rc = RequestContext(request)
+ c = {}
+
+ employe = rc['this_employe']
+
+ # dossiers en cours et passés
+ today = date.today()
+ dossiers = employe.dossiers.all().order_by('-date_fin')
+ dossiers_passes = dossiers.filter(date_fin__lt=today)
+ dossiers_futurs = dossiers.filter(date_debut__gt=today)
+ dossiers_p_f = dossiers_passes | dossiers_futurs
+ ids_dossiers_p_f = [d.id for d in dossiers_p_f]
+ dossiers_encours = dossiers.exclude(id__in=ids_dossiers_p_f)
+
+ for d in dossiers_passes:
+ d.archive = True
+
+ c['user'] = request.user
+ c['employe'] = employe
+ c['dossiers'] = dossiers.count()
+ c['dossiers_passes'] = dossiers_passes
+ c['dossiers_encours'] = dossiers_encours
+ return render_to_response('rh/profil.html', c, rc)
+
+# employes
+@login_required
+def employes_liste(request):
+ """Liste des employés."""
+ employes = rh.Employe.objects.all()
+ c = {
+ 'user':request.user,
+ 'employes':employes,
+ }
+ return render_to_response('rh/employes_liste.html', c, RequestContext(request))
+
+@login_required
+def employe(request, id):
+ """Information publique sur un employé."""
+ try:
+ employe = rh.Employe.objects.get(pk=id)
+ except:
+ employe = rh.Employe.objects.none()
+ c = {
+ 'user':request.user,
+ 'employe':employe,
+ }
+ return render_to_response('rh/employe.html', c, RequestContext(request))
from conf import *
-PROJET_TITRE = "SGRH"
+PROJET_TITRE = "Ressources humaines"
# Rapports d'erreurs
EMAIL_SUBJECT_PREFIX = '[auf_rh_dae - %s] ' % socket.gethostname()
'django.contrib.messages.context_processors.messages',
'django.core.context_processors.request',
'auf.django.skin.context_processors.auf',
- 'project.context_processors.utilisateur',
+ #'project.context_processors.utilisateur',
+ 'project.context_processors.this_employe',
'project.context_processors.user_is_admin',
+ 'dae.context_processors.user_in_dae_groupes',
+ 'recrutement.context_processors.user_in_recrutement_groupes',
)
AUTHENTICATION_BACKENDS = (
--- /dev/null
+{% extends 'base.html' %}
+
+{% block title %}RH - Erreur 404{% endblock %}
+{% block sous_titre %}Erreur 404{% endblock %}
+
+{% block main %}
+<h1 class="msgNegatif">Page non trouvée</h1>
+
+<p>
+La page demandée n'a pas été trouvée dans le système.
+</p>
+{% endblock %}
--- /dev/null
+{% extends 'base.html' %}
+
+{% block title %}RH - Erreur 500{% endblock %}
+{% block sous_titre %}Erreur 500{% endblock %}
+
+{% block main %}
+<h1 class="msgNegatif">Erreur interne du système</h1>
+
+<p>
+Le système a rencontré une erreur interne et n'a pas pu traiter votre demande.
+</p>
+{% endblock %}
--- /dev/null
+{% extends 'base.html' %}
+
+{% block title %}RH - Erreur 550{% endblock %}
+{% block sous_titre %}Erreur 550{% endblock %}
+
+{% block main %}
+<h1 class="msgNegatif">Permission non accordée</h1>
+
+<p>
+Vous n'avez pas les permissions nécessaires pour faire l'action demandée.
+</p>
+{% endblock %}
--- /dev/null
+{% extends 'sgrh.html' %}
+
+{% block title %}RH{% endblock %}
+{% block sous_titre %}Accueil{% endblock %}
+
+{% block main %}
+<h1>{{ this_employe }}</h1>
+
+<p>
+L'ensemble des applications RH sera regroupé dans ce système de gestion des ressources humaines (SGRH).
+</p>
+<p>
+Voici pour chaque module les actions que vous pouvez faire.
+</p>
+
+<div class="gauche50">
+ <div>
+ {% if user_in_dae_groupes %}
+ <h2><a href="{% url dae_index %}">Demande d'autorisation d'engagement (DAE)</a></h2>
+ <p>
+ Voici vos actions possibles :
+ </p>
+ <p>
+ En développement... accédez directement au module <a href="{% url dae_index %}">DAE</a>.
+ </p>
+ {% else %}
+ <h2>Demande d'autorisation d'engagement (DAE)</h2>
+ <p>
+ Vous n'avez pas accès au module DAE.
+ </p>
+ {% endif %}
+ </div>
+
+ <div>
+ {% if user_in_recrutement_groupes %}
+ <h2><a href="{% url index %}">Recrutement</a></h2>
+ <p>
+ Voici vos actions possibles :
+ </p>
+ <p>
+ En développement... accédez directement au module <a href="{% url index %}">Recrutement</a>.
+ </p>
+ {% else %}
+ <h2>Recrutement</h2>
+ <p>
+ Vous n'avez pas accès au module Recrutement.
+ </p>
+ {% endif %}
+ </div>
+
+ <div>
+ <h2>Contrats</h2>
+ <p>
+ Le module Contrats n'est pas encore intégré à ce système.<br />
+ Le système de gestion de contrats est encore accessible à son ancien emplacement : <br />
+ <a href="http://contrats.auf/">http://contrats.auf/</a>
+ </p>
+ </div>
+
+ <div>
+ <h2>Évaluations</h2>
+ <p>
+ Le module Évaluations n'est pas encore intégré à ce système.<br />
+ Le système d'évaluation est encore accessible à son ancien emplacement : <br />
+ <a href="http://rh-evaluation.auf">http://rh-evaluation.auf</a>
+ </p>
+ </div>
+</div>
+<div class="gauche50">
+ <h2><a href="{% url rh_employes %}">Employés</a></h2>
+
+ <div class="gauche50">
+ <p>Dix employés au hasard...</p>
+ {% for e in employes %}
+ <ul>
+ <li><a href="{% url rh_employe e.id %}">{{ e }}</a></li>
+ </ul>
+ {% endfor %}
+ </div>
+ <div class="gauche50">
+ Recherche rapide : <input name="recherche" value="Non fonctionnelle" />
+ </div>
+</div>
+
+{% endblock %}
--- /dev/null
+<ul>
+ {% if user.is_authenticated %}
+ {% if this_employe %}
+ <li class="username">{{ this_employe }}</li>
+ {% else %}
+ <li class="username">{{ user }}</li>
+ {% endif %}
+ <li><a href="{% url rh_profil %}">Mon profil RH</a></li>
+ {% if user_is_admin or user_in_dae_groupes or user_in_recrutement_groupes %}
+ <li><a href="{% url admin:index %}">Administration</a></li>
+ {% endif %}
+ <li><a href="{% url django.contrib.auth.views.logout %}?next=/">Déconnexion</a></li>
+ {% else %}
+ <li><a href="{% url django.contrib.auth.views.login %}?next={{request.path}}">Connexion</a></li>
+ {% endif %}
+</ul>
{% load i18n %}
<input type="text" name="{{name}}_text" id="{{html_id}}_text" value="" {{ extra_attrs }} />
{% if add_link %}
- <a href="{{ add_link }}" class="add-another" id="add_{{ html_id }}" onclick="return showAddAnotherPopup(this);"> <img src="{{ admin_media_prefix }}img/admin/icon_addlink.gif" width="10" height="10" alt="Add Another"></a>
+ <a href="{{ add_link }}" class="add-another" id="add_{{ html_id }}" onclick="return showAddAnotherPopup(this);">
+ <img src="{{ admin_media_prefix }}img/admin/icon_addlink.gif" width="10" height="10" alt="Add Another">
+ </a>
{% endif %}
{% block help %}{% endblock %}
-<div id="{{html_id}}_on_deck" class="results_on_deck"><div>{{current_result|safe}}</div></div>
+<div id="{{html_id}}_on_deck" class="results_on_deck">
+ <div>{{current_result|safe}}</div>
+</div>
<input type="hidden" name="{{name}}" id="{{html_id}}" value="{{current_id}}" />
<script type="text/javascript">
jQuery(document).ready(function($){{% block script %}
+++ /dev/null
-{% extends 'base.html' %}
-
-{% block title %}RH{% endblock %}
-{% block titre %}Ressources humaines{% endblock %}
-{% block sous_titre %}Accueil{% endblock %}
-
-{% block main %}
-
-<h1>Ressources humaines</h1>
-
-<p>
-L'ensemble des applications RH sera regroupé dans ce système de gestion des ressources humaines (SGRH).
-</p>
-<p>
-Voici les modules actuellement disponibles :
-</p>
-<ul>
- <li><a href="{% url dae_index %}">Demande d'autorisation d'engagement (DAE)</a></li>
-</ul>
-
-<h1>Vos droits d'accès</h1>
-{% if request.user.is_authenticated %}
-<p>Vous faîtes partie des groupes suivants : </p>
-<ul>
- {% for g in request.user.groups.all %}
- <li>{{ g.name }}</li>
- {% endfor %}
-</ul>
-{% endif %}
-
-
-{% endblock %}
-
{% load auf_menu dae %}
<ul class="menu">
- <li class="{% menu_actif request '^$' %}">
- <a href="{% url index %}">Accueil</a>
- </li>
- <li class="{% menu_actif request '^dae$' %}">
- <a href="{% url dae_index %}">DAE</a>
- <ul>
+ <li class="{% menu_actif request '^$' %}"><a href="{% url accueil %}">Accueil</a></li>
+{% if user.is_authenticated %}
+ {% if user_in_dae_groupes %}
+ <li class="{% menu_actif request '^dae$' %}">
+ <a href="{% url dae_index %}">DAE</a>
+ <ul>
{% if request.user|peut_ajouter %}
<li class="{% menu_actif request '^poste$' %}">
- <a href="{% url poste %}">Poste : formulaire</a>
+ <a href="{% url poste %}">Poste : formulaire</a>
</li>
{% endif %}
<li class="{% menu_actif request '^postes$' %}">
- <a href="{% url dae_postes_liste %}">Postes : voir et valider</a>
+ <a href="{% url dae_postes_liste %}">Postes : voir et valider</a>
</li>
{% if request.user|peut_ajouter %}
<li class="{% menu_actif request '^embauche$' %}">
- <a href="{% url embauche %}">Embauche : formulaire</a>
+ <a href="{% url embauche %}">Embauche : formulaire</a>
</li>
{% endif %}
<li class="{% menu_actif request '^embauches$' %}">
- <a href="{% url dae_embauches_liste %}">Embauches : voir et valider</a>
+ <a href="{% url dae_embauches_liste %}">Embauches : voir et valider</a>
</li>
- </ul>
- </li>
+ </ul>
+ </li>
+ {% else %}
+ <li class="{% menu_actif request '^dae$' %}"><a href="" class="disabled">DAE</a></li>
+ {% endif %}
+ {% if user_in_recrutement_groupes %}
+ <li class="{% menu_actif request '^recrutement$' %}"><a href="{% url index %}">Recrutement</a></li>
+ {% else %}
+ <li class="{% menu_actif request '^recrutement$' %}"><a href="" class="disabled">Recrutement</a></li>
+ {% endif %}
+ <li class="{% menu_actif request '^contrats$' %}"><a href="" class="disabled">Contrats</a></li>
+ <li class="{% menu_actif request '^employes$' %}"><a href="{% url rh_employes %}">Employés</a></li>
+ <li class="{% menu_actif request '^evaluations$' %}"><a href="" class="disabled">Évaluations</a></li>
+{% endif %}
</ul>
--- /dev/null
+{% extends "base.html" %}
+
+{% block extrahead %}
+ <link rel="stylesheet" type="text/css" href="{{ MEDIA_URL }}css/sgrh.css" media="all"/>
+{% endblock %}
urlpatterns = patterns(
'',
- (r'^$', 'project.views.index'),
- url(r'^captcha/', include('captcha.urls')),
- url(r'^admin_tools/', include('admin_tools.urls')),
+ # système
+ url(r'^$', 'project.views.accueil', name='accueil'),
+
(r'^admin/', include(admin.site.urls)),
url(r'^api/(?P<method>[a-z_-]+)/(?P<offre_id>\d+)$', 'recrutement.api.api',
name='recrutement_api'),
name='recrutement_api'),
(r'^connexion/$', 'django.contrib.auth.views.login'),
(r'^deconnexion/$', 'django.contrib.auth.views.logout'),
+ #url(r'^private_files/', include('private_files.urls')),
+ url(r'^captcha/', include('captcha.urls')),
+ url(r'^admin_tools/', include('admin_tools.urls')),
+ (r'^tinymce/', include('tinymce.urls')),
+ (r'^prive/(?P<path>.*)$', 'django.views.static.serve',
+ {'document_root': settings.PRIVE_MEDIA_ROOT}),
+ url(r'^404$', 'project.views.erreur404', name='404'),
+ url(r'^500$', 'project.views.erreur500', name='500'),
+ url(r'^550$', 'project.views.erreur550', name='550'),
+
+ # apps
(r'^dae/', include('project.dae.urls')),
(r'^recrutement/', include('recrutement.urls')),
- (r'^tinymce/', include('tinymce.urls')),
(r'^', include('project.rh.urls')),
- (r'^prive/(?P<path>.*)$', 'django.views.static.serve',
- {'document_root': sett.PRIVE_MEDIA_ROOT}),
)
if settings.DEBUG:
# -*- encoding: utf-8 -*-
+from datetime import date
+
+from django.contrib.auth.decorators import login_required
from django.shortcuts import render_to_response
from django.template import RequestContext
-from project.dae.decorators import dae_groupe_requis
-@dae_groupe_requis
-def index(request):
- return render_to_response('index.html', {}, RequestContext(request))
+import rh.models as rh
+
+@login_required
+def accueil(request):
+ """Accueil = Tableau de bord de l'utilisateur"""
+ rc = RequestContext(request)
+ c = {}
+ today = date.today()
+
+ # employés présents = metadata ok et dossiers présents
+ employes = rh.Employe.objects \
+ .filter(actif=True, supprime=False) \
+ .filter(dossiers__actif=True, dossiers__supprime=False) \
+ .exclude(dossiers__date_debut__gt=today) \
+ .exclude(dossiers__date_fin__lt=today) \
+ .order_by('?')
+
+ c['employes'] = employes[0:10]
+ return render_to_response('accueil.html', c, rc)
+
+def erreur404(request) :
+ c = {
+ 'user':request.user,
+ }
+ return render_to_response('404.html', c,
+ context_instance = RequestContext(request))
+
+def erreur500(request) :
+ c = {
+ 'user':request.user,
+ }
+ return render_to_response('500.html', c,
+ context_instance = RequestContext(request))
+
+def erreur550(request) :
+ c = {
+ 'user':request.user,
+ }
+ return render_to_response('550.html', c,
+ context_instance = RequestContext(request))