Ajout bouton impression avec style d'impression pour les fiches des candidats
authorNilovna Bascunan-Vasquez <contact@nilovna.com>
Tue, 16 Aug 2011 14:22:48 +0000 (10:22 -0400)
committerNilovna Bascunan-Vasquez <contact@nilovna.com>
Tue, 16 Aug 2011 14:22:48 +0000 (10:22 -0400)
project/recrutement/templates/admin/recrutement/candidat/change_form.html
project/recrutement/templates/admin/recrutement/proxycandidat/change_form.html
project/recrutement/templates/recrutement/candidat_pdf.html [new file with mode: 0644]
project/recrutement/urls.py
project/recrutement/views.py
project/settings.py
src/auf.django.emploi/auf/django/emploi/api.py
src/auf.django.emploi/auf/django/emploi/forms.py

index 457d40e..af910d2 100644 (file)
@@ -7,7 +7,8 @@
 {{ media }}
 {% endblock %}
 
-{% block extrastyle %}{{ block.super }}<link rel="stylesheet" type="text/css" href="{% admin_media_prefix %}css/forms.css" />{% endblock %}
+{% block extrastyle %}{{ block.super }}<link rel="stylesheet" type="text/css" href="{% admin_media_prefix %}css/forms.css" />
+<link rel="stylesheet" type="text/css" href="{{ MEDIA_URL }}css/dae.css" />{% endblock %}
 
 {% block coltype %}{% if ordered_objects %}colMS{% else %}colM{% endif %}{% endblock %}
 
@@ -27,6 +28,7 @@
 {% if change %}{% if not is_popup %}
   <ul class="object-tools"><li><a href="history/" class="historylink">{% trans "History" %}</a></li>
   {% if has_absolute_url %}<li><a href="../../../r/{{ content_type_id }}/{{ object_id }}/" class="viewsitelink">{% trans "View on site" %}</a></li>{% endif%}
+    <li><a class="historylink" target="_blank" href="/recrutement/candidat_pdf/?id={{original.id}}">Imprimer la fiche du candidat</a></li>
   </ul>
 {% endif %}{% endif %}
 {% endblock %}
@@ -71,5 +73,6 @@
 {% prepopulated_fields_js %}
 
 </div>
+
 </form></div>
 {% endblock %}
index bdc3016..4f2ec9a 100644 (file)
@@ -7,7 +7,8 @@
 {{ media }}
 {% endblock %}
 
-{% block extrastyle %}{{ block.super }}<link rel="stylesheet" type="text/css" href="{% admin_media_prefix %}css/forms.css" />{% endblock %}
+{% block extrastyle %}{{ block.super }}<link rel="stylesheet" type="text/css" href="{% admin_media_prefix %}css/forms.css" />
+<link rel="stylesheet" type="text/css" href="{{ MEDIA_URL }}css/dae.css" />{% endblock %}
 
 {% block coltype %}{% if ordered_objects %}colMS{% else %}colM{% endif %}{% endblock %}
 
@@ -27,6 +28,7 @@
 {% if change %}{% if not is_popup %}
   <ul class="object-tools"><li><a href="history/" class="historylink">{% trans "History" %}</a></li>
   {% if has_absolute_url %}<li><a href="../../../r/{{ content_type_id }}/{{ object_id }}/" class="viewsitelink">{% trans "View on site" %}</a></li>{% endif%}
+    <li><a class="historylink" target="_blank" href="/recrutement/candidat_pdf/?id={{original.id}}">Imprimer la fiche du candidat</a></li>
   </ul>
 {% endif %}{% endif %}
 {% endblock %}
 {% endfor %}
 
 <fieldset class="module aligned ">
-    <h2>Pièces jointes</h2>
+    <!--<h2>Pièces jointes</h2>
     {% for p in original.pieces_jointes %}
         <div class="form-row">
             <label>{{ p.get_nom_display }}:</label>
             <p><a href="{{ p.path.url }}">{{ p.path.url }}</a></p>
         </div>
