'project.rh.models.Poste',
)
),
+ modules.ModelList(
+ title='Log',
+ models=(
+ 'project.rh.models.ChangementPersonnel',
+ )
+ ),
]
))
'project.rh.models.TypeRevalorisation',
'project.rh.models.TypeRemuneration',
'project.rh.models.ValeurPoint',
+ 'project.rh.models.ChangementPersonnelNotifications',
),
exclude=('django.contrib.*',),
))
# -*- encoding: utf-8 -*-
import datetime
-
import reversion
+import itertools
from ajax_select import make_ajax_form
from auf.django.references import models as ref
+from django.core.mail import send_mail
from django.contrib.auth.admin import UserAdmin
from django.contrib.auth.models import User
from django import forms
inlines = list(UserAdmin.inlines) + [ProfileInline]
+def _invalidate(modaladmin, req, qs):
+ qs.update(valide=False)
+_invalidate.short_description = 'Invalider'
+
+
+def _communique(modaladmin, req, qs):
+ url_prefix = ('https://' if req.is_secure() else 'http://') + (
+ req.META['SERVER_NAME'] if 'SERVER_NAME' in req.META else
+ 'localhost') + (':%s' % (req.META['SERVER_PORT']) if 'SERVER_PORT'
+ in req.META else '')
+
+ types = [x[0] for x in rh.TYPES_CHANGEMENT]
+
+ # make a list of all possible email types. It is reversed so that
+ # we start with the largest combinations.
+ combs = list(itertools.chain(*map(
+ lambda x: itertools.combinations(types, x),
+ range(1, len(types)+1))))
+
+ combs = reversed(combs)
+
+ recipient_list = ref.Employe.objects.filter(
+ changement_notifications__in=
+ rh.ChangementPersonnelNotifications.objects.all()).distinct()
+
+
+ for comb in combs:
+ # qf c'est pour trouver les recipients.
+ qf = reduce(
+ lambda x, y: x & y,
+ [Q(**{'changement_notifications__type': t}) for t in comb]
+ )
+ recipients = recipient_list.filter(qf)
+
+ recipient_list = recipient_list.exclude(
+ id__in=recipients.values_list('id', flat=True))
+
+ types_dict = dict(rh.TYPES_CHANGEMENT)
+
+ if len(recipients):
+ sujet = '[SGRH] Rapport des employés de type: %s' % (
+ ', '.join(
+ [types_dict[c].lower() for c in
+ comb]))
+ message = u''
+ for t in comb:
+ message += u'%s: \n' % (types_dict[t].decode('utf8'))
+ message += '\n'.join([u'\t%s %s, %s' % (
+ x.dossier.employe.prenom,
+ x.dossier.employe.nom,
+ url_prefix + reverse(
+ 'admin:rh_dossier_change', args=[x.dossier.id]))
+ for x in qs.filter(type__in=[t])])
+ send_mail(
+ sujet,
+ message,
+ settings.SERVER_EMAIL,
+ [x.courriel for x in recipients],
+ fail_silently=False)
+
+ qs.update(communique=True)
+
+_communique.short_description = u'Envoyer aux desinataires prévus.'
+
+
+class ChangementPersonnelAdmin(admin.ModelAdmin):
+
+ actions = (
+ _invalidate,
+ _communique,
+ )
+
+ list_display = (
+ 'type', 'dossier', 'valide', 'communique', 'date_communication'
+ )
+
+ list_filter = (
+ 'type',
+ 'valide',
+ 'communique',
+ )
+
+
admin.site.unregister(User)
admin.site.register(User, RHUserAdmin)
admin.site.register(rh.ValeurPoint, ValeurPointAdmin)
admin.site.register(ImplantationProxy, ImplantationProxyAdmin)
admin.site.register(RegionProxy, RegionProxyAdmin)
+admin.site.register(rh.ChangementPersonnelNotifications)
+admin.site.register(rh.ChangementPersonnel, ChangementPersonnelAdmin)
--- /dev/null
+# -*- coding: 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 model 'ChangementPersonnel'
+ db.create_table('rh_changementpersonnel', (
+ ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
+ ('dossier', self.gf('django.db.models.fields.related.ForeignKey')(related_name='mouvements', to=orm['rh.Dossier'])),
+ ('valide', self.gf('django.db.models.fields.BooleanField')(default=True)),
+ ('communique', self.gf('django.db.models.fields.BooleanField')(default=False)),
+ ('date_communication', self.gf('django.db.models.fields.DateTimeField')()),
+ ('type', self.gf('django.db.models.fields.CharField')(max_length=2)),
+ ))
+ db.send_create_signal('rh', ['ChangementPersonnel'])
+
+ # Adding model 'ChangementPersonnelNotifications'
+ db.create_table('rh_changementpersonnelnotifications', (
+ ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
+ ('type', self.gf('django.db.models.fields.CharField')(unique=True, max_length=2)),
+ ))
+ db.send_create_signal('rh', ['ChangementPersonnelNotifications'])
+
+ # Adding M2M table for field destinataires on 'ChangementPersonnelNotifications'
+ db.create_table('rh_changementpersonnelnotifications_destinataires', (
+ ('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)),
+ ('changementpersonnelnotifications', models.ForeignKey(orm['rh.changementpersonnelnotifications'], null=False)),
+ ('employe', models.ForeignKey(orm['references.employe'], null=False))
+ ))
+ db.create_unique('rh_changementpersonnelnotifications_destinataires', ['changementpersonnelnotifications_id', 'employe_id'])
+
+
+ def backwards(self, orm):
+ # Deleting model 'ChangementPersonnel'
+ db.delete_table('rh_changementpersonnel')
+
+ # Deleting model 'ChangementPersonnelNotifications'
+ db.delete_table('rh_changementpersonnelnotifications')
+
+ # Removing M2M table for field destinataires on 'ChangementPersonnelNotifications'
+ db.delete_table('rh_changementpersonnelnotifications_destinataires')
+
+
+ models = {
+ 'auth.group': {
+ 'Meta': {'object_name': 'Group'},
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
+ 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'})
+ },
+ 'auth.permission': {
+ 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", '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'}),
+ 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ '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', [], {'unique': 'True', 'max_length': '30'})
+ },
+ 'contenttypes.contenttype': {
+ 'Meta': {'ordering': "('name',)", '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'})
+ },
+ 'references.bureau': {
+ 'Meta': {'ordering': "['nom']", 'object_name': 'Bureau', 'db_table': "u'ref_bureau'", 'managed': 'False'},
+ 'actif': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'code': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'implantation': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['references.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['references.Region']", 'db_column': "'region'"})
+ },
+ 'references.employe': {
+ 'Meta': {'ordering': "['nom']", 'object_name': 'Employe', 'db_table': "u'ref_employe'", 'managed': 'False'},
+ 'actif': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'courriel': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+ 'date_entree': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'fonction': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+ 'genre': ('django.db.models.fields.CharField', [], {'max_length': '3'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'implantation': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'lieu_travail_theorique_de'", 'db_column': "'implantation'", 'to': "orm['references.Implantation']"}),
+ 'implantation_physique': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'lieu_travail_reel_de'", 'db_column': "'implantation_physique'", 'to': "orm['references.Implantation']"}),
+ 'mandat_debut': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'mandat_fin': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+ 'poste_type_1': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'poste_type_1'", 'null': 'True', 'db_column': "'poste_type_1'", 'to': "orm['references.PosteType']"}),
+ 'poste_type_2': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'poste_type_2'", 'null': 'True', 'db_column': "'poste_type_2'", 'to': "orm['references.PosteType']"}),
+ 'prenom': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+ 'responsable': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'responsable_de'", 'null': 'True', 'db_column': "'responsable'", 'to': "orm['references.Employe']"}),
+ 'service': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['references.Service']", 'db_column': "'service'"}),
+ 'telephone_ip': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+ 'telephone_ip_nomade': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+ 'telephone_poste': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'})
+ },
+ 'references.implantation': {
+ 'Meta': {'ordering': "['nom']", 'object_name': 'Implantation', 'db_table': "u'ref_implantation'", 'managed': 'False'},
+ 'actif': ('django.db.models.fields.BooleanField', [], {'default': '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['references.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['references.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['references.Implantation']", 'db_column': "'bureau_rattachement'"}),
+ '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.AutoField', [], {'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['references.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'}),
+ 'zone_administrative': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['references.ZoneAdministrative']"})
+ },
+ 'references.pays': {
+ 'Meta': {'ordering': "['nom']", 'object_name': 'Pays', 'db_table': "u'ref_pays'", 'managed': 'False'},
+ 'actif': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'code': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '2'}),
+ 'code_bureau': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['references.Bureau']", 'to_field': "'code'", 'null': 'True', 'db_column': "'code_bureau'", 'blank': 'True'}),
+ 'code_iso3': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '3'}),
+ 'developpement': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'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['references.Region']", 'db_column': "'region'"})
+ },
+ 'references.postetype': {
+ 'Meta': {'object_name': 'PosteType', 'db_table': "u'ref_poste_type'", 'managed': 'False'},
+ 'actif': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+ },
+ 'references.region': {
+ 'Meta': {'ordering': "['nom']", 'object_name': 'Region', 'db_table': "u'ref_region'", 'managed': 'False'},
+ 'actif': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'code': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'implantation_bureau': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'gere_region'", 'null': 'True', 'db_column': "'implantation_bureau'", 'to': "orm['references.Implantation']"}),
+ 'nom': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'})
+ },
+ 'references.service': {
+ 'Meta': {'ordering': "['nom']", 'object_name': 'Service', 'db_table': "u'ref_service'", 'managed': 'False'},
+ 'actif': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+ },
+ 'references.zoneadministrative': {
+ 'Meta': {'ordering': "['nom']", 'object_name': 'ZoneAdministrative', 'db_table': "'ref_zoneadministrative'", 'managed': 'False'},
+ 'actif': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'code': ('django.db.models.fields.CharField', [], {'max_length': '4', 'primary_key': 'True'}),
+ 'nom': ('django.db.models.fields.CharField', [], {'max_length': '100'})
+ },
+ 'reversion.revision': {
+ 'Meta': {'object_name': 'Revision'},
+ 'comment': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
+ 'date_created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'manager_slug': ('django.db.models.fields.CharField', [], {'default': "'default'", 'max_length': '200', 'db_index': 'True'}),
+ 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True', 'blank': 'True'})
+ },
+ 'rh.ayantdroit': {
+ 'Meta': {'ordering': "['nom']", 'object_name': 'AyantDroit'},
+ 'date_naissance': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'employe': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'ayantdroits'", 'db_column': "'employe'", 'to': "orm['rh.Employe']"}),
+ 'genre': ('django.db.models.fields.CharField', [], {'max_length': '1'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'lien_parente': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}),
+ 'nationalite': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'ayantdroits_nationalite'", 'db_column': "'nationalite'", 'to_field': "'code'", 'to': "orm['references.Pays']", 'blank': 'True', 'null': 'True'}),
+ 'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+ 'nom_affichage': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+ 'prenom': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+ },
+ 'rh.ayantdroitcommentaire': {
+ 'Meta': {'ordering': "['-date_creation']", 'object_name': 'AyantDroitCommentaire'},
+ 'ayant_droit': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'commentaires'", 'db_column': "'ayant_droit'", 'to': "orm['rh.AyantDroit']"}),
+ 'date_creation': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'owner': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'db_column': "'owner'", 'to': "orm['auth.User']"}),
+ 'texte': ('django.db.models.fields.TextField', [], {})
+ },
+ 'rh.categorieemploi': {
+ 'Meta': {'ordering': "('nom',)", 'object_name': 'CategorieEmploi'},
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+ },
+ 'rh.changementpersonnel': {
+ 'Meta': {'object_name': 'ChangementPersonnel'},
+ 'communique': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'date_communication': ('django.db.models.fields.DateTimeField', [], {}),
+ 'dossier': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'mouvements'", 'to': "orm['rh.Dossier']"}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'type': ('django.db.models.fields.CharField', [], {'max_length': '2'}),
+ 'valide': ('django.db.models.fields.BooleanField', [], {'default': 'True'})
+ },
+ 'rh.changementpersonnelnotifications': {
+ 'Meta': {'object_name': 'ChangementPersonnelNotifications'},
+ 'destinataires': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['references.Employe']", 'symmetrical': 'False'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'type': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '2'})
+ },
+ 'rh.classement': {
+ 'Meta': {'ordering': "['type', 'echelon', 'degre', 'coefficient']", 'object_name': 'Classement'},
+ 'archive': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'coefficient': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}),
+ 'commentaire': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'degre': ('django.db.models.fields.IntegerField', [], {'default': '0', 'blank': 'True'}),
+ 'echelon': ('django.db.models.fields.IntegerField', [], {'default': '0', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'type': ('django.db.models.fields.CharField', [], {'max_length': '10'})
+ },
+ 'rh.contrat': {
+ 'Meta': {'ordering': "['dossier__employe__nom']", 'object_name': 'Contrat'},
+ 'date_debut': ('django.db.models.fields.DateField', [], {'db_index': 'True'}),
+ 'date_fin': ('django.db.models.fields.DateField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}),
+ 'dossier': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'rh_contrats'", 'db_column': "'dossier'", 'to': "orm['rh.Dossier']"}),
+ 'fichier': ('django.db.models.fields.files.FileField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'type_contrat': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'db_column': "'type_contrat'", 'to': "orm['rh.TypeContrat']"})
+ },
+ 'rh.devise': {
+ 'Meta': {'ordering': "['code']", 'object_name': 'Devise'},
+ 'archive': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'code': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '10'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+ },
+ 'rh.dossier': {
+ 'Meta': {'ordering': "['employe__nom']", 'object_name': 'Dossier'},
+ 'classement': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'classement'", 'to': "orm['rh.Classement']"}),
+ 'date_creation': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'null': 'True', 'blank': 'True'}),
+ 'date_debut': ('django.db.models.fields.DateField', [], {'db_index': 'True'}),
+ 'date_fin': ('django.db.models.fields.DateField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}),
+ 'date_modification': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'null': 'True', 'blank': 'True'}),
+ 'employe': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'rh_dossiers'", 'db_column': "'employe'", 'to': "orm['rh.Employe']"}),
+ 'est_cadre': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'organisme_bstg': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'organisme_bstg'", 'to': "orm['rh.OrganismeBstg']"}),
+ 'poste': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'rh_dossiers'", 'db_column': "'poste'", 'to': "orm['rh.Poste']"}),
+ 'principal': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'regime_travail': ('django.db.models.fields.DecimalField', [], {'default': "'100.00'", 'null': 'True', 'max_digits': '12', 'decimal_places': '2'}),
+ 'regime_travail_nb_heure_semaine': ('django.db.models.fields.DecimalField', [], {'default': "'35.00'", 'null': 'True', 'max_digits': '12', 'decimal_places': '2'}),
+ 'remplacement': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'remplacement_de': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'to': "orm['rh.Dossier']"}),
+ 'statut': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'null': 'True', 'to': "orm['rh.Statut']"}),
+ 'statut_residence': ('django.db.models.fields.CharField', [], {'default': "'local'", 'max_length': '10', 'null': 'True'})
+ },
+ 'rh.dossiercommentaire': {
+ 'Meta': {'ordering': "['-date_creation']", 'object_name': 'DossierCommentaire'},
+ 'date_creation': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'null': 'True', 'blank': 'True'}),
+ 'dossier': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'commentaires'", 'db_column': "'dossier'", 'to': "orm['rh.Dossier']"}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'owner': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'db_column': "'owner'", 'to': "orm['auth.User']"}),
+ 'texte': ('django.db.models.fields.TextField', [], {})
+ },
+ 'rh.dossiercomparaison': {
+ 'Meta': {'object_name': 'DossierComparaison'},
+ 'devise': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'to': "orm['rh.Devise']"}),
+ 'dossier': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'rh_comparaisons'", 'to': "orm['rh.Dossier']"}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'implantation': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'to': "orm['references.Implantation']"}),
+ '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'})
+ },
+ 'rh.dossierpiece': {
+ 'Meta': {'ordering': "['nom']", 'object_name': 'DossierPiece'},
+ 'dossier': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'rh_dossierpieces'", 'db_column': "'dossier'", 'to': "orm['rh.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'})
+ },
+ 'rh.employe': {
+ 'Meta': {'ordering': "['nom', 'prenom']", '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'}),
+ 'courriel_perso': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
+ 'date_entree': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'date_naissance': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'genre': ('django.db.models.fields.CharField', [], {'max_length': '1'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'nationalite': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'employes_nationalite'", 'db_column': "'nationalite'", 'to_field': "'code'", 'to': "orm['references.Pays']", 'blank': 'True', 'null': 'True'}),
+ 'nb_postes': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+ 'nom_affichage': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+ 'pays': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'employes'", 'db_column': "'pays'", 'to_field': "'code'", 'to': "orm['references.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.employecommentaire': {
+ 'Meta': {'object_name': 'EmployeCommentaire'},
+ 'date_creation': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'null': 'True', 'blank': 'True'}),
+ 'employe': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'commentaires'", 'db_column': "'employe'", 'to': "orm['rh.Employe']"}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'owner': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'db_column': "'owner'", 'to': "orm['auth.User']"}),
+ 'texte': ('django.db.models.fields.TextField', [], {})
+ },
+ 'rh.employepiece': {
+ 'Meta': {'ordering': "['nom']", 'object_name': 'EmployePiece'},
+ 'employe': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'pieces'", 'db_column': "'employe'", 'to': "orm['rh.Employe']"}),
+ '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'})
+ },
+ 'rh.familleprofessionnelle': {
+ 'Meta': {'ordering': "('nom',)", 'object_name': 'FamilleProfessionnelle'},
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'nom': ('django.db.models.fields.CharField', [], {'max_length': '100'})
+ },
+ 'rh.modificationtraite': {
+ 'Meta': {'object_name': 'ModificationTraite'},
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'revision': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['reversion.Revision']"})
+ },
+ 'rh.organismebstg': {
+ 'Meta': {'ordering': "['type', 'nom']", 'object_name': 'OrganismeBstg'},
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+ 'pays': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'organismes_bstg'", 'db_column': "'pays'", 'to_field': "'code'", 'to': "orm['references.Pays']", 'blank': 'True', 'null': 'True'}),
+ 'type': ('django.db.models.fields.CharField', [], {'max_length': '10'})
+ },
+ 'rh.poste': {
+ 'Meta': {'ordering': "['nom']", 'object_name': 'Poste'},
+ 'appel': ('django.db.models.fields.CharField', [], {'default': "'interne'", 'max_length': '10', 'null': 'True'}),
+ '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'}),
+ 'classement_max': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'classement_max'", 'to': "orm['rh.Classement']"}),
+ 'classement_min': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'classement_min'", 'to': "orm['rh.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', 'null': 'True', 'blank': 'True'}),
+ 'date_debut': ('django.db.models.fields.DateField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}),
+ 'date_fin': ('django.db.models.fields.DateField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}),
+ 'date_modification': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'null': 'True', 'blank': 'True'}),
+ 'devise_comparaison': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'devise_comparaison'", 'to': "orm['rh.Devise']"}),
+ 'devise_max': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'null': 'True', 'db_column': "'devise_max'", 'to': "orm['rh.Devise']"}),
+ 'devise_min': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'null': 'True', 'db_column': "'devise_min'", 'to': "orm['rh.Devise']"}),
+ 'expatrie': ('django.db.models.fields.NullBooleanField', [], {'default': 'False', 'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'implantation': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'db_column': "'implantation'", 'to': "orm['references.Implantation']"}),
+ 'indemn_max': ('django.db.models.fields.DecimalField', [], {'default': '0', 'max_digits': '12', 'decimal_places': '2'}),
+ 'indemn_min': ('django.db.models.fields.DecimalField', [], {'default': '0', 'max_digits': '12', 'decimal_places': '2'}),
+ 'justification': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'local': ('django.db.models.fields.NullBooleanField', [], {'default': 'True', 'null': 'True', 'blank': 'True'}),
+ 'mise_a_disposition': ('django.db.models.fields.NullBooleanField', [], {'default': 'False', 'null': 'True', 'blank': 'True'}),
+ 'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+ 'nom_feminin': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}),
+ 'regime_travail': ('django.db.models.fields.DecimalField', [], {'default': "'100.00'", 'null': 'True', 'max_digits': '12', 'decimal_places': '2'}),
+ 'regime_travail_nb_heure_semaine': ('django.db.models.fields.DecimalField', [], {'default': "'35.00'", 'null': 'True', 'max_digits': '12', 'decimal_places': '2'}),
+ 'responsable': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'null': 'True', 'db_column': "'responsable'", 'to': "orm['rh.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': "'rh_postes'", 'null': 'True', 'db_column': "'service'", 'to': "orm['rh.Service']"}),
+ 'type_poste': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'null': 'True', 'db_column': "'type_poste'", 'to': "orm['rh.TypePoste']"}),
+ 'vacant': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}),
+ 'valeur_point_max': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'valeur_point_max'", 'to': "orm['rh.ValeurPoint']"}),
+ 'valeur_point_min': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'valeur_point_min'", 'to': "orm['rh.ValeurPoint']"})
+ },
+ 'rh.postecommentaire': {
+ 'Meta': {'ordering': "['-date_creation']", 'object_name': 'PosteCommentaire'},
+ 'date_creation': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'owner': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'db_column': "'owner'", 'to': "orm['auth.User']"}),
+ 'poste': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'commentaires'", 'db_column': "'poste'", 'to': "orm['rh.Poste']"}),
+ 'texte': ('django.db.models.fields.TextField', [], {})
+ },
+ 'rh.postecomparaison': {
+ 'Meta': {'object_name': 'PosteComparaison'},
+ 'devise': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'to': "orm['rh.Devise']"}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'implantation': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'to': "orm['references.Implantation']"}),
+ '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': "'rh_comparaisons_internes'", 'to': "orm['rh.Poste']"})
+ },
+ 'rh.postefinancement': {
+ 'Meta': {'ordering': "['type']", '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': "'rh_financements'", 'db_column': "'poste'", 'to': "orm['rh.Poste']"}),
+ 'pourcentage': ('django.db.models.fields.DecimalField', [], {'max_digits': '12', 'decimal_places': '2'}),
+ 'type': ('django.db.models.fields.CharField', [], {'max_length': '1'})
+ },
+ 'rh.postepiece': {
+ 'Meta': {'ordering': "['nom']", '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', [], {'related_name': "'rh_pieces'", 'db_column': "'poste'", 'to': "orm['rh.Poste']"})
+ },
+ 'rh.remuneration': {
+ 'Meta': {'object_name': 'Remuneration'},
+ 'commentaire': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+ 'date_debut': ('django.db.models.fields.DateField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}),
+ 'date_fin': ('django.db.models.fields.DateField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}),
+ 'devise': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'db_column': "'devise'", 'to': "orm['rh.Devise']"}),
+ 'dossier': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'rh_remunerations'", 'db_column': "'dossier'", 'to': "orm['rh.Dossier']"}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'montant': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '12', 'decimal_places': '2', 'blank': 'True'}),
+ 'type': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'db_column': "'type'", 'to': "orm['rh.TypeRemuneration']"}),
+ 'type_revalorisation': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'type_revalorisation'", 'to': "orm['rh.TypeRevalorisation']"})
+ },
+ 'rh.responsableimplantation': {
+ 'Meta': {'ordering': "['implantation__nom']", 'object_name': 'ResponsableImplantation'},
+ 'employe': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'employe'", 'to': "orm['rh.Employe']"}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'implantation': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'responsable'", 'unique': 'True', 'db_column': "'implantation'", 'to': "orm['references.Implantation']"})
+ },
+ 'rh.service': {
+ 'Meta': {'ordering': "['nom']", 'object_name': 'Service'},
+ 'archive': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+ },
+ 'rh.statut': {
+ 'Meta': {'ordering': "['code']", 'object_name': 'Statut'},
+ 'archive': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'code': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '25'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+ },
+ 'rh.tauxchange': {
+ 'Meta': {'ordering': "['-annee', 'devise__code']", 'unique_together': "(('devise', 'annee'),)", 'object_name': 'TauxChange'},
+ 'annee': ('django.db.models.fields.IntegerField', [], {}),
+ 'devise': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['rh.Devise']", 'db_column': "'devise'"}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'taux': ('django.db.models.fields.FloatField', [], {})
+ },
+ 'rh.typecontrat': {
+ 'Meta': {'ordering': "['nom']", 'object_name': 'TypeContrat'},
+ 'archive': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+ 'nom_long': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+ },
+ 'rh.typeposte': {
+ 'Meta': {'ordering': "['nom']", 'object_name': 'TypePoste'},
+ 'archive': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'categorie_emploi': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'db_column': "'categorie_emploi'", 'to': "orm['rh.CategorieEmploi']"}),
+ 'famille_professionnelle': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'types_de_poste'", 'null': 'True', 'to': "orm['rh.FamilleProfessionnelle']"}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'is_responsable': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+ 'nom_feminin': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+ },
+ 'rh.typeremuneration': {
+ 'Meta': {'ordering': "['nom']", 'object_name': 'TypeRemuneration'},
+ 'archive': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'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.typerevalorisation': {
+ 'Meta': {'ordering': "['nom']", 'object_name': 'TypeRevalorisation'},
+ 'archive': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+ },
+ 'rh.userprofile': {
+ 'Meta': {'object_name': 'UserProfile'},
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'user': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'profile'", 'unique': 'True', 'to': "orm['auth.User']"}),
+ 'zones_administratives': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'profiles'", 'symmetrical': 'False', 'to': "orm['references.ZoneAdministrative']"})
+ },
+ 'rh.valeurpoint': {
+ 'Meta': {'ordering': "['-annee', 'implantation__nom']", 'unique_together': "(('implantation', 'annee'),)", 'object_name': 'ValeurPoint'},
+ 'annee': ('django.db.models.fields.IntegerField', [], {}),
+ 'devise': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'db_column': "'devise'", 'to': "orm['rh.Devise']"}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'implantation': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'rh_valeur_point'", 'db_column': "'implantation'", 'to': "orm['references.Implantation']"}),
+ 'valeur': ('django.db.models.fields.FloatField', [], {'null': 'True'})
+ }
+ }
+
+ complete_apps = ['rh']
\ No newline at end of file
--- /dev/null
+# -*- coding: 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):
+
+ # Changing field 'ChangementPersonnel.date_communication'
+ db.alter_column('rh_changementpersonnel', 'date_communication', self.gf('django.db.models.fields.DateTimeField')(null=True))
+
+ def backwards(self, orm):
+
+ # User chose to not deal with backwards NULL issues for 'ChangementPersonnel.date_communication'
+ raise RuntimeError("Cannot reverse this migration. 'ChangementPersonnel.date_communication' and its values cannot be restored.")
+
+ models = {
+ 'auth.group': {
+ 'Meta': {'object_name': 'Group'},
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
+ 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'})
+ },
+ 'auth.permission': {
+ 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", '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'}),
+ 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ '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', [], {'unique': 'True', 'max_length': '30'})
+ },
+ 'contenttypes.contenttype': {
+ 'Meta': {'ordering': "('name',)", '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'})
+ },
+ 'references.bureau': {
+ 'Meta': {'ordering': "['nom']", 'object_name': 'Bureau', 'db_table': "u'ref_bureau'", 'managed': 'False'},
+ 'actif': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'code': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'implantation': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['references.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['references.Region']", 'db_column': "'region'"})
+ },
+ 'references.employe': {
+ 'Meta': {'ordering': "['nom']", 'object_name': 'Employe', 'db_table': "u'ref_employe'", 'managed': 'False'},
+ 'actif': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'courriel': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+ 'date_entree': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'fonction': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+ 'genre': ('django.db.models.fields.CharField', [], {'max_length': '3'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'implantation': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'lieu_travail_theorique_de'", 'db_column': "'implantation'", 'to': "orm['references.Implantation']"}),
+ 'implantation_physique': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'lieu_travail_reel_de'", 'db_column': "'implantation_physique'", 'to': "orm['references.Implantation']"}),
+ 'mandat_debut': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'mandat_fin': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+ 'poste_type_1': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'poste_type_1'", 'null': 'True', 'db_column': "'poste_type_1'", 'to': "orm['references.PosteType']"}),
+ 'poste_type_2': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'poste_type_2'", 'null': 'True', 'db_column': "'poste_type_2'", 'to': "orm['references.PosteType']"}),
+ 'prenom': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+ 'responsable': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'responsable_de'", 'null': 'True', 'db_column': "'responsable'", 'to': "orm['references.Employe']"}),
+ 'service': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['references.Service']", 'db_column': "'service'"}),
+ 'telephone_ip': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+ 'telephone_ip_nomade': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+ 'telephone_poste': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'})
+ },
+ 'references.implantation': {
+ 'Meta': {'ordering': "['nom']", 'object_name': 'Implantation', 'db_table': "u'ref_implantation'", 'managed': 'False'},
+ 'actif': ('django.db.models.fields.BooleanField', [], {'default': '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['references.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['references.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['references.Implantation']", 'db_column': "'bureau_rattachement'"}),
+ '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.AutoField', [], {'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['references.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'}),
+ 'zone_administrative': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['references.ZoneAdministrative']"})
+ },
+ 'references.pays': {
+ 'Meta': {'ordering': "['nom']", 'object_name': 'Pays', 'db_table': "u'ref_pays'", 'managed': 'False'},
+ 'actif': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'code': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '2'}),
+ 'code_bureau': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['references.Bureau']", 'to_field': "'code'", 'null': 'True', 'db_column': "'code_bureau'", 'blank': 'True'}),
+ 'code_iso3': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '3'}),
+ 'developpement': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'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['references.Region']", 'db_column': "'region'"})
+ },
+ 'references.postetype': {
+ 'Meta': {'object_name': 'PosteType', 'db_table': "u'ref_poste_type'", 'managed': 'False'},
+ 'actif': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+ },
+ 'references.region': {
+ 'Meta': {'ordering': "['nom']", 'object_name': 'Region', 'db_table': "u'ref_region'", 'managed': 'False'},
+ 'actif': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'code': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'implantation_bureau': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'gere_region'", 'null': 'True', 'db_column': "'implantation_bureau'", 'to': "orm['references.Implantation']"}),
+ 'nom': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'})
+ },
+ 'references.service': {
+ 'Meta': {'ordering': "['nom']", 'object_name': 'Service', 'db_table': "u'ref_service'", 'managed': 'False'},
+ 'actif': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+ },
+ 'references.zoneadministrative': {
+ 'Meta': {'ordering': "['nom']", 'object_name': 'ZoneAdministrative', 'db_table': "'ref_zoneadministrative'", 'managed': 'False'},
+ 'actif': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'code': ('django.db.models.fields.CharField', [], {'max_length': '4', 'primary_key': 'True'}),
+ 'nom': ('django.db.models.fields.CharField', [], {'max_length': '100'})
+ },
+ 'reversion.revision': {
+ 'Meta': {'object_name': 'Revision'},
+ 'comment': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
+ 'date_created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'manager_slug': ('django.db.models.fields.CharField', [], {'default': "'default'", 'max_length': '200', 'db_index': 'True'}),
+ 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True', 'blank': 'True'})
+ },
+ 'rh.ayantdroit': {
+ 'Meta': {'ordering': "['nom']", 'object_name': 'AyantDroit'},
+ 'date_naissance': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'employe': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'ayantdroits'", 'db_column': "'employe'", 'to': "orm['rh.Employe']"}),
+ 'genre': ('django.db.models.fields.CharField', [], {'max_length': '1'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'lien_parente': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}),
+ 'nationalite': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'ayantdroits_nationalite'", 'db_column': "'nationalite'", 'to_field': "'code'", 'to': "orm['references.Pays']", 'blank': 'True', 'null': 'True'}),
+ 'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+ 'nom_affichage': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+ 'prenom': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+ },
+ 'rh.ayantdroitcommentaire': {
+ 'Meta': {'ordering': "['-date_creation']", 'object_name': 'AyantDroitCommentaire'},
+ 'ayant_droit': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'commentaires'", 'db_column': "'ayant_droit'", 'to': "orm['rh.AyantDroit']"}),
+ 'date_creation': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'owner': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'db_column': "'owner'", 'to': "orm['auth.User']"}),
+ 'texte': ('django.db.models.fields.TextField', [], {})
+ },
+ 'rh.categorieemploi': {
+ 'Meta': {'ordering': "('nom',)", 'object_name': 'CategorieEmploi'},
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+ },
+ 'rh.changementpersonnel': {
+ 'Meta': {'object_name': 'ChangementPersonnel'},
+ 'communique': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'date_communication': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+ 'dossier': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'mouvements'", 'to': "orm['rh.Dossier']"}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'type': ('django.db.models.fields.CharField', [], {'max_length': '2'}),
+ 'valide': ('django.db.models.fields.BooleanField', [], {'default': 'True'})
+ },
+ 'rh.changementpersonnelnotifications': {
+ 'Meta': {'object_name': 'ChangementPersonnelNotifications'},
+ 'destinataires': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['references.Employe']", 'symmetrical': 'False'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'type': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '2'})
+ },
+ 'rh.classement': {
+ 'Meta': {'ordering': "['type', 'echelon', 'degre', 'coefficient']", 'object_name': 'Classement'},
+ 'archive': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'coefficient': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}),
+ 'commentaire': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'degre': ('django.db.models.fields.IntegerField', [], {'default': '0', 'blank': 'True'}),
+ 'echelon': ('django.db.models.fields.IntegerField', [], {'default': '0', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'type': ('django.db.models.fields.CharField', [], {'max_length': '10'})
+ },
+ 'rh.contrat': {
+ 'Meta': {'ordering': "['dossier__employe__nom']", 'object_name': 'Contrat'},
+ 'date_debut': ('django.db.models.fields.DateField', [], {'db_index': 'True'}),
+ 'date_fin': ('django.db.models.fields.DateField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}),
+ 'dossier': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'rh_contrats'", 'db_column': "'dossier'", 'to': "orm['rh.Dossier']"}),
+ 'fichier': ('django.db.models.fields.files.FileField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'type_contrat': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'db_column': "'type_contrat'", 'to': "orm['rh.TypeContrat']"})
+ },
+ 'rh.devise': {
+ 'Meta': {'ordering': "['code']", 'object_name': 'Devise'},
+ 'archive': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'code': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '10'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+ },
+ 'rh.dossier': {
+ 'Meta': {'ordering': "['employe__nom']", 'object_name': 'Dossier'},
+ 'classement': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'classement'", 'to': "orm['rh.Classement']"}),
+ 'date_creation': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'null': 'True', 'blank': 'True'}),
+ 'date_debut': ('django.db.models.fields.DateField', [], {'db_index': 'True'}),
+ 'date_fin': ('django.db.models.fields.DateField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}),
+ 'date_modification': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'null': 'True', 'blank': 'True'}),
+ 'employe': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'rh_dossiers'", 'db_column': "'employe'", 'to': "orm['rh.Employe']"}),
+ 'est_cadre': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'organisme_bstg': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'organisme_bstg'", 'to': "orm['rh.OrganismeBstg']"}),
+ 'poste': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'rh_dossiers'", 'db_column': "'poste'", 'to': "orm['rh.Poste']"}),
+ 'principal': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'regime_travail': ('django.db.models.fields.DecimalField', [], {'default': "'100.00'", 'null': 'True', 'max_digits': '12', 'decimal_places': '2'}),
+ 'regime_travail_nb_heure_semaine': ('django.db.models.fields.DecimalField', [], {'default': "'35.00'", 'null': 'True', 'max_digits': '12', 'decimal_places': '2'}),
+ 'remplacement': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'remplacement_de': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'to': "orm['rh.Dossier']"}),
+ 'statut': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'null': 'True', 'to': "orm['rh.Statut']"}),
+ 'statut_residence': ('django.db.models.fields.CharField', [], {'default': "'local'", 'max_length': '10', 'null': 'True'})
+ },
+ 'rh.dossiercommentaire': {
+ 'Meta': {'ordering': "['-date_creation']", 'object_name': 'DossierCommentaire'},
+ 'date_creation': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'null': 'True', 'blank': 'True'}),
+ 'dossier': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'commentaires'", 'db_column': "'dossier'", 'to': "orm['rh.Dossier']"}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'owner': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'db_column': "'owner'", 'to': "orm['auth.User']"}),
+ 'texte': ('django.db.models.fields.TextField', [], {})
+ },
+ 'rh.dossiercomparaison': {
+ 'Meta': {'object_name': 'DossierComparaison'},
+ 'devise': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'to': "orm['rh.Devise']"}),
+ 'dossier': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'rh_comparaisons'", 'to': "orm['rh.Dossier']"}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'implantation': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'to': "orm['references.Implantation']"}),
+ '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'})
+ },
+ 'rh.dossierpiece': {
+ 'Meta': {'ordering': "['nom']", 'object_name': 'DossierPiece'},
+ 'dossier': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'rh_dossierpieces'", 'db_column': "'dossier'", 'to': "orm['rh.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'})
+ },
+ 'rh.employe': {
+ 'Meta': {'ordering': "['nom', 'prenom']", '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'}),
+ 'courriel_perso': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
+ 'date_entree': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'date_naissance': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'genre': ('django.db.models.fields.CharField', [], {'max_length': '1'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'nationalite': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'employes_nationalite'", 'db_column': "'nationalite'", 'to_field': "'code'", 'to': "orm['references.Pays']", 'blank': 'True', 'null': 'True'}),
+ 'nb_postes': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+ 'nom_affichage': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+ 'pays': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'employes'", 'db_column': "'pays'", 'to_field': "'code'", 'to': "orm['references.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.employecommentaire': {
+ 'Meta': {'object_name': 'EmployeCommentaire'},
+ 'date_creation': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'null': 'True', 'blank': 'True'}),
+ 'employe': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'commentaires'", 'db_column': "'employe'", 'to': "orm['rh.Employe']"}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'owner': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'db_column': "'owner'", 'to': "orm['auth.User']"}),
+ 'texte': ('django.db.models.fields.TextField', [], {})
+ },
+ 'rh.employepiece': {
+ 'Meta': {'ordering': "['nom']", 'object_name': 'EmployePiece'},
+ 'employe': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'pieces'", 'db_column': "'employe'", 'to': "orm['rh.Employe']"}),
+ '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'})
+ },
+ 'rh.familleprofessionnelle': {
+ 'Meta': {'ordering': "('nom',)", 'object_name': 'FamilleProfessionnelle'},
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'nom': ('django.db.models.fields.CharField', [], {'max_length': '100'})
+ },
+ 'rh.modificationtraite': {
+ 'Meta': {'object_name': 'ModificationTraite'},
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'revision': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['reversion.Revision']"})
+ },
+ 'rh.organismebstg': {
+ 'Meta': {'ordering': "['type', 'nom']", 'object_name': 'OrganismeBstg'},
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+ 'pays': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'organismes_bstg'", 'db_column': "'pays'", 'to_field': "'code'", 'to': "orm['references.Pays']", 'blank': 'True', 'null': 'True'}),
+ 'type': ('django.db.models.fields.CharField', [], {'max_length': '10'})
+ },
+ 'rh.poste': {
+ 'Meta': {'ordering': "['nom']", 'object_name': 'Poste'},
+ 'appel': ('django.db.models.fields.CharField', [], {'default': "'interne'", 'max_length': '10', 'null': 'True'}),
+ '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'}),
+ 'classement_max': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'classement_max'", 'to': "orm['rh.Classement']"}),
+ 'classement_min': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'classement_min'", 'to': "orm['rh.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', 'null': 'True', 'blank': 'True'}),
+ 'date_debut': ('django.db.models.fields.DateField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}),
+ 'date_fin': ('django.db.models.fields.DateField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}),
+ 'date_modification': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'null': 'True', 'blank': 'True'}),
+ 'devise_comparaison': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'devise_comparaison'", 'to': "orm['rh.Devise']"}),
+ 'devise_max': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'null': 'True', 'db_column': "'devise_max'", 'to': "orm['rh.Devise']"}),
+ 'devise_min': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'null': 'True', 'db_column': "'devise_min'", 'to': "orm['rh.Devise']"}),
+ 'expatrie': ('django.db.models.fields.NullBooleanField', [], {'default': 'False', 'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'implantation': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'db_column': "'implantation'", 'to': "orm['references.Implantation']"}),
+ 'indemn_max': ('django.db.models.fields.DecimalField', [], {'default': '0', 'max_digits': '12', 'decimal_places': '2'}),
+ 'indemn_min': ('django.db.models.fields.DecimalField', [], {'default': '0', 'max_digits': '12', 'decimal_places': '2'}),
+ 'justification': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'local': ('django.db.models.fields.NullBooleanField', [], {'default': 'True', 'null': 'True', 'blank': 'True'}),
+ 'mise_a_disposition': ('django.db.models.fields.NullBooleanField', [], {'default': 'False', 'null': 'True', 'blank': 'True'}),
+ 'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+ 'nom_feminin': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}),
+ 'regime_travail': ('django.db.models.fields.DecimalField', [], {'default': "'100.00'", 'null': 'True', 'max_digits': '12', 'decimal_places': '2'}),
+ 'regime_travail_nb_heure_semaine': ('django.db.models.fields.DecimalField', [], {'default': "'35.00'", 'null': 'True', 'max_digits': '12', 'decimal_places': '2'}),
+ 'responsable': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'null': 'True', 'db_column': "'responsable'", 'to': "orm['rh.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': "'rh_postes'", 'null': 'True', 'db_column': "'service'", 'to': "orm['rh.Service']"}),
+ 'type_poste': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'null': 'True', 'db_column': "'type_poste'", 'to': "orm['rh.TypePoste']"}),
+ 'vacant': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}),
+ 'valeur_point_max': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'valeur_point_max'", 'to': "orm['rh.ValeurPoint']"}),
+ 'valeur_point_min': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'valeur_point_min'", 'to': "orm['rh.ValeurPoint']"})
+ },
+ 'rh.postecommentaire': {
+ 'Meta': {'ordering': "['-date_creation']", 'object_name': 'PosteCommentaire'},
+ 'date_creation': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'owner': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'db_column': "'owner'", 'to': "orm['auth.User']"}),
+ 'poste': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'commentaires'", 'db_column': "'poste'", 'to': "orm['rh.Poste']"}),
+ 'texte': ('django.db.models.fields.TextField', [], {})
+ },
+ 'rh.postecomparaison': {
+ 'Meta': {'object_name': 'PosteComparaison'},
+ 'devise': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'to': "orm['rh.Devise']"}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'implantation': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'to': "orm['references.Implantation']"}),
+ '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': "'rh_comparaisons_internes'", 'to': "orm['rh.Poste']"})
+ },
+ 'rh.postefinancement': {
+ 'Meta': {'ordering': "['type']", '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': "'rh_financements'", 'db_column': "'poste'", 'to': "orm['rh.Poste']"}),
+ 'pourcentage': ('django.db.models.fields.DecimalField', [], {'max_digits': '12', 'decimal_places': '2'}),
+ 'type': ('django.db.models.fields.CharField', [], {'max_length': '1'})
+ },
+ 'rh.postepiece': {
+ 'Meta': {'ordering': "['nom']", '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', [], {'related_name': "'rh_pieces'", 'db_column': "'poste'", 'to': "orm['rh.Poste']"})
+ },
+ 'rh.remuneration': {
+ 'Meta': {'object_name': 'Remuneration'},
+ 'commentaire': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+ 'date_debut': ('django.db.models.fields.DateField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}),
+ 'date_fin': ('django.db.models.fields.DateField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}),
+ 'devise': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'db_column': "'devise'", 'to': "orm['rh.Devise']"}),
+ 'dossier': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'rh_remunerations'", 'db_column': "'dossier'", 'to': "orm['rh.Dossier']"}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'montant': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '12', 'decimal_places': '2', 'blank': 'True'}),
+ 'type': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'db_column': "'type'", 'to': "orm['rh.TypeRemuneration']"}),
+ 'type_revalorisation': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'type_revalorisation'", 'to': "orm['rh.TypeRevalorisation']"})
+ },
+ 'rh.responsableimplantation': {
+ 'Meta': {'ordering': "['implantation__nom']", 'object_name': 'ResponsableImplantation'},
+ 'employe': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'employe'", 'to': "orm['rh.Employe']"}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'implantation': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'responsable'", 'unique': 'True', 'db_column': "'implantation'", 'to': "orm['references.Implantation']"})
+ },
+ 'rh.service': {
+ 'Meta': {'ordering': "['nom']", 'object_name': 'Service'},
+ 'archive': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+ },
+ 'rh.statut': {
+ 'Meta': {'ordering': "['code']", 'object_name': 'Statut'},
+ 'archive': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'code': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '25'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+ },
+ 'rh.tauxchange': {
+ 'Meta': {'ordering': "['-annee', 'devise__code']", 'unique_together': "(('devise', 'annee'),)", 'object_name': 'TauxChange'},
+ 'annee': ('django.db.models.fields.IntegerField', [], {}),
+ 'devise': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['rh.Devise']", 'db_column': "'devise'"}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'taux': ('django.db.models.fields.FloatField', [], {})
+ },
+ 'rh.typecontrat': {
+ 'Meta': {'ordering': "['nom']", 'object_name': 'TypeContrat'},
+ 'archive': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+ 'nom_long': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+ },
+ 'rh.typeposte': {
+ 'Meta': {'ordering': "['nom']", 'object_name': 'TypePoste'},
+ 'archive': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'categorie_emploi': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'db_column': "'categorie_emploi'", 'to': "orm['rh.CategorieEmploi']"}),
+ 'famille_professionnelle': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'types_de_poste'", 'null': 'True', 'to': "orm['rh.FamilleProfessionnelle']"}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'is_responsable': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+ 'nom_feminin': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+ },
+ 'rh.typeremuneration': {
+ 'Meta': {'ordering': "['nom']", 'object_name': 'TypeRemuneration'},
+ 'archive': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'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.typerevalorisation': {
+ 'Meta': {'ordering': "['nom']", 'object_name': 'TypeRevalorisation'},
+ 'archive': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+ },
+ 'rh.userprofile': {
+ 'Meta': {'object_name': 'UserProfile'},
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'user': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'profile'", 'unique': 'True', 'to': "orm['auth.User']"}),
+ 'zones_administratives': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'profiles'", 'symmetrical': 'False', 'to': "orm['references.ZoneAdministrative']"})
+ },
+ 'rh.valeurpoint': {
+ 'Meta': {'ordering': "['-annee', 'implantation__nom']", 'unique_together': "(('implantation', 'annee'),)", 'object_name': 'ValeurPoint'},
+ 'annee': ('django.db.models.fields.IntegerField', [], {}),
+ 'devise': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'db_column': "'devise'", 'to': "orm['rh.Devise']"}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'implantation': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'rh_valeur_point'", 'db_column': "'implantation'", 'to': "orm['references.Implantation']"}),
+ 'valeur': ('django.db.models.fields.FloatField', [], {'null': 'True'})
+ }
+ }
+
+ complete_apps = ['rh']
\ No newline at end of file
from django.core.files.storage import FileSystemStorage
from django.db import models
from django.db.models import Q
+from django.db.models.signals import post_save, pre_save
from django.conf import settings
from project.rh.change_list import \
u"Ce dossier est pour le principal poste occupé par l'employé"
)
)
+
reversion.register(Dossier, format='xml', follow=[
'rh_dossierpieces', 'rh_comparaisons', 'rh_remunerations',
return self.user.__unicode__()
reversion.register(UserProfile, format='xml')
+
+
+
+TYPES_CHANGEMENT = (
+ ('NO', 'Nouveau personnel'),
+ ('MO', 'Mouvement de personnel'),
+ ('DE', 'Départ de personnel'),
+ )
+
+
+class ChangementPersonnelNotifications(models.Model):
+ class Meta:
+ verbose_name = u"Destinataire pour notices de changement de personnel"
+ verbose_name_plural = u"Destinataires pour notices de changement de personnel"
+
+ type = models.CharField(
+ max_length=2,
+ choices = TYPES_CHANGEMENT,
+ unique=True,
+ )
+
+ destinataires = models.ManyToManyField(
+ ref.Employe,
+ related_name='changement_notifications',
+ )
+
+ def __unicode__(self):
+ return '%s: %s' % (
+ self.get_type_display(), ','.join(
+ self.destinataires.all().values_list(
+ 'courriel', flat=True))
+ )
+
+
+class ChangementPersonnel(models.Model):
+ """
+ Une notice qui enregistre un changement de personnel, incluant:
+
+ * Nouveaux employés
+ * Mouvement de personnel
+ * Départ d'employé
+ """
+
+ class Meta:
+ verbose_name = u"Notification de changement du personnel"
+ verbose_name_plural = u"Notifications de changement du personnel"
+
+ def __unicode__(self):
+ return '%s: %s' % (self.dossier.__unicode__(),
+ self.get_type_display())
+
+ @classmethod
+ def create_changement(cls, dossier, type):
+ # If this employe has existing Changement, set them to invalid.
+ cls.objects.filter(dossier__employe=dossier.employe).update(valide=False)
+
+ # Create a new one.
+ cls.objects.create(
+ dossier=dossier,
+ type=type,
+ valide=True,
+ communique=False,
+ )
+
+
+ @classmethod
+ def pre_save_handler(cls,
+ sender,
+ instance,
+ using,
+ **kw):
+ # Store a copy of the model before save is called.
+ if instance.pk is not None:
+ instance.before_save = Dossier.objects.get(pk=instance.pk)
+ else:
+ instance.before_save = None
+
+
+ @classmethod
+ def post_save_handler(cls,
+ sender,
+ instance,
+ created,
+ using,
+ **kw):
+
+ # This defines the time limit used when checking in previous
+ # files to see if an employee if new. Basically, if emloyee
+ # left his position new_file.date_debut -
+ # NEW_EMPLOYE_THRESHOLD +1 ago (compared to date_debut), then
+ # if a new file is created for this employee, he will bec
+ # onsidered "NEW" and a notice will be created to this effect.
+ NEW_EMPLOYE_THRESHOLD = datetime.timedelta(7) # 7 days.
+
+ other_dossier_qs = instance.employe.rh_dossiers.exclude(
+ id=instance.id)
+ dd = instance.date_debut
+ df = instance.date_fin
+
+ # Here, verify differences between the instance, before and
+ # after the save.
+ if created:
+ if instance.before_save.date_fin != None:
+ df_has_changed = True
+ else:
+ df_has_changed = (df != instance.before_save.date_fin and
+ df != None)
+
+
+ # VERIFICATIONS:
+
+ # Date de fin est None et c'est une nouvelle instance de
+ # Dossier
+ if not df and created:
+ # QS for finding other dossiers with a date_fin of None OR
+ # with a date_fin >= to this dossier's date_debut
+ exists_recent_file_qs = other_dossier_qs.filter(
+ Q(date_fin__isnull=True) |
+ Q(date_fin__gte=dd - NEW_EMPLOYE_THRESHOLD)
+ )
+
+ # 1. If existe un Dossier récent, et c'est une nouvelle
+ # instance de Dossier:
+ if exists_recent_file_qs.count() > 0:
+ cls.create_changement(
+ instance,
+ 'MO',
+ )
+ # 2. Il n'existe un Dossier récent, et c'est une nouvelle
+ # instance de Dossier:
+ else:
+ cls.create_changement(
+ instance,
+ 'NO',
+ )
+
+
+ # Date de fin a été modifiée:
+ if df_has_changed:
+ # QS for other active files (date_fin == None), excludes
+ # instance.
+ exists_active_files_qs = other_dossier_qs.filter(
+ Q(date_fin__isnull=True))
+
+ # 3. Date de fin a été modifiée et il n'existe aucun autre
+ # dossier actifs: Depart
+ if exists_active_files_qs.count() == 0:
+ cls.create_changement(
+ instance,
+ 'DE',
+ )
+ # 4. Dossier a une nouvelle date de fin par contre
+ # d'autres dossiers actifs existent déjà: Mouvement
+ else:
+ cls.create_changement(
+ instance,
+ 'MO',
+ )
+
+
+ dossier = models.ForeignKey(
+ Dossier,
+ related_name='mouvements',
+ )
+
+ valide = models.BooleanField(default=True)
+ communique = models.BooleanField(default=False)
+ date_communication = models.DateTimeField(
+ null=True,
+ blank=True,
+ )
+
+ type = models.CharField(
+ max_length=2,
+ choices = TYPES_CHANGEMENT,
+ )
+
+reversion.register(ChangementPersonnel, format='xml')
+
+
+post_save.connect(ChangementPersonnel.post_save_handler, sender=Dossier)
+pre_save.connect(ChangementPersonnel.pre_save_handler, sender=Dossier)