1 {% extends 'base.html' %}
3 {% block title %}RH - DAE{% endblock %}
4 {% block titre %}Ressources humaines{% endblock %}
6 Demande d'autorisation d'embauche
10 <script src=
"{{ MEDIA_URL }}js/jquery-1.5.1.min.js"
11 type=
"text/javascript"></script>
12 <script src=
"{{ MEDIA_URL }}js/jquery-ui-1.8.11.custom.min.js"
13 type=
"text/javascript"></script>
14 <link href=
"{{ MEDIA_URL }}/css/redmond/jquery-ui-1.8.11.custom.css"
18 .row {padding:
10px
0px; clear: both; display:block;}
19 .row * {float: left; margin:
0px; padding:
0px; margin-right:
4px;}
20 .row li {list-style-type: none;}
21 .underline {text-decoration: underline;}
22 .clear {display: block; clear: both;}
23 .note {text-decoration: underline; font-style: italic; margin-left:
12px;}
24 .info {font-size:
13px; font-style: italic;}
25 .noborder {border:none; margin:
0; padding;
0}
26 tr.noborder td {border:none; padding-left:
0;}
31 <h1>Demande d'autorisation de création de poste
</h1>
33 <form action=
"" method=
"post" enctype=
"multipart/form-data">
39 Poste existant : {{ poste.nom }} ({{ poste.implantation.nom }})
45 <th>{{ form.poste.label_tag }} :
<br />{{ form.poste.errors }}
</th>
46 <td>{{ form.poste }}
</td>
49 <th>{{ form.nom.label_tag }} :
<br />{{ form.nom.errors }}
</th>
50 <td>{{ form.nom }}
</td>
53 <th>{{ form.type_poste.label_tag }} :
<br />{{ form.type_poste.errors }}
</th>
54 <td>{{ form.type_poste }}
</td>
57 <th>{{ form.implantation.label_tag }} :
<br />{{ form.implantation.errors }}
</th>
58 <td>{{ form.implantation }}
</td>
61 <th>{{ form.service.label_tag }} :
<br />{{ form.service.errors }}
</th>
62 <td>{{ form.service }}
</td>
65 <th>{{ form.responsable.label_tag }} :
<br />{{ form.responsable.errors }}
</th>
66 <td>{{ form.responsable }}
</td>
77 <th>{{ form.statut_residence.label_tag }} :
<br />{{ form.statut_residence.errors }}
</th>
80 {{ form.statut_residence }}
81 {{ form.mise_a_disposition.label_tag }}
82 {{ form.mise_a_disposition.errors }}
83 {{ form.mise_a_disposition }}
88 <th>{{ form.appel.label_tag }} :
<br />{{ form.appel.errors }}
</th>
100 <h2>Durée prévue du poste
</h2>
101 <span class=
"info">Indépendamment du titulaire du poste
</span>
105 <th rowspan=
"2">Durée :
</th>
108 {{ form.date_debut }}
<br />
109 <span class=
"info">({{form.date_debut.help_text }})
</span><br />
110 {{ form.date_debut.errors }}
114 {{ form.date_fin }}
<br />
115 <span class=
"info">({{form.date_fin.help_text }})
</span><br />
116 {{ form.date_fin.errors }}
120 <td colspan=
"4" class=
"info">Pour une durée indéterminée, spécifier uniquement la date de début.
</td>
123 <th>{{ form.regime_travail.label_tag }} :
<br />{{ form.regime_travail.errors }}
</th>
125 {{ form.regime_travail }}
126 <span class=
"info">{{ form.regime_travail.help_text }}
</span>
131 {{ form.regime_travail_nb_heure_semaine.label_tag }} :
<br />
132 {{ form.regime_travail_nb_heure_semaine.errors }}
134 <td colspan=
"4">{{ form.regime_travail_nb_heure_semaine }}
</td>
141 <h2>Classement du poste
</h2>
148 <th>Valeur du point
</th>
150 <th colspan=
"2">Salaire de base
</th>
151 <th colspan=
"2">Indemnité, responsabilité (le cas échéant)
</th>
152 <th colspan=
"2">Autres
</th>
153 <th colspan=
"2">TOTAL
</th>
154 <th>Taux
> €
</th>
155 <th colspan=
"2">Conversion EUR
</th>
160 {{ form.classement_min }}
161 {{ form.classement_min.errors }}
164 {{ form.coefficient_min }}
165 {{ form.coefficient_min.errors }}
168 {{ form.valeur_point_min }}
169 {{ form.valeur_point_min.errors }}
172 {{ form.devise_min }}
173 {{ form.devise_min.errors }}
176 {{ form.salaire_min }}
177 {{ form.salaire_min.errors }}
179 <td><span class=
"devise_min_code">EUR
</span></td>
180 <td>{{ form.indemn_min }}
</td>
181 <td><span class=
"devise_min_code">EUR
</span></td>
182 <td>{{ form.autre_min }}
</td>
183 <td><span class=
"devise_min_code">EUR
</span></td>
184 <td id=
"total_min" class=
"cell-nombre">0.00</td>
185 <td><span class=
"devise_min_code">EUR
</span></td>
186 <td id=
"taux_min_euro_display">1</td>
187 <td id=
"total_min_euro" class=
"cell-nombre">0.00</td>
193 {{ form.classement_max }}
194 {{ form.classement_max.errors }}
197 {{ form.coefficient_max }}
198 {{ form.coefficient_max.errors }}
201 {{ form.valeur_point_max }}
202 {{ form.valeur_point_max.errors }}
205 {{ form.devise_max }}
206 {{ form.devise_max.errors }}
209 {{ form.salaire_max }}
210 {{ form.salaire_max.errors }}
212 <td><span class=
"devise_max_code">EUR
</span></td>
213 <td>{{ form.indemn_max }}
</td>
214 <td><span class=
"devise_max_code">EUR
</span></td>
215 <td>{{ form.autre_max }}
</td>
216 <td><span class=
"devise_max_code">EUR
</span></td>
217 <td id=
"total_max" class=
"cell-nombre">0.00</td>
218 <td><span class=
"devise_max_code">EUR
</span></td>
219 <td id=
"taux_max_euro_display">1</td>
220 <td id=
"total_max_euro" class=
"cell-nombre">0.00</td>
226 <p class=
"info">N.B Conversion en EUROS au taux de change budgétaire
</p>
229 {% comment %}{% if new %}{% endcomment %}
231 <h2>Éléments de comparaison
</h2>
232 <p class=
"info">Compléter uniquement lors de la création d'un poste
</p>
238 {{ form.devise_comparaison }}
239 {{ form.devise_comparaison.errors }}
248 <th colspan=
"2">Entreprise locale
</th>
249 <th colspan=
"2">Université
</th>
250 <th colspan=
"2">Fonction publique
</th>
251 <th colspan=
"2">ONG
</th>
252 <th colspan=
"2">Autre
</th>
256 <td>{{ form.comp_locale_min }}
</td>
257 <td><span class=
"devise_comp_code">€
</span></td>
258 <td>{{ form.comp_universite_min }}
</td>
259 <td><span class=
"devise_comp_code">€
</span></td>
260 <td>{{ form.comp_fonctionpub_min }}
</td>
261 <td><span class=
"devise_comp_code">€
</span></td>
262 <td>{{ form.comp_ong_min }}
</td>
263 <td><span class=
"devise_comp_code">€
</span></td>
264 <td>{{ form.comp_autre_min }}
</td>
265 <td><span class=
"devise_comp_code">€
</span></td>
269 <td>{{ form.comp_locale_max }}
</td>
270 <td><span class=
"devise_comp_code">€
</span></td>
271 <td>{{ form.comp_universite_max }}
</td>
272 <td><span class=
"devise_comp_code">€
</span></td>
273 <td>{{ form.comp_fonctionpub_max }}
</td>
274 <td><span class=
"devise_comp_code">€
</span></td>
275 <td>{{ form.comp_ong_max }}
</td>
276 <td><span class=
"devise_comp_code">€
</span></td>
277 <td>{{ form.comp_autre_max }}
</td>
278 <td><span class=
"devise_comp_code">€
</span></td>
283 {% comment %}{% endif %}{% endcomment %}
286 <h2>Pièces jointes
</h2>
287 <p class=
"info">Compléter uniquement lors de la création d'un poste
</p>
289 {% for f in piecesForm.management_form %}
294 {% for field in piecesForm.forms
.0 %}
295 {% if not field.is_hidden %}
296 <th>{{ field.label }}
</th>
300 {% for f in piecesForm.forms %}
303 {% if f.initial.fichier %}
304 <a href=
"{{ f.initial.fichier.url }}" target=
"_blank">Télécharger
</a>
308 {% if not field.is_hidden %}
318 <input type=
"submit" name=
"save" value=
"Sauvegarder" />
324 <table cellspacing=
"0" id=
"financing">
333 {% for fin in poste.financements.all %}
335 <td>{{ fin.get_type_display }}
</td>
336 <td>{{ fin.montant }}
</td>
342 <td>{{ fin.pourcentage }}
</td>
343 <td>{{ fin.commentaire }}
</td>
344 <td><a href=
"{% url financement poste_key fin.id %}">Modifier
</a></td>
350 Vous devez enregister ce nouveau poste avant de pouvoir spécifier
351 la ou les sources de financement.
353 Aucun financement au registre
360 <a href=
"{% url financement poste_key %}" class=
"new">
361 Ajouter une source de financement
365 <div id=
"financing-form"></div>
368 <script type=
"text/javascript">
369 $('#id_poste').change(function() {
370 window.location = '{% url poste %}/' + $(this).val();
372 $('#financing a, a.new').click(function() {
373 $('#financing-form').load($(this).attr('href') + '?ajax=
1')
383 $(document).ready(function() {
384 valeur_min = '
<input type=
"hidden" id=
"valeur_min" name=
"valeur_min" value=
"0" disabled=
"disabled">'
385 devise_min_code = '
<input type=
"hidden" id=
"devise_min_code" name=
"devise_min_code" value=
"EUR" disabled=
"disabled">'
386 taux_min_euro = '
<input type=
"hidden" id=
"taux_min_euro" name=
"taux_min_euro" value=
"1" disabled=
"disabled">'
387 $('#id_valeur_point_min').after(valeur_min)
388 $('#id_devise_min').after(devise_min_code)
389 $('#total_min_euro').after(taux_min_euro)
391 /* valeur_point, devise et taux de l'implantation par défaut */
393 implantation = $('id_implantation').val();
394 valeur_point_min = $('#id_valeur_point_min').val();
395 if (valeur_point_min == '' and implantation != '')
397 /* simuler id_valeur_point_min change */
400 /* simuler id_devise_min change */
401 devise_min = $('#id_devise_min').val();
402 url_devise_code =
"{% url dae_devise_code %}";
403 $.post(url_devise_code, {'devise':devise_min}, function(data){
404 $('#devise_min_code').val(data[
"devise_code"]);
405 $('#taux_min_euro').val(data[
"taux_euro"]);
406 $('#taux_min_euro_display').empty();
407 $('#taux_min_euro_display').text(data[
"taux_euro"]);
408 $('.devise_min_code').trigger('update_devise_min_code');
409 $('#total_min_euro').trigger('update_total_min_euro');
412 $('#total_min').trigger('update_total_min');
414 $('#total_min_euro').trigger('update_total_min_euro');
417 $('#id_coefficient_min').bind('coeff_min_modified', function(){
418 $('#id_salaire_min').trigger('update_salaire_min');
420 $('.devise_min_code').bind('update_devise_min_code', function(){
421 devise_code = $('#devise_min_code').val();
422 $('.devise_min_code').empty();
423 $('.devise_min_code').text(devise_code);
425 $('#id_salaire_min').bind('update_salaire_min', function(){
426 valeur = $('#valeur_min').val();
427 coeff = $('#id_coefficient_min').val();
428 salaire = coeff * valeur;
429 salaire = clean_float(salaire);
430 $(this).val(salaire);
431 $('#total_min').trigger('update_total_min');
433 $('#total_min').bind('update_total_min', function(){
435 salaire = $('#id_salaire_min').val();
436 indemn = $('#id_indemn_min').val();
437 autre = $('#id_autre_min').val();
438 salaire = clean_float(salaire);
439 indemn = clean_float(indemn);
440 autre = clean_float(autre);
441 total = salaire + indemn + autre;
443 $(this).text(total.toFixed(
2));
444 $('#total_min_euro').trigger('update_total_min_euro');
446 $('#total_min_euro').bind('update_total_min_euro', function(){
447 total = $('#total_min').text();
448 taux_euro = $('#taux_min_euro').val();
449 total = clean_float(total);
450 taux_euro = clean_float(taux_euro);
451 total_euro = total * taux_euro;
453 $(this).text(total_euro.toFixed(
2));
456 $('#id_coefficient_min').change(function(){
457 $(this).trigger('coeff_min_modified');
459 $('#id_classement_min').change(function() {
460 url =
"{% url dae_coefficient %}";
461 $.post(url, {'classement':$(this).val()}, function(data){
462 $('#id_coefficient_min').val(data[
"coefficient"]);
463 $('#id_coefficient_min').trigger('coeff_min_modified');
466 $('#id_valeur_point_min').change(function() {
467 url_valeur =
"{% url dae_valeur %}";
468 url_devise =
"{% url dae_devise %}";
469 min_now = $('#id_valeur_point_min').val();
470 max_now = $('#id_valeur_point_max').val();
471 $.post(url_valeur, {'valeur_point':min_now}, function(data){
472 $('#valeur_min').val(data[
"valeur"]);
473 $('#id_salaire_min').trigger('update_salaire_min');
474 $('#total_min_euro').trigger('update_total_min_euro');
476 $('#id_valeur_point_max').val(min_now);
477 $('#valeur_max').val(data[
"valeur"]);
478 $('#id_salaire_max').trigger('update_salaire_max');
479 $('#total_max_euro').trigger('update_total_max_euro');
482 $.post(url_devise, {'valeur_point':min_now}, function(data){
483 $('#id_devise_min').val(data[
"devise"]);
484 $('#devise_min_code').val(data[
"devise_code"]);
485 $('#taux_min_euro').val(data[
"taux_euro"]);
486 $('#taux_min_euro_display').empty();
487 $('#taux_min_euro_display').text(data[
"taux_euro"]);
488 $('.devise_min_code').trigger('update_devise_min_code');
489 $('#total_min_euro').trigger('update_total_min_euro');
491 $('#id_devise_max').val(data[
"devise"]);
492 $('#devise_max_code').val(data[
"devise_code"]);
493 $('#taux_max_euro').val(data[
"taux_euro"]);
494 $('#taux_max_euro_display').empty();
495 $('#taux_max_euro_display').text(data[
"taux_euro"]);
496 $('.devise_max_code').trigger('update_devise_max_code');
497 $('#total_max_euro').trigger('update_total_max_euro');
501 $('#id_devise_min').change(function(){
502 devise_min = $('#id_devise_min').val();
503 url_devise_code =
"{% url dae_devise_code %}";
504 $.post(url_devise_code, {'devise':devise_min}, function(data){
505 $('#devise_min_code').val(data[
"devise_code"]);
506 $('#taux_min_euro').val(data[
"taux_euro"]);
507 $('#taux_min_euro_display').empty();
508 $('#taux_min_euro_display').text(data[
"taux_euro"]);
509 $('.devise_min_code').trigger('update_devise_min_code');
510 $('#total_min_euro').trigger('update_total_min_euro');
513 $('#id_salaire_min').change(function(){
514 $('#total_min').trigger('update_total_min');
516 $('#id_indemn_min').change(function(){
517 $('#total_min').trigger('update_total_min');
519 $('#id_autre_min').change(function(){
520 $('#total_min').trigger('update_total_min');
524 $(document).ready(function() {
525 valeur_max = '
<input type=
"hidden" id=
"valeur_max" name=
"valeur_max" value=
"0" disabled=
"disabled">'
526 devise_max_code = '
<input type=
"hidden" id=
"devise_max_code" name=
"devise_max_code" value=
"EUR" disabled=
"disabled">'
527 taux_max_euro = '
<input type=
"hidden" id=
"taux_max_euro" name=
"taux_max_euro" value=
"1" disabled=
"disabled">'
528 $('#id_valeur_point_max').after(valeur_max)
529 $('#id_devise_max').after(devise_max_code)
530 $('#total_max_euro').after(taux_max_euro)
532 /* simuler id_devise_max change */
533 devise_max = $('#id_devise_max').val();
534 url_devise_code =
"{% url dae_devise_code %}";
535 $.post(url_devise_code, {'devise':devise_max}, function(data){
536 $('#devise_max_code').val(data[
"devise_code"]);
537 $('#taux_max_euro').val(data[
"taux_euro"]);
538 $('#taux_max_euro_display').empty();
539 $('#taux_max_euro_display').text(data[
"taux_euro"]);
540 $('.devise_max_code').trigger('update_devise_max_code');
541 $('#total_max_euro').trigger('update_total_max_euro');
544 $('#total_max').trigger('update_total_max');
546 $('#total_max_euro').trigger('update_total_max_euro');
549 $('#id_coefficient_max').bind('coeff_max_modified', function(){
550 $('#id_salaire_max').trigger('update_salaire_max');
552 $('.devise_max_code').bind('update_devise_max_code', function(){
553 devise_code = $('#devise_max_code').val();
554 $('.devise_max_code').empty();
555 $('.devise_max_code').text(devise_code);
557 $('#id_salaire_max').bind('update_salaire_max', function(){
558 valeur = $('#valeur_max').val();
559 coeff = $('#id_coefficient_max').val();
560 salaire = coeff * valeur;
561 salaire = clean_float(salaire);
562 $(this).val(salaire);
563 $('#total_max').trigger('update_total_max');
565 $('#total_max').bind('update_total_max', function(){
567 salaire = $('#id_salaire_max').val();
568 indemn = $('#id_indemn_max').val();
569 autre = $('#id_autre_max').val();
570 salaire = clean_float(salaire);
571 indemn = clean_float(indemn);
572 autre = clean_float(autre);
573 total = salaire + indemn + autre;
575 $(this).text(total.toFixed(
2));
576 $('#total_max_euro').trigger('update_total_max_euro');
578 $('#total_max_euro').bind('update_total_max_euro', function(){
579 total = $('#total_max').text();
580 taux_euro = $('#taux_max_euro').val();
581 total = clean_float(total);
582 taux_euro = clean_float(taux_euro);
583 total_euro = total * taux_euro;
585 $(this).text(total_euro.toFixed(
2));
588 $('#id_coefficient_max').change(function(){
589 $(this).trigger('coeff_max_modified');
591 $('#id_classement_max').change(function() {
592 url =
"{% url dae_coefficient %}";
593 $.post(url, {'classement':$(this).val()}, function(data){
594 $('#id_coefficient_max').val(data[
"coefficient"]);
595 $('#id_coefficient_max').trigger('coeff_max_modified');
598 $('#id_valeur_point_max').change(function() {
599 url_valeur =
"{% url dae_valeur %}";
600 url_devise =
"{% url dae_devise %}";
601 min_now = $('#id_valeur_point_min').val();
602 max_now = $('#id_valeur_point_max').val();
603 $.post(url_valeur, {'valeur_point':max_now}, function(data){
604 $('#valeur_max').val(data[
"valeur"]);
605 $('#id_salaire_max').trigger('update_salaire_max');
606 $('#total_max_euro').trigger('update_total_max_euro');
608 $('#id_valeur_point_min').val(max_now);
609 $('#valeur_min').val(data[
"valeur"]);
610 $('#id_salaire_min').trigger('update_salaire_min');
611 $('#total_min_euro').trigger('update_total_min_euro');
614 $.post(url_devise, {'valeur_point':max_now}, function(data){
615 $('#id_devise_max').val(data[
"devise"]);
616 $('#devise_max_code').val(data[
"devise_code"]);
617 $('#taux_max_euro').val(data[
"taux_euro"]);
618 $('#taux_max_euro_display').empty();
619 $('#taux_max_euro_display').text(data[
"taux_euro"]);
620 $('.devise_max_code').trigger('update_devise_max_code');
621 $('#total_max_euro').trigger('update_total_max_euro');
623 $('#id_devise_min').val(data[
"devise"]);
624 $('#devise_min_code').val(data[
"devise_code"]);
625 $('#taux_min_euro').val(data[
"taux_euro"]);
626 $('#taux_min_euro_display').empty();
627 $('#taux_min_euro_display').text(data[
"taux_euro"]);
628 $('.devise_min_code').trigger('update_devise_min_code');
629 $('#total_min_euro').trigger('update_total_min_euro');
633 $('#id_devise_max').change(function(){
634 devise_max = $('#id_devise_max').val();
635 url_devise_code =
"{% url dae_devise_code %}";
636 $.post(url_devise_code, {'devise':devise_max}, function(data){
637 $('#devise_max_code').val(data[
"devise_code"]);
638 $('#taux_max_euro').val(data[
"taux_euro"]);
639 $('#taux_max_euro_display').empty();
640 $('#taux_max_euro_display').text(data[
"taux_euro"]);
641 $('.devise_max_code').trigger('update_devise_max_code');
642 $('#total_max_euro').trigger('update_total_max_euro');
645 $('#id_salaire_max').change(function(){
646 $('#total_max').trigger('update_total_max');
648 $('#id_indemn_max').change(function(){
649 $('#total_max').trigger('update_total_max');
651 $('#id_autre_max').change(function(){
652 $('#total_max').trigger('update_total_max');
657 $(document).ready(function() {
658 devise_comp_code = '
<input type=
"hidden" id=
"devise_comp_code" name=
"devise_comp_code" value=
"EUR" disabled=
"disabled">'
659 $('#id_devise_comparaison').after(devise_comp_code)
661 /* simuler id_devise_comparaison change */
662 devise_comparaison = $('#id_devise_comparaison').val();
663 url_devise_code =
"{% url dae_devise_code %}";
664 $.post(url_devise_code, {'devise':devise_comparaison}, function(data){
665 $('#devise_comp_code').val(data[
"devise_code"]);
666 $('.devise_comp_code').trigger('update_devise_comp_code');
669 $('.devise_comp_code').bind('update_devise_comp_code', function(){
670 devise_code = $('#devise_comp_code').val();
671 $('.devise_comp_code').empty();
672 $('.devise_comp_code').text(devise_code);
674 $('#id_devise_comparaison').change(function(){
675 devise_comparaison = $('#id_devise_comparaison').val();
676 url_devise_code =
"{% url dae_devise_code %}";
677 $.post(url_devise_code, {'devise':devise_comparaison}, function(data){
678 $('#devise_comp_code').val(data[
"devise_code"]);
679 $('.devise_comp_code').trigger('update_devise_comp_code');
684 function clean_float(value){
685 if (value == undefined)
688 output = parseFloat(value);
689 output = Math.round(output*
100)/
100;