-    {% endfor %}
+    {% endfor %}-->
 </fieldset>
 
 {% block after_related_objects %}{% endblock %}
@@ -73,5 +75,6 @@
 {% prepopulated_fields_js %}
 
 </div>
-</form></div>
+</form>
+</div>
 {% endblock %}
diff --git a/project/recrutement/templates/recrutement/candidat_pdf.html b/project/recrutement/templates/recrutement/candidat_pdf.html
new file mode 100644 (file)
index 0000000..36b5646
--- /dev/null
@@ -0,0 +1,44 @@
+<html>
+    <head>
+        <link rel="stylesheet" type="text/css" href="{{ MEDIA_URL }}css/pdf.css" />
+        <link rel="stylesheet" type="text/css" href="{{ MEDIA_URL }}css/dae.css" />
+
+    </head>
+
+<body>
+    <h1>Candidat: {{ candidat }}</h1>
+    <div class="visualClear"></div>
+    <h2>Offre d'emploi: {{ candidat.offre_emploi }}</h2>
+    <fieldset>
+        <h2>Informations personnelles</h2>
+        <ul>
+            <li>Nom: {{ candidat.nom }}</li>
+            <li>Prenom: {{ candidat.prenom }}</li>
+            <li>Genre: {{ candidat.genre }}</li>
+            <li>Nationalité: {{ candidat.nationalite }}</li>
+            <li>Situation familiale: {{ candidat.situation_famille }}</li>
+            <li>Nombre de dépendant: {{ candidat.nombre_dependant }}</li>
+        </ul>
+    </fieldset>
+    <fieldset>
+        <h2>Coordonnées</h2>
+        <ul>
+            <li>Téléphone: {{ candidat.telephone }}</li>
+            <li>Courriel: {{ candidat.courriel }}</li>
+            <li>Adresse: {{ candidat.adresse }}</li>
+            <li>Ville: {{ candidat.ville }}</li>
+            <li>État/Province: {{ candidat.etat_province }}</li>
+            <li>Code postal: {{ candidat.code_postal }}</li>
+            <li>Pays: {{ candidat.pays }}</li>
+        </ul>
+    </fieldset>
+    <fieldset>
+        <h2>Informations professionnelles</h2>
+        <ul>
+            <li>Niveau du diplôme: {{ candidat.niveau_diplome }}</li>
+            <li>Employeur actuel: {{ candidat.employeur_actuel }}</li>
+            <li>Poste actuel: {{ candidat.poste_actuel }}</li>
+            <li>Domaine professionnel: {{ candidat.domaine_professionnel }}</li>
+        </ul>
+    </fieldset>
+</body>
index b2ae6f6..571e256 100644 (file)
@@ -25,4 +25,6 @@ urlpatterns = patterns('',
         'recrutement.views.selectionner_template', 
         name='selectionner_template'),
 
+    url(r'candidat_pdf/$', 'recrutement.views.candidat_pdf', 
+        name='candidat_pdf'),
 )
index bc52ef8..76a3fd6 100755 (executable)
@@ -106,3 +106,11 @@ def send_templated_email(candidat, template):
                                 [candidat.email])
     msg.attach_alternative(texte_template.render(texte_html), "text/html")
     msg.send()
