1 {% extends 'base.html' %}
4 {% block title %}RH - DAE - Poste{% endblock %}
5 {% block titre %}Ressources humaines{% endblock %}
7 Demande d'autorisation d'embauche
11 <script src=
"{{ MEDIA_URL }}js/jquery-1.5.1.min.js"
12 type=
"text/javascript"></script>
13 <script src=
"{{ MEDIA_URL }}js/jquery-ui-1.8.11.custom.min.js"
14 type=
"text/javascript"></script>
16 {% comment %} style pour le calendier {% endcomment %}
17 <script type=
"text/javascript">
18 window.__admin_media_prefix__ =
"{% filter escapejs %}{% admin_media_prefix %}{% endfilter %}";
20 <link rel=
"stylesheet" type=
"text/css" href=
"{{ MEDIA_URL }}css/calendrier.css" />
21 <script type=
"text/javascript" src=
"/admin/jsi18n/"></script>
22 <script type=
"text/javascript" src=
"{% admin_media_prefix %}js/core.js"></script>
27 <link href=
"{{ MEDIA_URL }}/css/redmond/jquery-ui-1.8.11.custom.css"
31 .row {padding:
10px
0px; clear: both; display:block;}
32 .row * {float: left; margin:
0px; padding:
0px; margin-right:
4px;}
33 .row li {list-style-type: none;}
34 .underline {text-decoration: underline;}
35 .clear {display: block; clear: both;}
36 .note {text-decoration: underline; font-style: italic; margin-left:
12px;}
37 .info {font-size:
13px; font-style: italic;}
38 .noborder {border:none; margin:
0; padding;
0}
39 tr.noborder td {border:none; padding-left:
0;}
45 <h1>Demande d'autorisation de création de poste
</h1>
47 <form action=
"" method=
"post" enctype=
"multipart/form-data">
53 Poste existant : {{ poste.nom }} ({{ poste.implantation.nom }})
59 <th>{{ form.poste.label_tag }} :
<br />{{ form.poste.errors }}
</th>
60 <td>{{ form.poste }}
</td>
63 <th>{{ form.nom.label_tag }} :
<br />{{ form.nom.errors }}
</th>
64 <td>{{ form.nom }}
</td>
67 <th>{{ form.type_poste.label_tag }} :
<br />{{ form.type_poste.errors }}
</th>
68 <td>{{ form.type_poste }}
</td>
71 <th>{{ form.implantation.label_tag }} :
<br />{{ form.implantation.errors }}
</th>
72 <td>{{ form.implantation }}
</td>
75 <th>{{ form.service.label_tag }} :
<br />{{ form.service.errors }}
</th>
76 <td>{{ form.service }}
</td>
79 <th>{{ form.responsable.label_tag }} :
<br />{{ form.responsable.errors }}
</th>
80 <td>{{ form.responsable }}
</td>
91 <th>{{ form.statut_residence.label_tag }} :
<br />{{ form.statut_residence.errors }}
</th>
94 {{ form.statut_residence }}
95 {{ form.mise_a_disposition.label_tag }}
96 {{ form.mise_a_disposition.errors }}
97 {{ form.mise_a_disposition }}
102 <th>{{ form.appel.label_tag }} :
<br />{{ form.appel.errors }}
</th>
114 <h2>Durée prévue du poste
</h2>
115 <span class=
"info">Indépendamment du titulaire du poste
</span>
119 <th rowspan=
"2">Durée :
</th>
122 {{ form.date_debut }}
<br />
123 <span class=
"info">({{form.date_debut.help_text }})
</span><br />
124 {{ form.date_debut.errors }}
128 {{ form.date_fin }}
<br />
129 <span class=
"info">({{form.date_fin.help_text }})
</span><br />
130 {{ form.date_fin.errors }}
132 <th>{{ form.regime_travail.label_tag }} :
<br />{{ form.regime_travail.errors }}
</th>
134 {{ form.regime_travail }}
135 <span class=
"info">{{ form.regime_travail.help_text }}
</span>
139 <td colspan=
"4" class=
"info">
140 <p>Pour une durée indéterminée, spécifier uniquement la date de début.
</p>
143 {{ form.regime_travail_nb_heure_semaine.label_tag }} :
<br />
144 {{ form.regime_travail_nb_heure_semaine.errors }}
146 <td>{{ form.regime_travail_nb_heure_semaine }}
</td>
153 <h2>Classement du poste
</h2>
160 <th>Valeur du point
</th>
162 <th colspan=
"2">Salaire de base
</th>
163 <th colspan=
"2">Indemnité, responsabilité (le cas échéant)
</th>
164 <th colspan=
"2">Autres
</th>
165 <th colspan=
"2">TOTAL
</th>
166 <th>Taux
> €
</th>
167 <th colspan=
"2">Conversion EUR
</th>
172 {{ form.classement_min }}
173 {{ form.classement_min.errors }}
176 {{ form.coefficient_min }}
177 {{ form.coefficient_min.errors }}
180 {{ form.valeur_point_min }}
181 {{ form.valeur_point_min.errors }}
184 {{ form.devise_min }}
185 {{ form.devise_min.errors }}
188 {{ form.salaire_min }}
189 {{ form.salaire_min.errors }}
191 <td><span class=
"devise_min_code">EUR
</span></td>
192 <td>{{ form.indemn_min }}
</td>
193 <td><span class=
"devise_min_code">EUR
</span></td>
194 <td>{{ form.autre_min }}
</td>
195 <td><span class=
"devise_min_code">EUR
</span></td>
196 <td id=
"total_min" class=
"cell-nombre">0.00</td>
197 <td><span class=
"devise_min_code">EUR
</span></td>
198 <td id=
"taux_min_euro_display">1</td>
199 <td id=
"total_min_euro" class=
"cell-nombre">0.00</td>
205 {{ form.classement_max }}
206 {{ form.classement_max.errors }}
209 {{ form.coefficient_max }}
210 {{ form.coefficient_max.errors }}
213 {{ form.valeur_point_max }}
214 {{ form.valeur_point_max.errors }}
217 {{ form.devise_max }}
218 {{ form.devise_max.errors }}
221 {{ form.salaire_max }}
222 {{ form.salaire_max.errors }}
224 <td><span class=
"devise_max_code">EUR
</span></td>
225 <td>{{ form.indemn_max }}
</td>
226 <td><span class=
"devise_max_code">EUR
</span></td>
227 <td>{{ form.autre_max }}
</td>
228 <td><span class=
"devise_max_code">EUR
</span></td>
229 <td id=
"total_max" class=
"cell-nombre">0.00</td>
230 <td><span class=
"devise_max_code">EUR
</span></td>
231 <td id=
"taux_max_euro_display">1</td>
232 <td id=
"total_max_euro" class=
"cell-nombre">0.00</td>
238 <p class=
"info">N.B Conversion en EUROS au taux de change budgétaire
</p>
241 {% comment %}{% if new %}{% endcomment %}
243 <h2>Éléments de comparaison
</h2>
244 <span class=
"info">Compléter uniquement lors de la création d'un poste
</span>
250 {{ form.devise_comparaison }}
251 {{ form.devise_comparaison.errors }}
260 <th colspan=
"2">Entreprise locale
</th>
261 <th colspan=
"2">Université
</th>
262 <th colspan=
"2">Fonction publique
</th>
263 <th colspan=
"2">ONG
</th>
264 <th colspan=
"2">Autre
</th>
268 <td>{{ form.comp_locale_min }}
</td>
269 <td><span class=
"devise_comp_code">€
</span></td>
270 <td>{{ form.comp_universite_min }}
</td>
271 <td><span class=
"devise_comp_code">€
</span></td>
272 <td>{{ form.comp_fonctionpub_min }}
</td>
273 <td><span class=
"devise_comp_code">€
</span></td>
274 <td>{{ form.comp_ong_min }}
</td>
275 <td><span class=
"devise_comp_code">€
</span></td>
276 <td>{{ form.comp_autre_min }}
</td>
277 <td><span class=
"devise_comp_code">€
</span></td>
281 <td>{{ form.comp_locale_max }}
</td>
282 <td><span class=
"devise_comp_code">€
</span></td>
283 <td>{{ form.comp_universite_max }}
</td>
284 <td><span class=
"devise_comp_code">€
</span></td>
285 <td>{{ form.comp_fonctionpub_max }}
</td>
286 <td><span class=
"devise_comp_code">€
</span></td>
287 <td>{{ form.comp_ong_max }}
</td>
288 <td><span class=
"devise_comp_code">€
</span></td>
289 <td>{{ form.comp_autre_max }}
</td>
290 <td><span class=
"devise_comp_code">€
</span></td>
295 {% comment %}{% endif %}{% endcomment %}
298 <h2>Pièces jointes
</h2>
299 <p class=
"info">Compléter uniquement lors de la création d'un poste
</p>
300 {% include
"dae/pieces.html" %}
302 <input type=
"submit" name=
"save" value=
"Sauvegarder" />
308 <table cellspacing=
"0" id=
"financing">
311 <th colspan=
"2">Montant
</th>
312 <th colspan=
"2">Pourcentage
</th>
316 {% for fin in poste.financements.all %}
318 <td>{{ fin.get_type_display }}
</td>
319 <td class=
"cell-nombre">{{ fin.montant }}
</td>
325 <td class=
"cell-nombre">{{ fin.pourcentage }}
</td>
327 <td>{{ fin.commentaire }}
</td>
328 <td><a href=
"{% url financement poste_key fin.id %}">Modifier
</a></td>
334 Vous devez enregister ce nouveau poste avant de pouvoir spécifier
335 la ou les sources de financement.
337 Aucun financement au registre
344 <a href=
"{% url financement poste_key %}" class=
"new">
345 Ajouter une source de financement
349 <div id=
"financing-form"></div>
352 <script type=
"text/javascript">
353 $('#id_poste').change(function() {
354 window.location = '{% url poste %}/' + $(this).val();
356 $('#financing a, a.new').click(function() {
357 $('#financing-form').load($(this).attr('href') + '?ajax=
1')
367 $(document).ready(function() {
368 valeur_min = '
<input type=
"hidden" id=
"valeur_min" name=
"valeur_min" value=
"0" disabled=
"disabled">'
369 devise_min_code = '
<input type=
"hidden" id=
"devise_min_code" name=
"devise_min_code" value=
"EUR" disabled=
"disabled">'
370 taux_min_euro = '
<input type=
"hidden" id=
"taux_min_euro" name=
"taux_min_euro" value=
"1" disabled=
"disabled">'
371 $('#id_valeur_point_min').after(valeur_min)
372 $('#id_devise_min').after(devise_min_code)
373 $('#total_min_euro').after(taux_min_euro)
375 /* valeur_point, devise et taux de l'implantation par défaut */
377 implantation = $('id_implantation').val();
378 valeur_point_min = $('#id_valeur_point_min').val();
379 if (valeur_point_min == '' and implantation != '')
381 /* simuler id_valeur_point_min change */
384 /* simuler id_devise_min change */
385 devise_min = $('#id_devise_min').val();
386 url_devise_code =
"{% url dae_devise_code %}";
387 $.post(url_devise_code, {'devise':devise_min}, function(data){
388 $('#devise_min_code').val(data[
"devise_code"]);
389 $('#taux_min_euro').val(data[
"taux_euro"]);
390 $('#taux_min_euro_display').empty();
391 $('#taux_min_euro_display').text(data[
"taux_euro"]);
392 $('.devise_min_code').trigger('update_devise_min_code');
393 $('#total_min_euro').trigger('update_total_min_euro');
396 $('#total_min').trigger('update_total_min');
398 $('#total_min_euro').trigger('update_total_min_euro');
401 $('#id_coefficient_min').bind('coeff_min_modified', function(){
402 $('#id_salaire_min').trigger('update_salaire_min');
404 $('.devise_min_code').bind('update_devise_min_code', function(){
405 devise_code = $('#devise_min_code').val();
406 $('.devise_min_code').empty();
407 $('.devise_min_code').text(devise_code);
409 $('#id_salaire_min').bind('update_salaire_min', function(){
410 valeur = $('#valeur_min').val();
411 coeff = $('#id_coefficient_min').val();
412 salaire = coeff * valeur;
413 salaire = clean_float(salaire);
414 $(this).val(salaire);
415 $('#total_min').trigger('update_total_min');
417 $('#total_min').bind('update_total_min', function(){
419 salaire = $('#id_salaire_min').val();
420 indemn = $('#id_indemn_min').val();
421 autre = $('#id_autre_min').val();
422 salaire = clean_float(salaire);
423 indemn = clean_float(indemn);
424 autre = clean_float(autre);
425 total = salaire + indemn + autre;
427 $(this).text(total.toFixed(
2));
428 $('#total_min_euro').trigger('update_total_min_euro');
430 $('#total_min_euro').bind('update_total_min_euro', function(){
431 total = $('#total_min').text();
432 taux_euro = $('#taux_min_euro').val();
433 total = clean_float(total);
434 taux_euro = clean_float(taux_euro);
435 total_euro = total * taux_euro;
437 $(this).text(total_euro.toFixed(
2));
440 $('#id_coefficient_min').change(function(){
441 $(this).trigger('coeff_min_modified');
443 $('#id_classement_min').change(function() {
444 url =
"{% url dae_coefficient %}";
445 $.post(url, {'classement':$(this).val()}, function(data){
446 $('#id_coefficient_min').val(data[
"coefficient"]);
447 $('#id_coefficient_min').trigger('coeff_min_modified');
450 $('#id_valeur_point_min').change(function() {
451 url_valeur =
"{% url dae_valeur %}";
452 url_devise =
"{% url dae_devise %}";
453 min_now = $('#id_valeur_point_min').val();
454 max_now = $('#id_valeur_point_max').val();
455 $.post(url_valeur, {'valeur_point':min_now}, function(data){
456 $('#valeur_min').val(data[
"valeur"]);
457 $('#id_salaire_min').trigger('update_salaire_min');
458 $('#total_min_euro').trigger('update_total_min_euro');
460 $('#id_valeur_point_max').val(min_now);
461 $('#valeur_max').val(data[
"valeur"]);
462 $('#id_salaire_max').trigger('update_salaire_max');
463 $('#total_max_euro').trigger('update_total_max_euro');
466 $.post(url_devise, {'valeur_point':min_now}, function(data){
467 $('#id_devise_min').val(data[
"devise"]);
468 $('#devise_min_code').val(data[
"devise_code"]);
469 $('#taux_min_euro').val(data[
"taux_euro"]);
470 $('#taux_min_euro_display').empty();
471 $('#taux_min_euro_display').text(data[
"taux_euro"]);
472 $('.devise_min_code').trigger('update_devise_min_code');
473 $('#total_min_euro').trigger('update_total_min_euro');
475 $('#id_devise_max').val(data[
"devise"]);
476 $('#devise_max_code').val(data[
"devise_code"]);
477 $('#taux_max_euro').val(data[
"taux_euro"]);
478 $('#taux_max_euro_display').empty();
479 $('#taux_max_euro_display').text(data[
"taux_euro"]);
480 $('.devise_max_code').trigger('update_devise_max_code');
481 $('#total_max_euro').trigger('update_total_max_euro');
485 $('#id_devise_min').change(function(){
486 devise_min = $('#id_devise_min').val();
487 url_devise_code =
"{% url dae_devise_code %}";
488 $.post(url_devise_code, {'devise':devise_min}, function(data){
489 $('#devise_min_code').val(data[
"devise_code"]);
490 $('#taux_min_euro').val(data[
"taux_euro"]);
491 $('#taux_min_euro_display').empty();
492 $('#taux_min_euro_display').text(data[
"taux_euro"]);
493 $('.devise_min_code').trigger('update_devise_min_code');
494 $('#total_min_euro').trigger('update_total_min_euro');
497 $('#id_salaire_min').change(function(){
498 $('#total_min').trigger('update_total_min');
500 $('#id_indemn_min').change(function(){
501 $('#total_min').trigger('update_total_min');
503 $('#id_autre_min').change(function(){
504 $('#total_min').trigger('update_total_min');
508 $(document).ready(function() {
509 valeur_max = '
<input type=
"hidden" id=
"valeur_max" name=
"valeur_max" value=
"0" disabled=
"disabled">'
510 devise_max_code = '
<input type=
"hidden" id=
"devise_max_code" name=
"devise_max_code" value=
"EUR" disabled=
"disabled">'
511 taux_max_euro = '
<input type=
"hidden" id=
"taux_max_euro" name=
"taux_max_euro" value=
"1" disabled=
"disabled">'
512 $('#id_valeur_point_max').after(valeur_max)
513 $('#id_devise_max').after(devise_max_code)
514 $('#total_max_euro').after(taux_max_euro)
516 /* simuler id_devise_max change */
517 devise_max = $('#id_devise_max').val();
518 url_devise_code =
"{% url dae_devise_code %}";
519 $.post(url_devise_code, {'devise':devise_max}, function(data){
520 $('#devise_max_code').val(data[
"devise_code"]);
521 $('#taux_max_euro').val(data[
"taux_euro"]);
522 $('#taux_max_euro_display').empty();
523 $('#taux_max_euro_display').text(data[
"taux_euro"]);
524 $('.devise_max_code').trigger('update_devise_max_code');
525 $('#total_max_euro').trigger('update_total_max_euro');
528 $('#total_max').trigger('update_total_max');
530 $('#total_max_euro').trigger('update_total_max_euro');
533 $('#id_coefficient_max').bind('coeff_max_modified', function(){
534 $('#id_salaire_max').trigger('update_salaire_max');
536 $('.devise_max_code').bind('update_devise_max_code', function(){
537 devise_code = $('#devise_max_code').val();
538 $('.devise_max_code').empty();
539 $('.devise_max_code').text(devise_code);
541 $('#id_salaire_max').bind('update_salaire_max', function(){
542 valeur = $('#valeur_max').val();
543 coeff = $('#id_coefficient_max').val();
544 salaire = coeff * valeur;
545 salaire = clean_float(salaire);
546 $(this).val(salaire);
547 $('#total_max').trigger('update_total_max');
549 $('#total_max').bind('update_total_max', function(){
551 salaire = $('#id_salaire_max').val();
552 indemn = $('#id_indemn_max').val();
553 autre = $('#id_autre_max').val();
554 salaire = clean_float(salaire);
555 indemn = clean_float(indemn);
556 autre = clean_float(autre);
557 total = salaire + indemn + autre;
559 $(this).text(total.toFixed(
2));
560 $('#total_max_euro').trigger('update_total_max_euro');
562 $('#total_max_euro').bind('update_total_max_euro', function(){
563 total = $('#total_max').text();
564 taux_euro = $('#taux_max_euro').val();
565 total = clean_float(total);
566 taux_euro = clean_float(taux_euro);
567 total_euro = total * taux_euro;
569 $(this).text(total_euro.toFixed(
2));
572 $('#id_coefficient_max').change(function(){
573 $(this).trigger('coeff_max_modified');
575 $('#id_classement_max').change(function() {
576 url =
"{% url dae_coefficient %}";
577 $.post(url, {'classement':$(this).val()}, function(data){
578 $('#id_coefficient_max').val(data[
"coefficient"]);
579 $('#id_coefficient_max').trigger('coeff_max_modified');
582 $('#id_valeur_point_max').change(function() {
583 url_valeur =
"{% url dae_valeur %}";
584 url_devise =
"{% url dae_devise %}";
585 min_now = $('#id_valeur_point_min').val();
586 max_now = $('#id_valeur_point_max').val();
587 $.post(url_valeur, {'valeur_point':max_now}, function(data){
588 $('#valeur_max').val(data[
"valeur"]);
589 $('#id_salaire_max').trigger('update_salaire_max');
590 $('#total_max_euro').trigger('update_total_max_euro');
592 $('#id_valeur_point_min').val(max_now);
593 $('#valeur_min').val(data[
"valeur"]);
594 $('#id_salaire_min').trigger('update_salaire_min');
595 $('#total_min_euro').trigger('update_total_min_euro');
598 $.post(url_devise, {'valeur_point':max_now}, function(data){
599 $('#id_devise_max').val(data[
"devise"]);
600 $('#devise_max_code').val(data[
"devise_code"]);
601 $('#taux_max_euro').val(data[
"taux_euro"]);
602 $('#taux_max_euro_display').empty();
603 $('#taux_max_euro_display').text(data[
"taux_euro"]);
604 $('.devise_max_code').trigger('update_devise_max_code');
605 $('#total_max_euro').trigger('update_total_max_euro');
607 $('#id_devise_min').val(data[
"devise"]);
608 $('#devise_min_code').val(data[
"devise_code"]);
609 $('#taux_min_euro').val(data[
"taux_euro"]);
610 $('#taux_min_euro_display').empty();
611 $('#taux_min_euro_display').text(data[
"taux_euro"]);
612 $('.devise_min_code').trigger('update_devise_min_code');
613 $('#total_min_euro').trigger('update_total_min_euro');
617 $('#id_devise_max').change(function(){
618 devise_max = $('#id_devise_max').val();
619 url_devise_code =
"{% url dae_devise_code %}";
620 $.post(url_devise_code, {'devise':devise_max}, function(data){
621 $('#devise_max_code').val(data[
"devise_code"]);
622 $('#taux_max_euro').val(data[
"taux_euro"]);
623 $('#taux_max_euro_display').empty();
624 $('#taux_max_euro_display').text(data[
"taux_euro"]);
625 $('.devise_max_code').trigger('update_devise_max_code');
626 $('#total_max_euro').trigger('update_total_max_euro');
629 $('#id_salaire_max').change(function(){
630 $('#total_max').trigger('update_total_max');
632 $('#id_indemn_max').change(function(){
633 $('#total_max').trigger('update_total_max');
635 $('#id_autre_max').change(function(){
636 $('#total_max').trigger('update_total_max');
641 $(document).ready(function() {
642 devise_comp_code = '
<input type=
"hidden" id=
"devise_comp_code" name=
"devise_comp_code" value=
"EUR" disabled=
"disabled">'
643 $('#id_devise_comparaison').after(devise_comp_code)
645 /* simuler id_devise_comparaison change */
646 devise_comparaison = $('#id_devise_comparaison').val();
647 url_devise_code =
"{% url dae_devise_code %}";
648 $.post(url_devise_code, {'devise':devise_comparaison}, function(data){
649 $('#devise_comp_code').val(data[
"devise_code"]);
650 $('.devise_comp_code').trigger('update_devise_comp_code');
653 $('.devise_comp_code').bind('update_devise_comp_code', function(){
654 devise_code = $('#devise_comp_code').val();
655 $('.devise_comp_code').empty();
656 $('.devise_comp_code').text(devise_code);
658 $('#id_devise_comparaison').change(function(){
659 devise_comparaison = $('#id_devise_comparaison').val();
660 url_devise_code =
"{% url dae_devise_code %}";
661 $.post(url_devise_code, {'devise':devise_comparaison}, function(data){
662 $('#devise_comp_code').val(data[
"devise_code"]);
663 $('.devise_comp_code').trigger('update_devise_comp_code');
668 function clean_float(value){
669 if (value == undefined)
672 output = parseFloat(value);
673 output = Math.round(output*
100)/
100;