From: PA Parent Date: Fri, 3 Aug 2012 15:22:39 +0000 (-0400) Subject: Ajout modele OffreEmploiEvaluateur et la mécanique X-Git-Tag: bug_etat_transition~34^2~5^2~3 X-Git-Url: http://git.auf.org/?p=auf_rh_dae.git;a=commitdiff_plain;h=d6b00a652fa6e923bdc245b1e766df351e8f2f20 Ajout modele OffreEmploiEvaluateur et la mécanique --- diff --git a/project/recrutement/admin.py b/project/recrutement/admin.py index 8632b6f..5110568 100644 --- a/project/recrutement/admin.py +++ b/project/recrutement/admin.py @@ -25,7 +25,7 @@ from project.recrutement.forms import OffreEmploiForm from project.recrutement.models import \ Evaluateur, CandidatEvaluation, \ ProxyOffreEmploi, ProxyCandidat, MesCandidatEvaluation, \ - CourrielTemplate + CourrielTemplate, OffreEmploiEvaluateur ### CONSTANTES IMPLANTATIONS_CENTRALES = [15, 19] @@ -841,6 +841,10 @@ class MesCandidatEvaluationAdmin(CandidatEvaluationAdmin): return qs.filter(id__in=candidats_evaluations_ids) +class OffreEmploiEvaluateurAdmin(BaseAdmin): + pass + + class CourrielTemplateAdmin(BaseAdmin, VersionAdmin): ### Actions à afficher def get_actions(self, request): @@ -856,3 +860,4 @@ admin.site.register(CandidatEvaluation, CandidatEvaluationAdmin) admin.site.register(MesCandidatEvaluation, MesCandidatEvaluationAdmin) admin.site.register(Evaluateur, EvaluateurAdmin) admin.site.register(CourrielTemplate, CourrielTemplateAdmin) +admin.site.register(OffreEmploiEvaluateur, OffreEmploiEvaluateurAdmin) diff --git a/project/recrutement/migrations/0005_auto__add_offreemploievaluateur.py b/project/recrutement/migrations/0005_auto__add_offreemploievaluateur.py new file mode 100644 index 0000000..502b960 --- /dev/null +++ b/project/recrutement/migrations/0005_auto__add_offreemploievaluateur.py @@ -0,0 +1,241 @@ +# encoding: utf-8 +import datetime +from south.db import db +from south.v2 import SchemaMigration +from django.db import models + +class Migration(SchemaMigration): + + def forwards(self, orm): + + # Adding model 'OffreEmploiEvaluateur' + db.create_table('recrutement_offreemploievaluateur', ( + ('offre_emploi', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['emploi.OffreEmploi'], db_column='offre_emploi')), + ('evaluateur', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['recrutement.Evaluateur'], db_column='evaluateur')), + ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), + )) + db.send_create_signal('recrutement', ['OffreEmploiEvaluateur']) + + + def backwards(self, orm): + + # Deleting model 'OffreEmploiEvaluateur' + db.delete_table('recrutement_offreemploievaluateur') + + + 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': {'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, + 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) + }, + 'auth.user': { + 'Meta': {'object_name': 'User'}, + 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), + 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), + 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}), + 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), + 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), + 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), + 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), + 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), + 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) + }, + 'contenttypes.contenttype': { + 'Meta': {'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, + 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) + }, + 'emploi.candidat': { + 'Meta': {'object_name': 'Candidat'}, + 'actif': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}), + 'adresse': ('django.db.models.fields.CharField', [], {'max_length': '255'}), + 'code_postal': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}), + 'date_creation': ('django.db.models.fields.DateField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'domaine_professionnel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), + 'email': ('django.db.models.fields.EmailField', [], {'max_length': '255'}), + 'employeur_actuel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), + 'etat_province': ('django.db.models.fields.CharField', [], {'max_length': '255', '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': "'+'", 'db_column': "'nationalite'", 'to': "orm['references.Pays']"}), + 'niveau_diplome': ('django.db.models.fields.CharField', [], {'max_length': '255'}), + 'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'}), + 'nombre_dependant': ('django.db.models.fields.IntegerField', [], {}), + 'offre_emploi': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'db_column': "'offre_emploi'", 'to': "orm['emploi.OffreEmploi']"}), + 'pays': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'db_column': "'pays'", 'to': "orm['references.Pays']"}), + 'poste_actuel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), + 'prenom': ('django.db.models.fields.CharField', [], {'max_length': '255'}), + 'situation_famille': ('django.db.models.fields.CharField', [], {'max_length': '1'}), + 'statut': ('django.db.models.fields.CharField', [], {'default': "'NOUV'", 'max_length': '4'}), + 'telephone': ('django.db.models.fields.CharField', [], {'max_length': '255'}), + 'ville': ('django.db.models.fields.CharField', [], {'max_length': '255'}) + }, + 'emploi.offreemploi': { + 'Meta': {'object_name': 'OffreEmploi'}, + 'actif': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}), + 'bureau': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['references.Bureau']", 'db_column': "'bureau'"}), + 'date_creation': ('django.db.models.fields.DateField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'date_limite': ('django.db.models.fields.DateField', [], {}), + 'debut_affectation': ('django.db.models.fields.DateField', [], {}), + 'description': ('django.db.models.fields.TextField', [], {}), + 'duree_affectation': ('django.db.models.fields.CharField', [], {'max_length': '255'}), + 'est_affiche': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'lieu_affectation': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['references.Implantation']", 'db_column': "'implantation'"}), + 'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'}), + 'poste': ('django.db.models.fields.CharField', [], {'max_length': '255'}), + 'poste_nom': ('django.db.models.fields.CharField', [], {'max_length': '255'}), + 'region': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['references.Region']", 'db_column': "'region'"}), + 'renumeration': ('django.db.models.fields.CharField', [], {'max_length': '255'}), + 'resume': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'statut': ('django.db.models.fields.CharField', [], {'default': "'NOUV'", 'max_length': '4'}) + }, + 'recrutement.candidat': { + 'Meta': {'object_name': 'Candidat', 'db_table': "'emploi_candidat'", '_ormbases': ['emploi.Candidat']} + }, + 'recrutement.candidatcourriel': { + 'Meta': {'object_name': 'CandidatCourriel'}, + 'candidats': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['emploi.Candidat']", 'symmetrical': 'False'}), + 'html': ('tinymce.models.HTMLField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'plain_text': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'sujet': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}), + 'template': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'db_column': "'template'", 'to': "orm['recrutement.CourrielTemplate']"}) + }, + 'recrutement.candidatevaluation': { + 'Meta': {'object_name': 'CandidatEvaluation'}, + 'candidat': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'evaluations'", 'db_column': "'candidat'", 'to': "orm['emploi.Candidat']"}), + 'commentaire': ('django.db.models.fields.TextField', [], {'default': "'Aucun'", 'null': 'True', 'blank': 'True'}), + 'date': ('django.db.models.fields.DateField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'evaluateur': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'db_column': "'evaluateur'", 'to': "orm['recrutement.Evaluateur']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'note': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}) + }, + 'recrutement.courrieltemplate': { + 'Meta': {'object_name': 'CourrielTemplate'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'nom_modele': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'plain_text': ('django.db.models.fields.TextField', [], {}), + 'sujet': ('django.db.models.fields.CharField', [], {'max_length': '100'}) + }, + 'recrutement.evaluateur': { + 'Meta': {'object_name': 'Evaluateur'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'unique': 'True'}) + }, + 'recrutement.offreemploievaluateur': { + 'Meta': {'unique_together': "(('offre_emploi', 'evaluateur'),)", 'object_name': 'OffreEmploiEvaluateur'}, + 'evaluateur': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['recrutement.Evaluateur']", 'db_column': "'evaluateur'"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'offre_emploi': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['emploi.OffreEmploi']", 'db_column': "'offre_emploi'"}) + }, + 'references.bureau': { + 'Meta': {'object_name': 'Bureau', 'db_table': "u'ref_bureau'", 'managed': 'False'}, + 'actif': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': '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': {'object_name': 'Implantation', 'db_table': "u'ref_implantation'", 'managed': 'False'}, + 'actif': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}), + 'adresse_physique_bureau': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}), + 'adresse_physique_code_postal': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), + 'adresse_physique_code_postal_avant_ville': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), + 'adresse_physique_no': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), + 'adresse_physique_pays': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'impl_adresse_physique'", 'to_field': "'code'", 'db_column': "'adresse_physique_pays'", 'to': "orm['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': {'object_name': 'Pays', 'db_table': "u'ref_pays'", 'managed': 'False'}, + 'actif': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': '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': {'object_name': 'Region', 'db_table': "u'ref_region'", 'managed': 'False'}, + 'actif': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': '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': {'object_name': 'ZoneAdministrative', 'db_table': "'ref_zoneadministrative'", 'managed': 'False'}, + 'actif': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}), + 'code': ('django.db.models.fields.CharField', [], {'max_length': '4', 'primary_key': 'True'}), + 'nom': ('django.db.models.fields.CharField', [], {'max_length': '100'}) + } + } + + complete_apps = ['recrutement'] diff --git a/project/recrutement/migrations/0006_convert_candidatevaluation.py b/project/recrutement/migrations/0006_convert_candidatevaluation.py new file mode 100644 index 0000000..6d2fbfa --- /dev/null +++ b/project/recrutement/migrations/0006_convert_candidatevaluation.py @@ -0,0 +1,235 @@ +# encoding: 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 ce in orm.CandidatEvaluation.objects.all(): + orm.OffreEmploiEvaluateur.objects.get_or_create( + offre_emploi=ce.candidat.offre_emploi, + evaluateur=ce.evaluateur + ) + + def backwards(self, orm): + "Write your backwards methods here." + + 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': {'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, + 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) + }, + 'auth.user': { + 'Meta': {'object_name': 'User'}, + 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), + 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), + 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}), + 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), + 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), + 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), + 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), + 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), + 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) + }, + 'contenttypes.contenttype': { + 'Meta': {'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, + 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) + }, + 'emploi.candidat': { + 'Meta': {'object_name': 'Candidat'}, + 'actif': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}), + 'adresse': ('django.db.models.fields.CharField', [], {'max_length': '255'}), + 'code_postal': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}), + 'date_creation': ('django.db.models.fields.DateField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'domaine_professionnel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), + 'email': ('django.db.models.fields.EmailField', [], {'max_length': '255'}), + 'employeur_actuel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), + 'etat_province': ('django.db.models.fields.CharField', [], {'max_length': '255', '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': "'+'", 'db_column': "'nationalite'", 'to': "orm['references.Pays']"}), + 'niveau_diplome': ('django.db.models.fields.CharField', [], {'max_length': '255'}), + 'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'}), + 'nombre_dependant': ('django.db.models.fields.IntegerField', [], {}), + 'offre_emploi': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'db_column': "'offre_emploi'", 'to': "orm['emploi.OffreEmploi']"}), + 'pays': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'db_column': "'pays'", 'to': "orm['references.Pays']"}), + 'poste_actuel': ('django.db.models.fields.CharField', [], {'max_length': '255'}), + 'prenom': ('django.db.models.fields.CharField', [], {'max_length': '255'}), + 'situation_famille': ('django.db.models.fields.CharField', [], {'max_length': '1'}), + 'statut': ('django.db.models.fields.CharField', [], {'default': "'NOUV'", 'max_length': '4'}), + 'telephone': ('django.db.models.fields.CharField', [], {'max_length': '255'}), + 'ville': ('django.db.models.fields.CharField', [], {'max_length': '255'}) + }, + 'emploi.offreemploi': { + 'Meta': {'object_name': 'OffreEmploi'}, + 'actif': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}), + 'bureau': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['references.Bureau']", 'db_column': "'bureau'"}), + 'date_creation': ('django.db.models.fields.DateField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'date_limite': ('django.db.models.fields.DateField', [], {}), + 'debut_affectation': ('django.db.models.fields.DateField', [], {}), + 'description': ('django.db.models.fields.TextField', [], {}), + 'duree_affectation': ('django.db.models.fields.CharField', [], {'max_length': '255'}), + 'est_affiche': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'lieu_affectation': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['references.Implantation']", 'db_column': "'implantation'"}), + 'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'}), + 'poste': ('django.db.models.fields.CharField', [], {'max_length': '255'}), + 'poste_nom': ('django.db.models.fields.CharField', [], {'max_length': '255'}), + 'region': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['references.Region']", 'db_column': "'region'"}), + 'renumeration': ('django.db.models.fields.CharField', [], {'max_length': '255'}), + 'resume': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'statut': ('django.db.models.fields.CharField', [], {'default': "'NOUV'", 'max_length': '4'}) + }, + 'recrutement.candidat': { + 'Meta': {'object_name': 'Candidat', 'db_table': "'emploi_candidat'", '_ormbases': ['emploi.Candidat']} + }, + 'recrutement.candidatcourriel': { + 'Meta': {'object_name': 'CandidatCourriel'}, + 'candidats': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['emploi.Candidat']", 'symmetrical': 'False'}), + 'html': ('tinymce.models.HTMLField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'plain_text': ('django.db.models.fields.TextField', [], {'blank': 'True'}), + 'sujet': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}), + 'template': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'db_column': "'template'", 'to': "orm['recrutement.CourrielTemplate']"}) + }, + 'recrutement.candidatevaluation': { + 'Meta': {'object_name': 'CandidatEvaluation'}, + 'candidat': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'evaluations'", 'db_column': "'candidat'", 'to': "orm['emploi.Candidat']"}), + 'commentaire': ('django.db.models.fields.TextField', [], {'default': "'Aucun'", 'null': 'True', 'blank': 'True'}), + 'date': ('django.db.models.fields.DateField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'evaluateur': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'db_column': "'evaluateur'", 'to': "orm['recrutement.Evaluateur']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'note': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}) + }, + 'recrutement.courrieltemplate': { + 'Meta': {'object_name': 'CourrielTemplate'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'nom_modele': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'plain_text': ('django.db.models.fields.TextField', [], {}), + 'sujet': ('django.db.models.fields.CharField', [], {'max_length': '100'}) + }, + 'recrutement.evaluateur': { + 'Meta': {'object_name': 'Evaluateur'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'unique': 'True'}) + }, + 'recrutement.offreemploievaluateur': { + 'Meta': {'unique_together': "(('offre_emploi', 'evaluateur'),)", 'object_name': 'OffreEmploiEvaluateur'}, + 'evaluateur': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['recrutement.Evaluateur']", 'db_column': "'evaluateur'"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'offre_emploi': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['emploi.OffreEmploi']", 'db_column': "'offre_emploi'"}) + }, + 'references.bureau': { + 'Meta': {'object_name': 'Bureau', 'db_table': "u'ref_bureau'", 'managed': 'False'}, + 'actif': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': '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': {'object_name': 'Implantation', 'db_table': "u'ref_implantation'", 'managed': 'False'}, + 'actif': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}), + 'adresse_physique_bureau': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}), + 'adresse_physique_code_postal': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), + 'adresse_physique_code_postal_avant_ville': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), + 'adresse_physique_no': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), + 'adresse_physique_pays': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'impl_adresse_physique'", 'to_field': "'code'", 'db_column': "'adresse_physique_pays'", 'to': "orm['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': {'object_name': 'Pays', 'db_table': "u'ref_pays'", 'managed': 'False'}, + 'actif': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': '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': {'object_name': 'Region', 'db_table': "u'ref_region'", 'managed': 'False'}, + 'actif': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': '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': {'object_name': 'ZoneAdministrative', 'db_table': "'ref_zoneadministrative'", 'managed': 'False'}, + 'actif': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}), + 'code': ('django.db.models.fields.CharField', [], {'max_length': '4', 'primary_key': 'True'}), + 'nom': ('django.db.models.fields.CharField', [], {'max_length': '100'}) + } + } + + complete_apps = ['recrutement'] diff --git a/project/recrutement/models.py b/project/recrutement/models.py index 06b01e0..569bcb0 100644 --- a/project/recrutement/models.py +++ b/project/recrutement/models.py @@ -108,6 +108,37 @@ def sync_delete_groupe_evaluateur(sender, **kwargs): instance.user.save() +class OffreEmploiEvaluateur(models.Model): + offre_emploi = models.ForeignKey(emploi.OffreEmploi, db_column='offre_emploi', + verbose_name=u'offre d\'emploi') + evaluateur = models.ForeignKey(Evaluateur, db_column='evaluateur', + verbose_name=u'évaluateur') + + class Meta: + unique_together = ('offre_emploi', 'evaluateur') + + def __unicode__(self): + return u"%s - %s" % (self.offre_emploi, self.evaluateur) + + def save(self): + + if self.pk is None: + candidats = Candidat.objects.filter(offre_emploi=self.offre_emploi) + for candidat in candidats: + print candidat + print self.evaluateur + candidat_evaluation, created = CandidatEvaluation.objects.get_or_create(candidat=candidat, evaluateur=self.evaluateur) + + super(OffreEmploiEvaluateur, self).save() + + def delete(self): + candidats = Candidat.objects.filter(offre_emploi=self.offre_emploi) + for candidat in candidats: + CandidatEvaluation.objects.filter(candidat=candidat, evaluateur=self.evaluateur).delete() + + super(OffreEmploiEvaluateur, self).delete() + + class CandidatEvaluation(models.Model): candidat = models.ForeignKey(emploi.Candidat, db_column='candidat', related_name='evaluations',)