1640: Aide pour le nombre de dépendants
authornilovna.bascunan-vasquez <nilovna.bascunan-vasquez@localhost.localdomain>
Wed, 22 Jun 2011 19:20:25 +0000 (15:20 -0400)
committernilovna.bascunan-vasquez <nilovna.bascunan-vasquez@localhost.localdomain>
Wed, 22 Jun 2011 19:20:25 +0000 (15:20 -0400)
1639: Ajouter un calendrier de sélection pour la postulation offre emploi (formulaire)

project/recrutement/forms.py
project/recrutement/models.py
project/recrutement/templates/recrutement/postuler_appel_offre.html

index f3a8b9b..f434ade 100644 (file)
@@ -4,9 +4,13 @@ import os
 from django import forms
 from django.contrib import admin
 from django.forms.models import inlineformset_factory
+from datetime import timedelta
+from django.forms.widgets import CheckboxSelectMultiple
+from django.contrib.admin import widgets as admin_widgets   
 from form_utils.forms import BetterModelForm
 from django.forms import ModelForm
 from django.forms.models import BaseInlineFormSet 
+
 from tinymce.widgets import TinyMCE
 from captcha.fields import CaptchaField
 
@@ -46,13 +50,14 @@ class EvaluateurForm(forms.Form):
 ################################################################################
 class CandidatPieceForm(inlineformset_factory(recr.Candidat,
                         recr.CandidatPiece)):
-    pass
+    nom = forms.MultipleChoiceField(choices=recr.TYPE_PIECE_CHOICES,
+            widget=CheckboxSelectMultiple)
 
 class PostulerOffreEmploiForm(ModelForm):
     captcha = CaptchaField()
 
     def __init__(self, *args, **kwargs):
-        self.offre_emploi = kwargs.pop('offre_emploi')      
+        self.offre_emploi = kwargs.pop('offre_emploi')     
         super(PostulerOffreEmploiForm, self).__init__(*args, **kwargs)
 
     def save(self, *args, **kwargs): 
@@ -66,6 +71,7 @@ class PostulerOffreEmploiForm(ModelForm):
     class Meta:
         model = recr.Candidat   
         exclude = ('actif', 'offre_emploi',)
+        widgets = dict(date_naissance=admin_widgets.AdminDateWidget(),)
         fields = ('nom', 'prenom', 'genre', 'nationalite', 'date_naissance',
                     'situation_famille', 'nombre_dependant', 'niveau_diplome',
                     'employeur_actuel', 'poste_actuel', 'domaine_professionnel',
index 223aca5..e53cf3e 100755 (executable)
@@ -17,6 +17,7 @@ NOTE_MIN = 1
 NOTE_RANGE = 1
 NOTE_MAX = 11
 NOTES = [(i, i) for i in range(NOTE_MIN, NOTE_MAX, NOTE_RANGE)]
+HELP_TEXT_NB_DEPENDANT = "Le nombre de personnes à charge"
 
 # Abstracts
 class Metadata(models.Model):
@@ -99,11 +100,12 @@ class Candidat(Metadata):
     nationalite = models.ForeignKey(ref.Pays, 
                     db_column='nationalite', related_name='+',
                     verbose_name='Nationalité')
-    date_naissance = models.DateField(verbose_name='Date de naissance')   
+    date_naissance = models.DateField(verbose_name='Date de naissance')          
     situation_famille = models.CharField(max_length=1, 
                         choices=SITUATION_CHOICES, 
                         verbose_name='Situation familiale')
-    nombre_dependant = models.IntegerField(verbose_name='Nombre de dépendant')
+    nombre_dependant = models.IntegerField(verbose_name='Nombre de dépendant',
+                        help_text=HELP_TEXT_NB_DEPENDANT)
     niveau_diplome = models.CharField(max_length=255,
                         verbose_name='Niveau du diplôme')
     employeur_actuel = models.CharField(max_length=255)
@@ -125,6 +127,12 @@ class Candidat(Metadata):
         return '%s %s [%s]' % (self.prenom, self.nom, self.id)
 
 ### PIECE CANDIDAT
+
+TYPE_PIECE_CHOICES = (
+    ('CV','CV'),
+    ('LET','Lettre'),
+    ('AUT','Autre'),
+)
 # Upload de fichiers
 storage_prive = FileSystemStorage(settings.PRIVE_MEDIA_ROOT, 
                             base_url=settings.PRIVE_MEDIA_URL)
@@ -138,7 +146,7 @@ def candidat_piece_dispatch(instance, filename):
 class CandidatPiece(models.Model):
     candidat = models.ForeignKey(Candidat, db_column='candidat',
                 related_name='candidat_piece') 
-    nom = models.CharField(max_length=255)
+    nom = models.CharField(max_length=3, choices=TYPE_PIECE_CHOICES)
     #path = PrivateFileField("file", upload_to=candidat_piece_dispatch)
     path = models.FileField(verbose_name="Fichier", 
             upload_to=candidat_piece_dispatch, 
index 97303fb..1f45576 100644 (file)
@@ -1,9 +1,29 @@
 {% extends 'base.html' %}
+{% load adminmedia %}
 
 {% block title %}RH{% endblock %}
 {% block titre %}Ressources humaines{% endblock %}
 {% block sous_titre %}Accueil{% endblock %}
 
+{% block extrahead %}
+    <script src="{{ MEDIA_URL }}js/jquery-1.5.1.min.js"
+    type="text/javascript"></script>
+
+    {% comment  %} style pour le calendier {% endcomment %}
+    <script type="text/javascript">
+        window.__admin_media_prefix__ = "{% filter escapejs %}{% admin_media_prefix %}{% endfilter %}";
+     </script>
+    <link rel="stylesheet" type="text/css" href="{{ MEDIA_URL }}css/calendrier.css" />
+    <link rel="stylesheet" type="text/css" href="{{ MEDIA_URL }}css/dae.css" />
+    <script type="text/javascript" src="/admin/jsi18n/"></script>
+    <script type="text/javascript" src="{% admin_media_prefix %}js/core.js"></script>
+    <script type="text/javascript" src="{% admin_media_prefix %}js/calendar.js"></script>
+    <script type="text/javascript" src="{% admin_media_prefix %}js/admin/DateTimeShortcuts.js"></script>
+    <script src="{{ MEDIA_URL }}jquery-autocomplete/jquery.autocomplete.js" type="text/javascript"></script>
+    <link rel="stylesheet" type="text/css" href="{{ MEDIA_URL }}jquery-autocomplete/jquery.autocomplete.css" />
+    <script src="{{ MEDIA_URL }}js/dae.js" type="text/javascript"></script>
+    <script src="{{ MEDIA_URL }}js/dae-embauche.js" type="text/javascript"></script>
+{% endblock %}
 
 {% block main %}
 <div id="content-main">
                 </tr>
                 <tr>
                     <td>{{ form.nombre_dependant.label }}</td>
-                    <td>{{ form.nombre_dependant }}</td>
+                    <td>{{ form.nombre_dependant }}<br />
+                        <span class="info">{{ form.nombre_dependant.help_text }}
+                        </span>
+                    </td>
                 </tr>
                 </tbody>
             </table>            
             <h2>Vérification CATPCHA</h2>
             <p class="info">Entrez les caractères figurant dans l'image ci-dessous.</p>
                 <tr>
-                    <td>{{ form.captcha }}</td>
+                    <td>
+                        {{ form.captcha }}
+                        {{ form.captcha.errors }}
+                    </td>
                 </tr>
         </fieldset>
         <div class="submit-row">