1639: Ajouter un calendrier de sélection pour la postulation offre emploi (formulaire)
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
################################################################################
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):
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',
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):
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)
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)
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,
{% 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">