Commit 8fa0a973 authored by Jean-Philippe Metivier's avatar Jean-Philippe Metivier
Browse files

Bloquage des jurys avec rapporteur non valide

parent f43c4332
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
Journal des modifications
=========================

3.0.7
----- 
- Nouveau critère de bloquage des soutenances basé sur la validité des rapporteurs.

3.0.6
-----
- [FIX] Non affichage des justificatifs historisés dans la proposition de soutenance
+18 −0
Original line number Diff line number Diff line
# Version 3.0.7

## 1. Sur le serveur d'application

- Placez-vous dans le répertoire de l'application puis lancez la commande suivante
  pour installer la nouvelle version :

```bash
git fetch --tags && git checkout --force 3.0.7 && bash ./install.sh
```

- Selon le moteur PHP que vous avez installé, rechargez le service, exemple :
    - php7.3-fpm         : `service php7.3-fpm reload`
    - apache2-mod-php7.3 : `service apache2 reload`

## 2. Dans la base de données

Néant.
+10 −1
Original line number Diff line number Diff line
@@ -330,6 +330,15 @@ class PropositionService {

        $indicateurs = [];

        /** Bad rapporteur */
        $indicateurs["bad-rapporteur"]["Nombre"] = 0;
        foreach ($proposition->getMembres() as $membre) {
            if ($membre->estRapporteur() AND $membre->getQualite()->getRang() === 'B' AND $membre->getQualite()->getHdr() !== 'O') {
                $indicateurs["bad-rapporteur"]["Nombre"]++;
            }
        }
        $indicateurs["bad-rapporteur"]["valide"] = ($indicateurs["bad-rapporteur"]["Nombre"] === 0);

        /**  Il faut essayer de maintenir la parité Homme/Femme*/
        $ratioFemme = ($nbMembre)?$nbFemme / $nbMembre:0;
        $ratioHomme = ($nbMembre)?(1 - $ratioFemme):0;
@@ -377,7 +386,7 @@ class PropositionService {
        }

        $valide = $indicateurs["parité"]["valide"] && $indicateurs["membre"]["valide"] && $indicateurs["rapporteur"]["valide"]
            && $indicateurs["rang A"]["valide"] && $indicateurs["exterieur"]["valide"];
            && $indicateurs["rang A"]["valide"] && $indicateurs["exterieur"]["valide"] && $indicateurs["bad-rapporteur"]["valide"] ;

        $indicateurs["valide"] = $valide;

+17 −1
Original line number Diff line number Diff line
@@ -102,6 +102,22 @@ $these = $proposition->getThese();
            </div>
        </div>

        <div class="col-md-4">
            <h5>
                Nombre de rapporteurs non valides
                <?php if ($indicateurs["bad-rapporteur"]["valide"]):?>
                    <span class="badge badge-success"> Valide </span>
                <?php else: ?>
                    <span class="badge badge-error"> Non valide </span>
                <?php endif; ?>
            </h5>
            <div class="progress">
                <div class="progress-bar progress-bar-danger" style="width:<?php echo $indicateurs["bad-rapporteur"]["Nombre"]/$indicateurs["rapporteur"]["Nombre"]*100; ?>%; ">
                    <?php echo $indicateurs["bad-rapporteur"]["Nombre"]; ?>
                </div>
            </div>
        </div>

        <table class="table table-extra-condensed">
            <thead>
            <tr>
@@ -128,7 +144,7 @@ $these = $proposition->getThese();
                usort($membres, function (Membre $a, Membre $b) { return $a->getNom() . " " . $a->getPrenom() > $b->getNom() . " " . $b->getPrenom();});
            ?>
            <?php foreach($membres as $membre): ?>
                <tr>
                <tr <?php if ($membre->estRapporteur() AND $membre->getQualite()->getRang() === 'B' AND $membre->getQualite()->getHdr() !== 'O') echo " style='background:lightsalmon;' "; ?>>
                    <td> <?php echo ($membre->getGenre()==='F')?"Madame":"Monsieur"; ?> </td>
                    <td> <?php echo $membre->getPrenom(); ?> </td>
                    <td> <?php echo $membre->getNom(); ?> </td>