API: Permettre la postulation a partir du site institutionnel
authorNilovna Bascunan-Vasquez <contact@nilovna.com>
Fri, 5 Aug 2011 21:19:43 +0000 (17:19 -0400)
committerNilovna Bascunan-Vasquez <contact@nilovna.com>
Fri, 5 Aug 2011 21:19:43 +0000 (17:19 -0400)
auf/django/emploi/api.py
auf/django/emploi/forms.py
auf/django/emploi/templates/emploi/pieces.html [new file with mode: 0644]
auf/django/emploi/templates/emploi/postuler_appel_offre.html [new file with mode: 0644]
auf/django/emploi/templates/recrutement/pieces.html [deleted file]
auf/django/emploi/templates/recrutement/postuler_appel_offre.html [deleted file]

index 5a7e778..4304f5b 100644 (file)
@@ -6,6 +6,9 @@ from django.utils import simplejson
 from auf.django.emploi import models as emploi
 from auf.django.emploi import forms as emploiForms
 from restkit import request as req
+from restkit import Resource
+from httplib2 import Http
+from urllib import urlencode
 import datamaster_modeles.models as ref
 
 class API:
@@ -62,7 +65,11 @@ class API:
         return obj_offres_emploi
 
     def candidat_add(self, offre_id):
-        url = "http://127.0.0.1:8000/api/candidat_add/?id=%s" % (offre_id)
-        return redirect(url)
+        url = "http://127.0.0.1:8000/api/candidat_add/%s" % offre_id
+        r = Resource(url)
+        import pdb;pdb.set_trace()
+        resp = r.post(payload=self.request.POST)
+
+        return resp.status    
 
         
index 7f963cc..79338eb 100644 (file)
@@ -7,21 +7,22 @@ from django.forms import ModelForm
 
 from captcha.fields import CaptchaField
 
-from auf.django.emploi import models as emploi
+from models import *
 
 ################################################################################
 # OFFRE EMPLOI
 ################################################################################