+
+
+def candidat_pdf(request):
+    candidat_id = request.GET.get('id')
+    candidat = Candidat.objects.get(id=candidat_id)
+
+    return render_to_response("recrutement/candidat_pdf.html", 
+            Context({'candidat' : candidat}), context_instance = RequestContext(request))
index 7805bcd..f31d159 100644 (file)
@@ -76,7 +76,6 @@ INSTALLED_APPS = (
     'form_utils',
     'tinymce',
     'captcha',
-#    'private_files', 
 )
 
 TEMPLATE_CONTEXT_PROCESSORS = (
index 9e9d815..1d54999 100644 (file)
@@ -3,18 +3,22 @@ from django.shortcuts import render_to_response, redirect, get_object_or_404
 from django.template import Context, RequestContext
 
 from django.utils import simplejson
-from auf.django.emploi import models as emploi
+import datamaster_modeles.models as ref
+
 from restkit import request as req
 from restkit import Resource
 from httplib2 import Http
-from urllib import urlencode
-import datamaster_modeles.models as ref
-from poster.encode import MultipartParam
-from poster.encode import multipart_encode
 import urllib2
-import settings
+from poster.encode import multipart_encode, MultipartParam
+from poster.streaminghttp import StreamingHTTPHandler, StreamingHTTPRedirectHandler, StreamingHTTPSHandler, register_openers
+from StringIO import StringIO
+import urllib2, poster.streaminghttp
+
 
 
+import settings
+from auf.django.emploi import models as emploi
+
 STATUS_OK = '200 OK'
 
 class API:
@@ -37,6 +41,7 @@ class API:
 
         for offre_dict in liste_offres:
             offre = emploi.OffreEmploi()
+            offre.id = offre_dict['id']
             offre.est_affiche = offre_dict['est_affiche']
             offre.statut = offre_dict['statut']
             offre.nom = offre_dict['nom']
@@ -49,7 +54,8 @@ class API:
             offre.duree_affectation = offre_dict['duree_affectation']
             offre.renumeration = offre_dict['renumeration']
             offre.debut_affectation = offre_dict['debut_affectation']
-            offre.lieu_affectation = ref.Implantation.objects.get(id=offre_dict['lieu_affectation'])
+            offre.lieu_affectation = ref.Implantation.objects.\
+                                        get(id=offre_dict['lieu_affectation'])
             obj_offres_emploi.append(offre)  
         return obj_offres_emploi
 
@@ -68,6 +74,7 @@ class API:
         obj_offres_emploi = []
 
         offre = emploi.OffreEmploi()
+        offre.id = offre_dict['id']
         offre.est_affiche = offre_dict['est_affiche']
         offre.statut = offre_dict['statut']
         offre.nom = offre_dict['nom']
@@ -80,7 +87,8 @@ class API:
         offre.duree_affectation = offre_dict['duree_affectation']
         offre.renumeration = offre_dict['renumeration']
         offre.debut_affectation = offre_dict['debut_affectation']
-        offre.lieu_affectation = ref.Implantation.objects.get(id=offre_dict['lieu_affectation'])
+        offre.lieu_affectation = ref.Implantation.objects.\
+                                        get(id=offre_dict['lieu_affectation'])
         obj_offres_emploi.append(offre)
         return obj_offres_emploi
 
@@ -89,12 +97,7 @@ class API:
             url = getattr(settings, "RECRUTEMENT_URL")[env] + "candidat_add/%s"
         else:
             raise ImportError, "Could not import settings RECRUTEMENT_PATH"
-        r = Resource(url % offre_id)
-        mp = MultipartParam.from_file('cv', self.request.POST.get('candidat_piece-0-nom'))
-        datagen, headers = multipart_encode([image_param])
-        resp = r.post(payload=self.request.FILES, params_dict=self.request.POST)
-        if resp.status == STATUS_OK:
-            candidat_id = simplejson.loads(resp.body_string())['candidat_id']
-            return candidat_id
+
+
         return None
         
index 7a4a9e3..02e8b97 100644 (file)
@@ -17,11 +17,6 @@ class CandidatPieceForm(inlineformset_factory(Candidat,
     nom = forms.MultipleChoiceField(choices=TYPE_PIECE_CHOICES,
             widget=CheckboxSelectMultiple)
 
-    def __init__(self, *args, **kwargs):
-        super(CandidatPieceForm, self).__init__(*args, **kwargs)
-    
-    def save(self, *args, **kwargs):
-        super(CandidatPieceForm, self).save(*args, **kwargs)
 
 
 class PostulerOffreEmploiForm(ModelForm):