From e8b6a20c09471990377ed9b146e8eff3f298c510 Mon Sep 17 00:00:00 2001 From: "Benoit C. Sirois" Date: Wed, 13 Feb 2013 10:40:00 -0500 Subject: [PATCH] =?utf8?q?Multiples=20zones=20par=20user=20impl=C3=A9ment=C3?= =?utf8?q?=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .gitignore | 1 + project/decorators.py | 8 +- project/groups.py | 32 +- project/permissions.py | 13 +- project/rh/admin.py | 30 +- project/rh/change_list.py | 11 +- project/rh/managers.py | 8 +- .../rh/migrations/0038_auto__add_userprofile.py | 481 +++++++++++++++++++ project/rh/migrations/0039_copier_zones_profile.py | 499 ++++++++++++++++++++ project/rh/models.py | 16 + 10 files changed, 1065 insertions(+), 34 deletions(-) create mode 100644 project/rh/migrations/0038_auto__add_userprofile.py create mode 100644 project/rh/migrations/0039_copier_zones_profile.py diff --git a/.gitignore b/.gitignore index 8404e92..eb9a49f 100644 --- a/.gitignore +++ b/.gitignore @@ -6,6 +6,7 @@ .*.swp *~ \#*# +\.\#* src/* # DB de dev diff --git a/project/decorators.py b/project/decorators.py index c386666..0424878 100644 --- a/project/decorators.py +++ b/project/decorators.py @@ -67,11 +67,9 @@ def region_protected(model): if groups.CORRESPONDANT_RH in user_groups or \ groups.ADMINISTRATEURS in user_groups or \ groups.DIRECTEUR_DE_BUREAU in user_groups: - employe = groups.get_employe_from_user(request.user) - q = Q(**{ - model.prefix_implantation: - employe.implantation.zone_administrative - }) + zones = groups.get_zones_from_user(request.user) + qkey = '%s__in' % model.prefix_implantation + q = Q(**{ qkey: zones }) qs = model.objects.filter(q) if int(id) in [o.id for o in qs]: return func(request, id) diff --git a/project/groups.py b/project/groups.py index 815ff8c..49abd36 100644 --- a/project/groups.py +++ b/project/groups.py @@ -14,6 +14,16 @@ HAUTE_DIRECTION = 'Haute direction' SERVICE_UTILISATEURS = 'Service utilisateurs' +def get_zones_from_user(user): + from auf.django.references import models as ref + try: + profile = user.profile + except ObjectDoesNotExist: + return ref.ZoneAdministrative.objects.none() + else: + return profile.zones_administratives.all() + + def get_employe_from_user(user): """ Retourne un employé AUF à partir de son user Django. @@ -28,10 +38,24 @@ def get_employe_from_user(user): def is_user_dans_services_centraux(user): - employe = get_employe_from_user(user) - if employe.id == 2190: # rola saade gère les DAE des Amériques - return False - return employe.implantation_id in (15, 19) + # Set de codes de zones. + zones = set() + + # Set de comparaison (services centraux Montreal et Paris) + central_zones = set(['SCM', 'SCP']) + + # Ajout de zones du profil, si existantes. + try: + profile = user.profile + except ObjectDoesNotExist: + pass + else: + zones.update([ + x[0] for x in profile.zones_administratives + .all().values_list('code') + ]) + + return len(central_zones.intersection(zones)) > 0 def is_user_dans_region(user): diff --git a/project/permissions.py b/project/permissions.py index c9318b3..d722826 100644 --- a/project/permissions.py +++ b/project/permissions.py @@ -1,9 +1,10 @@ # -*- encoding: utf-8 -* from project import groups -from project.groups import get_employe_from_user +from project.groups import get_employe_from_user, get_zones_from_user from project.decorators import in_drh_or_admin +from auf.django.references import models as ref from rh import models as rh def user_gere_obj_de_sa_region(user): @@ -36,19 +37,15 @@ def user_can_change_obj(user, obj): def user_can_delete_obj(user, obj): return in_drh_or_admin(user) + # helpers def obj_in_region_user(user, obj): - region_user = get_region_user(user) + zones = get_zones_from_user(user) if isinstance(obj, rh.Employe): return True if isinstance(obj, rh.Dossier): return True if isinstance(obj, rh.Poste): - return obj.implantation.zone_administrative == region_user + return obj.implantation.zone_administrative in zones return False -def get_region_user(user): - # gère actuellement qu'une seule région par user - employe = get_employe_from_user(user) - region_user = employe.implantation.zone_administrative - return region_user diff --git a/project/rh/admin.py b/project/rh/admin.py index f70f405..04ca2ef 100644 --- a/project/rh/admin.py +++ b/project/rh/admin.py @@ -5,6 +5,8 @@ import datetime import reversion from ajax_select import make_ajax_form from auf.django.references import models as ref +from django.contrib.auth.admin import UserAdmin +from django.contrib.auth.models import User from django import forms from django.core.urlresolvers import reverse from django.contrib import admin @@ -21,8 +23,7 @@ from project.permissions import user_gere_obj_de_sa_region, \ user_can_list_obj, \ user_can_add_obj, \ user_can_change_obj, \ - user_can_delete_obj, \ - get_region_user + user_can_delete_obj from project.rh.forms import ContratForm, AyantDroitForm, EmployeAdminForm, \ AjaxSelect, DossierForm, ResponsableInlineForm @@ -149,10 +150,9 @@ class ProtectRegionMixin(object): if listing_par_defaut(self.model, request): if user_gere_obj_de_sa_region(request.user): params = request.GET.copy() - employe = groups.get_employe_from_user(request.user) - za = employe.implantation.zone_administrative.code - prefix_za = "%s__code__exact" % self.model.prefix_implantation - params.update({prefix_za: za}) + zones = groups.get_zones_from_user(request.user) + prefix_za = "%s__in" % self.model.prefix_implantation + params.update({prefix_za: zones}) request.GET = params return super(ProtectRegionMixin, self) \ .changelist_view(request, extra_context) @@ -164,9 +164,9 @@ class ProtectRegionMixin(object): return qs if user_gere_obj_de_sa_region(request.user): - region_user = get_region_user(request.user) - q = Q(**{self.model.prefix_implantation: \ - region_user}) + zones = groups.get_zones_from_user(request.user) + qkey = '%s__in' % self.model.prefix_implantation + q = Q(**{qkey: zones}) qs = qs.filter(q).distinct() return qs return qs.none() @@ -454,6 +454,7 @@ class DossierAdmin(DateRangeMixin, ProtectRegionMixin, reversion.VersionAdmin, if key in ( 'employe__nom__istartswith', 'poste__implantation__zone_administrative__code__exact', + 'poste__implantation__zone_administrative__in', 'poste__implantation__id__exact', 'poste__type_poste__id__exact', 'poste__type_poste__categorie_emploi__id__exact', @@ -1338,6 +1339,17 @@ class RegionProxyAdmin(BaseAdmin): _organigramme.short_description = "Organigramme" +class ProfileInline(admin.StackedInline): + model = rh.UserProfile + + +class RHUserAdmin(UserAdmin): + inlines = list(UserAdmin.inlines) + [ProfileInline] + + +admin.site.unregister(User) +admin.site.register(User, RHUserAdmin) + admin.site.register(rh.Classement, ClassementAdmin) admin.site.register(rh.Devise, DeviseAdmin) admin.site.register(rh.Dossier, DossierAdmin) diff --git a/project/rh/change_list.py b/project/rh/change_list.py index f3ad620..52794d6 100644 --- a/project/rh/change_list.py +++ b/project/rh/change_list.py @@ -166,10 +166,13 @@ class ChangeList(DjangoChangeList, RechercheTemporelle): raise IncorrectLookupParameters use_distinct = field_needs_distinct(f) - # if key ends with __in, split parameter into separate values - if key.endswith('__in'): - value = value.split(',') - lookup_params[key] = value + # Commenting out, not sure why we try to .split() a + # iterable / queryset, but it doesn't seem to work. Hope + # i'm not breaking something. + # if key ends with __in, split parameter into separate + # values + # if key.endswith('__in'): + # lookup_params[key] = value # if key ends with __isnull, special case '' and false if key.endswith('__isnull'): diff --git a/project/rh/managers.py b/project/rh/managers.py index f51093a..1080208 100644 --- a/project/rh/managers.py +++ b/project/rh/managers.py @@ -27,10 +27,10 @@ class SecurityManager(models.Manager): # TRAITEMENT NORMAL ############################################ # REGION - q = Q(**{ - self.prefixe_implantation: - employe.implantation.zone_administrative - }) + + # Zones administratives attribuées au profil. + zones = groups.get_zones_from_user(user) + q = Q(**{'%s__in' % self.prefixe_implantation: zones }) # SERVICE if self.prefixe_service \ diff --git a/project/rh/migrations/0038_auto__add_userprofile.py b/project/rh/migrations/0038_auto__add_userprofile.py new file mode 100644 index 0000000..d01b054 --- /dev/null +++ b/project/rh/migrations/0038_auto__add_userprofile.py @@ -0,0 +1,481 @@ +# -*- 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 'UserProfile' + db.create_table('rh_userprofile', ( + ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), + ('user', self.gf('django.db.models.fields.related.OneToOneField')(related_name='profile', unique=True, to=orm['auth.User'])), + )) + db.send_create_signal('rh', ['UserProfile']) + + # Adding M2M table for field zones_administratives on 'UserProfile' + db.create_table('rh_userprofile_zones_administratives', ( + ('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)), + ('userprofile', models.ForeignKey(orm['rh.userprofile'], null=False)), + ('zoneadministrative', models.ForeignKey(orm['references.zoneadministrative'], null=False)) + )) + db.create_unique('rh_userprofile_zones_administratives', ['userprofile_id', 'zoneadministrative_id']) + + def backwards(self, orm): + # Deleting model 'UserProfile' + db.delete_table('rh_userprofile') + + # Removing M2M table for field zones_administratives on 'UserProfile' + db.delete_table('rh_userprofile_zones_administratives') + + + 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.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.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.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.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']"}), + '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', [], {'to': "orm['references.ZoneAdministrative']", 'symmetrical': 'False'}) + }, + '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'] diff --git a/project/rh/migrations/0039_copier_zones_profile.py b/project/rh/migrations/0039_copier_zones_profile.py new file mode 100644 index 0000000..458166d --- /dev/null +++ b/project/rh/migrations/0039_copier_zones_profile.py @@ -0,0 +1,499 @@ +# -*- coding: utf-8 -*- +import datetime +from south.db import db +from south.v2 import DataMigration +from django.db import models + +class Migration(DataMigration): + + def forwards(self, orm): + "Write your forwards methods here." + for empl in orm['references.employe'].objects.all(): + try: + users = orm['auth.user'].objects.filter(email=empl.courriel) + except orm['auth.user'].DoesNotExist: + pass + else: + for u in users: + if orm['rh.userprofile'].objects.filter( + user=u).count() == 0: + pr = orm['rh.userprofile'].objects.create( + user=u) + pr.zones_administratives.add(empl.implantation.zone_administrative) + + def backwards(self, orm): + "Write your backwards methods here." + if raw_input('Ceci ca effacer les associations ' + 'd\'utilisateurs avec leurs zones ' + 'administratives. Confirmer en appuyant sur ' + 'O et "Enter"') != 'O': + raise Exception('Unable to complete migration') + + 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.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.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.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.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']"}), + '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'}) + }, + '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'}), + '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']"}), + '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'}) + } + } + + complete_apps = ['rh'] + symmetrical = True diff --git a/project/rh/models.py b/project/rh/models.py index 33306c6..abe1c4f 100644 --- a/project/rh/models.py +++ b/project/rh/models.py @@ -8,6 +8,7 @@ import reversion from auf.django.emploi.models import \ GENRE_CHOICES, SITUATION_CHOICES # devrait plutot être dans references from auf.django.references import models as ref +from django.contrib.auth.models import User from django.core.files.storage import FileSystemStorage from django.db import models from django.db.models import Q @@ -16,6 +17,7 @@ from django.conf import settings from project.rh.change_list import \ RechercheTemporelle, KEY_STATUT, STATUT_ACTIF, STATUT_INACTIF, \ STATUT_FUTUR +from project import groups from project.rh.managers import ( PosteManager, DossierManager, @@ -1656,3 +1658,17 @@ class ResponsableImplantation(models.Model): reversion.register(ResponsableImplantation, format='xml') +class UserProfile(models.Model): + user = models.OneToOneField(User, related_name='profile') + zones_administratives = models.ManyToManyField( + ref.ZoneAdministrative, + related_name='profiles' + ) + class Meta: + verbose_name = "Permissions sur zones administratives" + verbose_name_plural = "Permissions sur zones administratives" + + def __unicode__(self): + return self.user.__unicode__() + +reversion.register(UserProfile, format='xml') -- 1.7.10.4