-class CandidatPieceForm(inlineformset_factory(emploi.Candidat,
-                        emploi.CandidatPiece)):
-    nom = forms.MultipleChoiceField(choices=emploi.TYPE_PIECE_CHOICES,
+class CandidatPieceForm(inlineformset_factory(Candidat,
+                        CandidatPiece)):
+    nom = forms.MultipleChoiceField(choices=TYPE_PIECE_CHOICES,
             widget=CheckboxSelectMultiple)
 
 class PostulerOffreEmploiForm(ModelForm):
     captcha = CaptchaField()
+    action = "http://127.0.0.1:8000/api/candidat_add/"
 
     def __init__(self, *args, **kwargs):
-        self.offre_emploi = kwargs.pop('offre_emploi')     
+        self.offre_emploi = kwargs.pop('offre_id')
         super(PostulerOffreEmploiForm, self).__init__(*args, **kwargs)
 
     def save(self, *args, **kwargs): 
@@ -33,7 +34,7 @@ class PostulerOffreEmploiForm(ModelForm):
         return postulation
 
     class Meta:
-        model = emploi.Candidat   
+        model = Candidat   
         exclude = ('actif', 'offre_emploi',)
         fields = ('nom', 'prenom', 'genre', 'nationalite', 'situation_famille', 
                     'nombre_dependant', 'niveau_diplome', 'employeur_actuel', 
diff --git a/auf/django/emploi/templates/emploi/pieces.html b/auf/django/emploi/templates/emploi/pieces.html
new file mode 100644 (file)
index 0000000..d8587d7
--- /dev/null
@@ -0,0 +1,30 @@
+<table>
+    {% for f in piecesForm.management_form %}
+        {{ f }}
+    {% endfor %}
+    <tr>  
+        <th></th> 
+        {% for field in piecesForm.forms.0 %}
+            {% if not field.is_hidden %}
+                <th>{{ field.label }}</th>
+            {% endif %}
+        {% endfor %}
+    </tr>
+    {% for f in piecesForm.forms %}
+    <tr>
+        <td>
+            {{ f.errors }}
+            {% if f.initial.fichier %}
+                <a href="{{ f.initial.fichier.url }}" target="_blank">Télécharger</a>
+            {% endif %}
+        </td>
+        {% for field in f %} 
+            {% if not field.is_hidden %}
+                <td>{{ field }}</td>
+            {% else %}
+                {{ field }}
+            {% endif %}
+        {% endfor %}
+    </tr>
+    {% endfor %}
+</table>
diff --git a/auf/django/emploi/templates/emploi/postuler_appel_offre.html b/auf/django/emploi/templates/emploi/postuler_appel_offre.html
new file mode 100644 (file)
index 0000000..f6931be
--- /dev/null
@@ -0,0 +1,123 @@
+{% extends "base.html" %}
+{% block Contenu%}
+
+<div id="content-main">
+    {% block object-tools %}{% endblock %}
+
+    <h1>Poster pour un appel d'offre d'emploi</h1>
+
+    <form action="" method="post" enctype="multipart/form-data">
+        <fieldset>
+            <h2>Informations personnelles</h2>
+            <table id="informations_personnelles">
+                <tbody>
+                <tr>
+                    <td>{{ form.prenom.label }}</td>
+                    <td>{{ form.prenom }}</td>
+                </tr>
+                <tr>
+                    <td>{{ form.nom.label }}</td>
+                    <td>{{ form.nom }}</td>
+                </tr>
+                <tr>
+                    <td>{{ form.genre.label }}</td>
+                    <td>{{ form.genre }}</td>
+                </tr>
+                <tr>
+                    <td>{{ form.nationalite.label }}</td>
+                    <td>{{ form.nationalite }}</td>
+                <tr>
+                    <td>{{ form.situation_famille.label }}</td>
+                    <td>{{ form.situation_famille }}</td>
+                </tr>
+                <tr>
+                    <td>{{ form.nombre_dependant.label }}</td>
+                    <td>{{ form.nombre_dependant }}<br />
+                        <span class="info">{{ form.nombre_dependant.help_text }}</span>
+                    </td>
+                </tr>
+                </tbody>
+            </table>            
+        </fieldset>
+        <fieldset>
+            <h2>Coordonnées</h2>
+            <table id="coordonnees">
+                <tbody>
+                <tr>
+                    <td>{{ form.telephone.label }}</td>
+                    <td>{{ form.telephone }}</td>
+                </tr>
+                <tr>
+                    <td>{{ form.email.label }}</td>
+                    <td>{{ form.email }}</td>
+                </tr>
+                <tr>
+                    <td>{{ form.adresse.label }}</td>
+                    <td>{{ form.adresse }}</td>
+                </tr>
+                <tr>
+                    <td>{{ form.ville.label }}</td>
+                    <td>{{ form.ville }}</td>
+                </tr>
+                <tr>
+                    <td>{{ form.etat_province.label }}</td>
+                    <td>{{ form.etat_province }}</td>
+                </tr>
+                <tr>
+                    <td>{{ form.code_postal.label }}</td>
+                    <td>{{ form.code_postal }}</td>
+                </tr>
+                <tr>
+                    <td>{{ form.pays.label }}</td>
+                    <td>{{ form.pays }}</td>
+                </tr>
+                </tbody>
+            </table>
+        </fieldset>
+        <fieldset>
+            <h2>Informations professionnelles</h2>
+            <table id="informations_professionnelles">
+                <tbody>
+                <tr>
+                    <td>{{ form.niveau_diplome.label }}</td>
+                    <td>{{ form.niveau_diplome }}</td>
+                </tr>
+                <tr>
+                    <td>{{ form.employeur_actuel.label }}</td>
+                    <td>{{ form.employeur_actuel }}</td>
+                </tr>
+                <tr>
+                    <td>{{ form.poste_actuel.label }}</td>
+                    <td>{{ form.poste_actuel }}</td>
+                </tr>
+                <tr>
+                    <td>{{ form.domaine_professionnel.label }}</td>
+                    <td>{{ form.domaine_professionnel }}</td>
+                </tr>
+                </tbody>
+            </table>
+        </fieldset>
+        <fieldset>
+            <h2>Pièces jointes</h2>
+            <p class="info">CV, lettre de motivation...</p>
+            {% include "recrutement/pieces.html" %}
+        </fieldset>
+        <fieldset>
+            <h2>Vérification CAPTCHA</h2>
+            <p class="info">Entrez les caractères figurant dans l'image ci-dessous.</p>
+                <tr>
+                    <td>
+                        {{ form.captcha }}
+                        {{ form.captcha.errors }}
+                    </td>
+                </tr>
+        </fieldset>
+        <div class="submit-row">
+            <input type="submit" name="save" value="Enregistrer" />
+        </div>
+    </form>
+
+
+</div>
+
+{% endblock %}
diff --git a/auf/django/emploi/templates/recrutement/pieces.html b/auf/django/emploi/templates/recrutement/pieces.html
deleted file mode 100644 (file)
index d8587d7..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-<table>
-    {% for f in piecesForm.management_form %}
-        {{ f }}
-    {% endfor %}
-    <tr>  
-        <th></th> 
-        {% for field in piecesForm.forms.0 %}
-            {% if not field.is_hidden %}
-                <th>{{ field.label }}</th>
-            {% endif %}
-        {% endfor %}
-    </tr>
-    {% for f in piecesForm.forms %}
-    <tr>
-        <td>
-            {{ f.errors }}
-            {% if f.initial.fichier %}
-                <a href="{{ f.initial.fichier.url }}" target="_blank">Télécharger</a>
-            {% endif %}
-        </td>
-        {% for field in f %} 
-            {% if not field.is_hidden %}
-                <td>{{ field }}</td>
-            {% else %}
-                {{ field }}
-            {% endif %}
-        {% endfor %}
-    </tr>
-    {% endfor %}
-</table>
diff --git a/auf/django/emploi/templates/recrutement/postuler_appel_offre.html b/auf/django/emploi/templates/recrutement/postuler_appel_offre.html
deleted file mode 100644 (file)
index 53569f0..0000000
+++ /dev/null
@@ -1,135 +0,0 @@
-{% extends 'base.html' %}
-{% load adminmedia %}
-
-{% block title %}RH{% endblock %}
-{% block titre %}Ressources humaines{% endblock %}
-{% block sous_titre %}Accueil{% endblock %}
-
-{% block main %}
-<div id="content-main">
-    {% block object-tools %}{% endblock %}
-
-
-
-
-    <div class="module">
-    <h2>Poster pour un appel d'offre d'emploi</h2>
-    </div>
-       
-    <form action="" method="post" enctype="multipart/form-data">
-        <fieldset>
-            <h2>Informations personnelles</h2>
-            <table id="informations_personnelles">
-                <tbody>
-                <tr>
-                    <td>{{ form.prenom.label }}</td>
-                    <td>{{ form.prenom }}</td>
-                </tr>
-                <tr>
-                    <td>{{ form.nom.label }}</td>
-                    <td>{{ form.nom }}</td>
-                </tr>
-                <tr>
-                    <td>{{ form.genre.label }}</td>
-                    <td>{{ form.genre }}</td>
-                </tr>
-                <tr>
-                    <td>{{ form.nationalite.label }}</td>
-                    <td>{{ form.nationalite }}</td>
-                <tr>
-                    <td>{{ form.situation_famille.label }}</td>
-                    <td>{{ form.situation_famille }}</td>
-                </tr>
-                <tr>
-                    <td>{{ form.nombre_dependant.label }}</td>
-                    <td>{{ form.nombre_dependant }}<br />
-                        <span class="info">{{ form.nombre_dependant.help_text }}
-                        </span>
-                    </td>
-                </tr>
-                </tbody>
-            </table>            
-        </fieldset>
-        <fieldset>
-            <h2>Coordonnées</h2>
-            <table id="coordonnees">
-                <tbody>
-                <tr>
-                    <td>{{ form.telephone.label }}</td>
-                    <td>{{ form.telephone }}</td>
-                </tr>
-                <tr>
-                    <td>{{ form.email.label }}</td>
-                    <td>{{ form.email }}</td>
-                </tr>
-                <tr>
-                    <td>{{ form.adresse.label }}</td>
-                    <td>{{ form.adresse }}</td>
-                </tr>
-                <tr>
-                    <td>{{ form.ville.label }}</td>
-                    <td>{{ form.ville }}</td>
-                </tr>
-                <tr>
-                    <td>{{ form.etat_province.label }}</td>
-                    <td>{{ form.etat_province }}</td>
-                </tr>
-                <tr>
-                    <td>{{ form.code_postal.label }}</td>
-                    <td>{{ form.code_postal }}</td>
-                </tr>
-                <tr>
-                    <td>{{ form.pays.label }}</td>
-                    <td>{{ form.pays }}</td>
-                </tr>
-                </tbody>
-            </table>
-        </fieldset>
-        <fieldset>
-            <h2>Informations professionnelles</h2>
-            <table id="informations_professionnelles">
-                <tbody>
-                <tr>
-                    <td>{{ form.niveau_diplome.label }}</td>
-                    <td>{{ form.niveau_diplome }}</td>
-                </tr>
-                <tr>
-                    <td>{{ form.employeur_actuel.label }}</td>
-                    <td>{{ form.employeur_actuel }}</td>
-                </tr>
-                <tr>
-                    <td>{{ form.poste_actuel.label }}</td>
-                    <td>{{ form.poste_actuel }}</td>
-                </tr>
-                <tr>
-                    <td>{{ form.domaine_professionnel.label }}</td>
-                    <td>{{ form.domaine_professionnel }}</td>
-                </tr>
-                </tbody>
-            </table>
-        </fieldset>
-        <fieldset>
-            <h2>Pièces jointes</h2>
-            <p class="info">CV, lettre de motivation...</p>
-            {% include "recrutement/pieces.html" %}
-        </fieldset>
-        <fieldset>
-            <h2>Vérification CAPTCHA</h2>
-            <p class="info">Entrez les caractères figurant dans l'image ci-dessous.</p>
-                <tr>
-                    <td>
-                        {{ form.captcha }}
-                        {{ form.captcha.errors }}
-                    </td>
-                </tr>
-        </fieldset>
-        <div class="submit-row">
-            <input type="submit" name="save" value="Enregistrer" />
-        </div>
-    </form>
-
-
-
-</div>
-
-{% endblock %}