Skip to content
Snippets Groups Projects
Commit 6ed48f82 authored by Jean-Philippe Metivier's avatar Jean-Philippe Metivier
Browse files

Merge branch 'hotfix_release_5.2.11'

parents 3db3d99d 557b081c
No related branches found
No related tags found
No related merge requests found
Pipeline #19486 passed
Journal des modifications Journal des modifications
========================= =========================
5.3.1
-----
- [FIX] Donnée : ajout de garde lorsque le mail fourni par les données sources est " "
- [FIX] hydration des justificatifs
5.3.0 5.3.0
----- -----
- Nouvelle version du module Rapports d'activité. - Nouvelle version du module Rapports d'activité.
......
# Version 5.3.1
## 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 5.3.1 && bash ./install.sh
```
- Selon le moteur PHP que vous avez installé, rechargez le service, exemple :
- php7.4-fpm : `service php7.4-fpm reload`
- apache2-mod-php7.4 : `service apache2 reload`
## 2. Dans la base de données
RAS
\ No newline at end of file
...@@ -56,7 +56,7 @@ class NatureFichier ...@@ -56,7 +56,7 @@ class NatureFichier
const CODE_LANGUE_ANGLAISE = 'DEMANDE_LANGUE_ANGLAISE'; const CODE_LANGUE_ANGLAISE = 'DEMANDE_LANGUE_ANGLAISE';
const CODE_AUTRES_JUSTIFICATIFS = 'AUTRES_JUSTIFICATIFS'; const CODE_AUTRES_JUSTIFICATIFS = 'AUTRES_JUSTIFICATIFS';
const LABEL_FORMATION_INTEGRITE_SCIENTIFIQUE = 'Justificatif de suivi de la formation "Intégrité scientifique"'; const LABEL_FORMATION_INTEGRITE_SCIENTIFIQUE = 'Justificatif de suivi de la formation Intégrité scientifique';
const LABEL_JUSTIFICATIF_HDR = "Justificatif d'habilitation à diriger des recherches"; const LABEL_JUSTIFICATIF_HDR = "Justificatif d'habilitation à diriger des recherches";
const LABEL_JUSTIFICATIF_EMERITAT = "Justificatif d'émeritat"; const LABEL_JUSTIFICATIF_EMERITAT = "Justificatif d'émeritat";
const LABEL_JUSTIFICATIF_ETRANGER = "Justificatif dans le cas d'un membre du jury étranger"; const LABEL_JUSTIFICATIF_ETRANGER = "Justificatif dans le cas d'un membre du jury étranger";
......
...@@ -266,11 +266,14 @@ class Individu implements HistoriqueAwareInterface, SourceAwareInterface, Resour ...@@ -266,11 +266,14 @@ class Individu implements HistoriqueAwareInterface, SourceAwareInterface, Resour
public function getEmailPro(): ?string public function getEmailPro(): ?string
{ {
$complement = $this->getComplement(); $complement = $this->getComplement();
if ($complement AND !$complement->estHistorise() AND $complement->getEmailPro() !== null) { if ($complement AND !$complement->estHistorise()
AND $complement->getEmailPro() !== null) {
return $complement->getEmailPro(); return $complement->getEmailPro();
} }
return $this->email; $email = $this->email;
if ($email === null or trim($this->email) === '') return null;
return $email;
} }
/** /**
......
...@@ -88,10 +88,15 @@ class JustificatifController extends AbstractController { ...@@ -88,10 +88,15 @@ class JustificatifController extends AbstractController {
$files = ['files' => $request->getFiles()->toArray()]; $files = ['files' => $request->getFiles()->toArray()];
if ($nature) $data['nature'] = $nature->getCode(); if ($nature) $data['nature'] = $nature->getCode();
$form->setData($data); // $form->setData($data);
if ($form->isValid()) { // if ($form->isValid()) {
var_dump("After form"); // <!> Attention : L'hydration echoue ...
if ($data['nature'] !== null AND !empty($files)) {
if ($nature === null) $nature = $this->fichierTheseService->fetchNatureFichier($data['nature']); if ($nature === null) $nature = $this->fichierTheseService->fetchNatureFichier($data['nature']);
if ($data['membre']) {
$membre = $this->getMembreService()->find($data['membre']);
$justificatif->setMembre($membre);
}
$version = $this->fichierTheseService->fetchVersionFichier(VersionFichier::CODE_ORIG); $version = $this->fichierTheseService->fetchVersionFichier(VersionFichier::CODE_ORIG);
$fichiers = $this->fichierTheseService->createFichierThesesFromUpload($these, $files, $nature, $version); $fichiers = $this->fichierTheseService->createFichierThesesFromUpload($these, $files, $nature, $version);
$justificatif->setFichier($fichiers[0]); $justificatif->setFichier($fichiers[0]);
......
...@@ -692,7 +692,9 @@ class PresoutenanceController extends AbstractController ...@@ -692,7 +692,9 @@ class PresoutenanceController extends AbstractController
/** @var Membre $membre */ /** @var Membre $membre */
foreach ($proposition->getMembres() as $membre) { foreach ($proposition->getMembres() as $membre) {
if ($membre->estMembre()) { if ($membre->estMembre()) {
$email = ($membre->getIndividu() and $membre->getIndividu()->getEmailPro()) ? $membre->getIndividu()->getEmailPro() : $membre->getEmail(); $email = null;
if ($membre->getIndividu() and $membre->getIndividu()->getEmailPro()) $email = $membre->getIndividu()->getEmailPro();
if ($email === null or trim($email) === '') $email = $membre->getEmail();
/** @see PresoutenanceController::convocationMembreAction() */ /** @see PresoutenanceController::convocationMembreAction() */
$url = $this->url()->fromRoute('soutenance/presoutenance/convocation-membre', ['proposition' => $proposition->getId(), 'membre' => $membre->getId()], ['force_canonical' => true], true); $url = $this->url()->fromRoute('soutenance/presoutenance/convocation-membre', ['proposition' => $proposition->getId(), 'membre' => $membre->getId()], ['force_canonical' => true], true);
try { try {
......
...@@ -40,6 +40,7 @@ class JusticatifHydrator implements HydratorInterface { ...@@ -40,6 +40,7 @@ class JusticatifHydrator implements HydratorInterface {
{ {
/** @var Membre $membre */ /** @var Membre $membre */
$membre = $this->getMembreService()->find($data['membre']); $membre = $this->getMembreService()->find($data['membre']);
$object->setMembre($membre); $object->setMembre($membre);
return $object; return $object;
} }
......
...@@ -83,7 +83,7 @@ class JustificatifForm extends Form { ...@@ -83,7 +83,7 @@ class JustificatifForm extends Form {
$this->setInputFilter((new Factory())->createInputFilter([ $this->setInputFilter((new Factory())->createInputFilter([
'nature' => [ 'nature' => [
'name' => 'nature', 'name' => 'nature',
'required' => true, 'required' => false,
], ],
'fichier' => [ 'fichier' => [
'name' => 'fichier', 'name' => 'fichier',
......
...@@ -674,6 +674,13 @@ class SoutenanceNotificationFactory extends NotificationFactory ...@@ -674,6 +674,13 @@ class SoutenanceNotificationFactory extends NotificationFactory
$these = $proposition->getThese(); $these = $proposition->getThese();
$pdcData = $this->getTheseService()->fetchInformationsPageDeCouverture($these); $pdcData = $this->getTheseService()->fetchInformationsPageDeCouverture($these);
if ($email === null or $email === '') {
throw new RuntimeException("Aucune adresse électronique pour le doctorant [".$doctorant->getIndividu()->getNomComplet()."]");
}
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
throw new RuntimeException("L'adresse électronique est mal formée pour le doctorant [".$doctorant->getIndividu()->getNomComplet()."]");
}
$notif = new Notification(); $notif = new Notification();
$notif $notif
->setSubject("Convocation pour la soutenance de thèse de " . $doctorant->getNomComplet()) ->setSubject("Convocation pour la soutenance de thèse de " . $doctorant->getNomComplet())
...@@ -709,6 +716,13 @@ class SoutenanceNotificationFactory extends NotificationFactory ...@@ -709,6 +716,13 @@ class SoutenanceNotificationFactory extends NotificationFactory
$these = $proposition->getThese(); $these = $proposition->getThese();
$pdcData = $this->getTheseService()->fetchInformationsPageDeCouverture($these); $pdcData = $this->getTheseService()->fetchInformationsPageDeCouverture($these);
if ($email === null or $email === '') {
throw new RuntimeException("Aucune adresse électronique pour le membre [".$membre->getDenomination()."]");
}
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
throw new RuntimeException("L'adresse électronique est mal formée pour le membre [".$membre->getDenomination()."]");
}
$notif = new Notification(); $notif = new Notification();
$notif $notif
->setSubject("Convocation pour la soutenance de thèse de " . $doctorant->getNomComplet()) ->setSubject("Convocation pour la soutenance de thèse de " . $doctorant->getNomComplet())
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment