La pièce jointe ne s'ajoute pas lors de la postulation.
TEMPLATE_DEBUG=DEBUG
# Décommentez ces lignes pour activer la debugtoolbar
-INTERNAL_IPS = ('127.0.0.1',)
-INSTALLED_APPS += ('debug_toolbar',)
-MIDDLEWARE_CLASSES += ('debug_toolbar.middleware.DebugToolbarMiddleware',)
+#INTERNAL_IPS = ('127.0.0.1',)
+#INSTALLED_APPS += ('debug_toolbar',)
+#MIDDLEWARE_CLASSES += ('debug_toolbar.middleware.DebugToolbarMiddleware',)
AUTH_PASSWORD_REQUIRED = False
from recrutement.models import *
-
class OffreEmploiAdmin(VersionAdmin):
date_hierarchy = 'date_creation'
list_display = ('nom', 'resume', 'date_limite', '_candidatsList', )
from django.forms.models import inlineformset_factory
from form_utils.forms import BetterModelForm
from django.forms import ModelForm
-from models import *
+from recrutement import models as recr
+from django.forms.models import BaseInlineFormSet
################################################################################
# EVALUATION
class Meta:
fields = ('note', 'commentaire', 'evaluateur')
- model = CandidatEvaluation
+ model = recr.CandidatEvaluation
class EvaluateurForm(forms.Form):
evaluateurs = forms.ModelMultipleChoiceField(queryset=
- Evaluateur.objects.all())
+ recr.Evaluateur.objects.all())
def __init__(self, *args, **kwargs):
self.candidats = kwargs.pop('candidats')
################################################################################
# OFFRE EMPLOI
################################################################################
-class PostulerOffreEmploiForm(BetterModelForm):
- def __init__(self, *args, **kwargs):
+class CandidatPieceForm(inlineformset_factory(recr.Candidat, recr.CandidatPiece)):
+ pass
+
+class PostulerOffreEmploiForm(ModelForm):
+ def __init__(self, *args, **kwargs):
self.offre_emploi = kwargs.pop('offre_emploi')
- self.actif = True
- # Statut de la cadidature à Nouveau
- self.statut = STATUT_CHOICES[0]
+ #import pdb;pdb.set_trace()
super(PostulerOffreEmploiForm, self).__init__(*args, **kwargs)
def save(self):
super(PostulerOffreEmploiForm, self).save()
class Meta:
- fieldsets = [
- ('Informations personnelles', {
- 'fields': ['prenom','nom','genre', 'nationalite',
- 'date_naissance', 'situation_famille',
- 'nombre_dependant',]}),
- ('Adresse', {
- 'fields': ['adresse', 'ville', 'etat_province', 'pays', ]}),
- ('Informations professionnelles', {
- 'fields': ['niveau_diplome', 'employeur_actuel',
- 'poste_actuel', 'domaine_professionnel', ]
- })]
- model = Candidat
+ model = recr.Candidat
+ exclude = ('actif', 'offre_emploi',)
+ fields = ('nom', 'prenom', 'genre', 'nationalite', 'date_naissance',
+ 'situation_famille', 'nombre_dependant', 'niveau_diplome',
+ 'employeur_actuel', 'poste_actuel', 'domaine_professionnel',
+ 'adresse', 'ville', 'etat_province', 'pays', )
class CandidatPiece(models.Model):
candidat = models.ForeignKey(Candidat, db_column='candidat',
- related_name='+')
+ related_name='candidat_piece')
nom = models.CharField(max_length=255)
#path = PrivateFileField("file", upload_to=candidat_piece_dispatch)
path = models.FileField(upload_to=candidat_piece_dispatch,
- storage=storage_prive)
+ storage=storage_prive, )
def __unicode__(self):
return '%s' % (self.nom)
--- /dev/null
+<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.path %}
+ <a href="{{ f.initial.path.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>
</div>
<form action="" method="post">
- {{ form.as_p }}
+ <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.date_naissance.label }}</td>
+ <td>{{ form.date_naissance }}</td>
+ </tr>
+ <tr>
+ <td>{{ form.situation_famille.label }}</td>
+ <td>{{ form.situation_famille }}</td>
+ </tr>
+ <tr>
+ <td>{{ form.nombre_dependant.label }}</td>
+ <td>{{ form.nombre_dependant }}</td>
+ </tr>
+ </tbody>
+ </table>
+ </fieldset>
+ <fieldset>
+ <h2>Adresse</h2>
+ <table id="adresse">
+ <tbody>
+ <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.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>
<div class="submit-row">
- <input type="submit" name="_save" class="default" value="Enregistrer">
+ <input type="submit" name="save" value="Enregistrer" />
</div>
</form>
Context(c), context_instance = RequestContext(request))
def postuler_appel_offre(request):
+ vars = dict()
offre_emploi = get_object_or_404(OffreEmploi, id=request.GET.get('id'))
candidat = Candidat()
candidat.offre_emploi = offre_emploi
+
if request.method == "POST":
- form = PostulerOffreEmploiForm(request.POST, instance=candidat,
- offre_emploi=offre_emploi)
- if form.is_valid():
+ form = PostulerOffreEmploiForm(request.POST, request.FILES, instance=candidat, offre_emploi=offre_emploi)
+ piecesForm = CandidatPieceForm(request.POST, request.FILES, instance=candidat)
+ #import pdb;pdb.set_trace()
+ if form.is_valid() and piecesForm.is_valid():
form.save()
messages.add_message(request, messages.SUCCESS,
"Votre application à l'appel d'offre d'emploi a \
été effectuée.")
return redirect("admin:recrutement_offreemploi_changelist")
else:
- form = PostulerOffreEmploiForm(offre_emploi=offre_emploi)
+ form = PostulerOffreEmploiForm(instance=candidat, offre_emploi=offre_emploi)
+ piecesForm = CandidatPieceForm(instance=candidat)
- c = {'form' : form}
- return render_to_response("recrutement/postuler_appel_offre.html",
- Context(c), context_instance = RequestContext(request))
+ vars.update(dict(form=form, candidat=candidat, piecesForm=piecesForm, ))
+
+ return render_to_response('recrutement/postuler_appel_offre.html', vars,
+ RequestContext(request))
(r'^deconnexion/$', 'django.contrib.auth.views.logout'),
(r'^dae/', include('project.dae.urls')),
(r'^recrutement/', include('project.recrutement.urls')),
- url(r'^recrutement/affecter_evaluateurs_candidats/$', 'recrutement.views.affecter_evaluateurs_candidats',
+ url(r'^recrutement/affecter_evaluateurs_candidats/$',
+ 'recrutement.views.affecter_evaluateurs_candidats',
name='affecter_evaluateurs_candidats'),
- url(r'^recrutement/evaluer_candidat/$', 'recrutement.views.evaluer_candidat', name='evaluer_candidat'),
- url(r'^recrutement/postuler_appel_offre/$', 'recrutement.views.postuler_appel_offre', name='postuler_appel_offre'),
+ url(r'^recrutement/pieces/$', 'recrutement.views.postuler_appel_offre', name='pieces'),
+ url(r'^recrutement/evaluer_candidat/$',
+ 'recrutement.views.evaluer_candidat', name='evaluer_candidat'),
+ url(r'^recrutement/postuler_appel_offre/$',
+ 'recrutement.views.postuler_appel_offre', name='postuler_appel_offre'),
(r'^', include('project.rh.urls')),
- (r'^prive/(?P<path>.*)$', 'django.views.static.serve', {'document_root': settings.PRIVE_MEDIA_ROOT}),
+ (r'^prive/(?P<path>.*)$', 'django.views.static.serve',
+ {'document_root': settings.PRIVE_MEDIA_ROOT}),
)
if settings.DEBUG: