Commit 536a563a authored by Stephane Bouvry's avatar Stephane Bouvry
Browse files

- Mise en page du suivi des déclarations en retard

- Ajout des projets concernés pour chaques lignes des périodes
- Ajout des validateurs identifiés dans le récapitulatif des personnes
parent 4ff33a20
Loading
Loading
Loading
Loading
Loading
+50 −2
Changes for front/src/TimesheetHigDelay.vue: 50 added lines, 2 removed lines.
Original line number Diff line number Diff line
@@ -37,13 +37,16 @@
              Aucun <em>N+1</em> (validateur hors-lot) n'est assigné à ce déclarant, vous pouvez lui en assigner un (ou
              plusieurs) depuis la fiche personne.
            </div>

            <div v-if="entry.send == true && entry.validators.length == 0" class="alert alert-danger">
              <i class="icon-attention-1"></i>
              Aucun validateur n'est désigné pour valider ces déclarations, rendez-vous dans la fiche activité afin de
              vérifier que des validateurs sont bien désignés.
            </div>
            <ul v-else>
            <div v-else>
              <p class="info-area">
                Les validateurs ci-dessous sont ceux qui sont impliqués personnellement dans les validations en cours.
              </p>
              <ul>
                <li v-for="v in entry.validators"><i class="icon-cube"></i> {{ v }}</li>
                <li v-for="v in entry.np1">
                  <i class="icon-tag"></i>
@@ -52,6 +55,51 @@
                </li>
              </ul>
            </div>
            <hr>
            <h4>
              <i class="icon-cubes"></i>
              Activités
            </h4>
            <p class="info-area">
              Liste des activités où <strong>{{ entry.fullname }}</strong> a été identifié comme déclarant.
              Vous pouvez voir les validateurs désignés pour valider les futurs déclarations envoyées.
            </p>
            <article v-for="activity in entry.activities" class="card xs">
              <h5>
                <i class="icon-cubes"></i>
                <strong>[{{ activity.acronym }}]</strong>
                <em>{{ activity.label }}</em>
              </h5>

              <div v-if="activity.validators.prj.length != 0">
                <i class="icon-cube"></i>
                <strong v-for="p in activity.validators.prj" class="cartouche">{{ p }}</strong>
              </div>
              <div v-else class="bg-danger">
                <i class="icon-attention-1"></i>
                Pas de validateur projet
              </div>

              <div v-if="activity.validators.sci.length != 0">
                <i class="icon-beaker"></i>
                <strong v-for="p in activity.validators.sci" class="cartouche">{{ p }}</strong>
              </div>
              <div v-else class="bg-danger">
                <i class="icon-attention-1"></i>
                Pas de validateur scientifique
              </div>

              <div v-if="activity.validators.adm.length != 0">
                <i class="icon-book"></i>
                <strong v-for="p in activity.validators.adm" class="cartouche">{{ p }}</strong>
              </div>
              <div v-else class="bg-danger">
                <i class="icon-attention-1"></i>
                Pas de validateur administratif
              </div>

            </article>
          </div>
        </div>
        <div class="col-md-9">
          <div class="periods">
+25 −0
Changes for module/Oscar/src/Oscar/Service/PersonService.php: 25 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -1266,6 +1266,7 @@ class PersonService implements UseOscarConfigurationService, UseEntityManager, U
            $repport = $this->getHighDelayForPerson($personId);
            $validatorsPerson = [];
            $validatorsOthers = [];
            $personActivities = [];

            $validatorsOthersPerson = $this->getReferentsPerson($personId);

@@ -1304,6 +1305,29 @@ class PersonService implements UseOscarConfigurationService, UseEntityManager, U
                $step = array_key_exists($pp, $repport) ? $repport[$pp]['step'] : 0;
                $validators = [];

                foreach ($periodDetails['activities'] as $activityInfos) {
                    $activityId = $activityInfos['id'];
                    if( !array_key_exists($activityId, $personActivities) ){
                        $personActivities[$activityId] = $activityInfos;
                        $activityValidators = [
                            'prj' => [],
                            'sci' => [],
                            'adm' => [],
                        ];
                        $activity = $this->getProjectGrantService()->getActivityById($activityId);
                        foreach ($activity->getValidatorsPrj() as $val) {
                            $activityValidators['prj'][$val->getId()] = (string)$val;
                        }
                        foreach ($activity->getValidatorsSci() as $val) {
                            $activityValidators['sci'][$val->getId()] = (string)$val;
                        }
                        foreach ($activity->getValidatorsAdm() as $val) {
                            $activityValidators['adm'][$val->getId()] = (string)$val;
                        }
                        $personActivities[$activityId]['validators'] = $activityValidators;
                    }
                }

                if ($pp >= $period) {
                    continue;
                }
@@ -1354,6 +1378,7 @@ class PersonService implements UseOscarConfigurationService, UseEntityManager, U
                $periods[$pp] = $periodInfos;

                $output[$personId]['periods'] = $periods;
                $output[$personId]['activities'] = $personActivities;
            }

            $output[$personId]['periods'] = $periods;
+9 −0
Changes for public/css/oscar.css: 9 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -11913,6 +11913,15 @@ pre.alert-danger, pre.alert-info {
  background: rgba(0, 0, 0, 0.1);
}

.info-area {
  border-radius: 4px;
  background: #5bc0de;
  color: white;
  padding: 0.25em 0.5em;
  font-size: 0.8em;
  text-shadow: -1px 1px 1px rgba(0, 0, 0, 0.3);
}

.highdelay .card .card-title .profile {
  flex: 0 0 50px;
}
+1 −1

File changed.

Preview size limit exceeded, changes collapsed.

+9 −0
Changes for public/css/oscar.scss: 9 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -110,6 +110,15 @@ $colorGreyBlack: #222;
  background: rgba(0,0,0,.1);
}

.info-area {
  border-radius: 4px;
  background: $brand-info;
  color: white;
  padding: .25em .5em;
  font-size: .8em;
  text-shadow: -1px 1px 1px rgba(0,0,0,.3);
}

.highdelay .card .card-title {
  .profile {
    flex: 0 0 50px;
Loading