Commit 018e3fd5 authored by Bertrand Gauthier's avatar Bertrand Gauthier
Browse files

Step-Star > Ligne de commande : nouveaux filtres de sélection des thèses 'date...

Step-Star > Ligne de commande : nouveaux filtres de sélection des thèses 'date de soutenance nulle' et 'date de soutenance max' (+ amélioration de la syntaxe avec interval de temps).
parent 865d7902
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -20,6 +20,7 @@ Journal des modifications
- Proposition de soutenance : affichage de la direction de thèse amélioré, accès à la modif du complément d'individu (email) et de l'acteur (typiquement UR du codir étranger).
- Correction et mise à jour de la doc d'installation.
- Step-Star : envoi systématique d'une date de soutenance prévisionnelle null.
- Step-Star > Ligne de commande : nouveaux filtres de sélection des thèses 'date de soutenance nulle' et 'date de soutenance max' (+ amélioration de la syntaxe avec interval de temps).
- [FIX] Step-Star : requête de sélection des thèses à envoyer (colonne erronée pour le filtre établissement).
- [FIX] Page de couverture de thèse : l'établissement affiché pour le codir était l'établissement du dernier membre du jury affiché.
- [FIX] ré-attribution du privilège d'accès à l'index des formations pour les formateurs
+45 −26
Original line number Diff line number Diff line
@@ -35,11 +35,6 @@ class Module
        );
    }

    public function getConsoleBanner(): ?string
    {
        return "Module StepStar";
    }

    public function getConsoleUsage(): array
    {
        return [
@@ -58,40 +53,64 @@ class Module
            /**
             * @see \StepStar\Controller\Generate\GenerateConsoleController::generateFacade()
             */
            self::STEP_STAR__CONSOLE_ROUTE__GENERER_THESES . ' [--these=<id>] [--etat=<etat>] [--date-soutenance-min=<date-soutenance-min>] [--etablissement=<etablissement>]' =>
                "Pour chaque thèse spécifiée, génère le fichier XML intermédiaire puis le fichier TEF puis envoie ce dernier vers STEP/STAR.",
            [ '<id>', "Ids des thèses concernées, séparées par une virgule.", "Facultatif"],
            [ '<etat>', "États des thèses, séparés par une virgule, ex : 'E,S'.", "Facultatif"],
            [ '<date-soutenance-min>',
            self::STEP_STAR__CONSOLE_ROUTE__GENERER_THESES . ' 
    [--these <id>] 
    [--etat <etat>] 
    [--etablissement <etablissement>] 
    [--date-soutenance-null] 
    [--date-soutenance-min <date-soutenance-min>] 
    [--date-soutenance-max <date-soutenance-max>]' => "Pour chaque thèse spécifiée, génère le fichier XML intermédiaire puis le fichier TEF.",
            [ '--these <id>', "Ids des thèses concernées, séparées par une virgule. Facultatif"],
            [ '--etat <etat>', "États des thèses, séparés par une virgule, ex : 'E,S'. Facultatif"],
            [ '--etablissement <etablissement>', "Codes des établissements d'inscription, séparés par une virgule, ex : 'UCN,URN'. Facultatif"],
            [ '--date-soutenance-null', "Ne retient que les thèses dont la date de soutenance est non renseignée. Facultatif"],
            [ '--date-soutenance-min <date-soutenance-min>',
                "Date de soutenance minimale. " .
                "Si la valeur spécifiée est de la forme 'AAAA-MM-DD' : les thèses dont la date réelle de soutenance se situe avant cette date seront écartées, ex : '2022-03-11'. " .
                "Si la valeur commence par 'P' : un DateInterval sera construit et retranché à la date du jour pour déterminer la date de soutenance minimale, ex : 'P6M' <=> '6 mois avant la date du jour'.",
                "Si la valeur spécifiée est de la forme 'AAAA-MM-DD' : les thèses dont la date réelle de soutenance se situe AVANT cette date seront écartées, ex : '2022-03-11'. " .
                "Si la valeur commence par 'P' : un DateInterval sera construit et retranché à la date du jour pour déterminer la date de soutenance minimale, ex : 'P6M' <=> '6 mois AVANT la date du jour'. " .
                "Facultatif"],
            [ '--date-soutenance-max <date-soutenance-max>',
                "Date de soutenance maximale. " .
                "Si la valeur spécifiée est de la forme 'AAAA-MM-DD' : les thèses dont la date réelle de soutenance se situe APRÈS cette date seront écartées, ex : '2022-07-09'. " .
                "Si la valeur commence par 'P' : un DateInterval sera construit et additionné à la date du jour pour déterminer la date de soutenance maximale, ex : 'P6M' <=> '6 mois APRÈS la date du jour'. " .
                "Facultatif"],
            [ '<etablissement>', "Codes des établissements d'inscription, séparés par une virgule, ex : 'UCN,URN'.", "Facultatif"],

            /**
             * @see EnvoiConsoleController::envoyerFichiersAction()
             */
            self::STEP_STAR__CONSOLE_ROUTE__ENVOYER_FICHIERS . ' [--dir=<dir>] [--tag=<tag>]' =>
            self::STEP_STAR__CONSOLE_ROUTE__ENVOYER_FICHIERS . ' --dir <dir> [--tag <tag>]' =>
                "Envoie vers STEP/STAR les fichiers TEF présents dans le répertoire spécifié.",
            [ '<dir>', "Chemin absolu du répertoire contenant les fichiers TEF.", "Obligatoire"],
            [ '<tag>', "Tag éventuel permettant de retrouver facilement un ensemble de logs, ex : 'cron-2022-03-11'.", "Facultatif"],
            [ '--dir <dir>', "Chemin absolu du répertoire contenant les fichiers TEF. Obligatoire"],
            [ '--tag <tag>', "Tag éventuel permettant de retrouver facilement un ensemble de logs, ex : 'cron-2022-03-11'. Facultatif"],

            /**
             * @see EnvoiConsoleController::envoyerThesesAction()
             */
            self::STEP_STAR__CONSOLE_ROUTE__ENVOYER_THESES . ' [--these=<id>] [--etat=<etat>] [--date-soutenance-min=<date-soutenance-min>] [--etablissement=<etablissement>] [--tag=<tag>] [--force]' =>
                "Envoie vers STEP/STAR les thèses spécifiées l'une après l'autre (uniquement si leur TEF a changé depuis le dernier envoi).",
            [ '<id>', "Ids des thèses concernées, séparées par une virgule.", "Facultatif"],
            [ '<etat>', "États des thèses, séparés par une virgule, ex : 'E,S'.", "Facultatif"],
            [ '<date-soutenance-min>',
            self::STEP_STAR__CONSOLE_ROUTE__ENVOYER_THESES . ' 
    [--these <id>] 
    [--etat <etat>] 
    [--etablissement <etablissement>] 
    [--date-soutenance-null] 
    [--date-soutenance-min <date-soutenance-min>] 
    [--date-soutenance-max <date-soutenance-max>] 
    [--tag <tag>] 
    [--force]' => "Envoie vers STEP/STAR les thèses spécifiées l'une après l'autre (uniquement si leur TEF a changé depuis le dernier envoi).",
            [ '--these <id>', "Ids des thèses concernées, séparées par une virgule. Facultatif"],
            [ '--etat <etat>', "États des thèses, séparés par une virgule, ex : 'E,S'. Facultatif"],
            [ '--etablissement <etablissement>', "Codes des établissements d'inscription, séparés par une virgule, ex : 'UCN,URN'. Facultatif"],
            [ '--date-soutenance-null', "Ne retient que les thèses dont la date de soutenance est non renseignée. Facultatif"],
            [ '--date-soutenance-min <date-soutenance-min>',
                "Date de soutenance minimale. " .
                "Si la valeur spécifiée est de la forme 'AAAA-MM-DD' : les thèses dont la date réelle de soutenance se situe avant cette date seront écartées, ex : '2022-03-11'. " .
                "Si la valeur commence par 'P' : un DateInterval sera construit et retranché à la date du jour pour déterminer la date de soutenance minimale, ex : 'P6M' <=> '6 mois avant la date du jour'.",
                "Si la valeur spécifiée est de la forme 'AAAA-MM-DD' : les thèses dont la date réelle de soutenance se situe AVANT cette date seront écartées, ex : '2022-03-11'. " .
                "Si la valeur commence par 'P' : un DateInterval sera construit et retranché à la date du jour pour déterminer la date de soutenance minimale, ex : 'P6M' <=> '6 mois AVANT la date du jour'. " .
                "Facultatif"],
            [ '--date-soutenance-max <date-soutenance-max>',
                "Date de soutenance maximale. " .
                "Si la valeur spécifiée est de la forme 'AAAA-MM-DD' : les thèses dont la date réelle de soutenance se situe APRÈS cette date seront écartées, ex : '2022-07-09'. " .
                "Si la valeur commence par 'P' : un DateInterval sera construit et additionné à la date du jour pour déterminer la date de soutenance maximale, ex : 'P6M' <=> '6 mois APRÈS la date du jour'. " .
                "Facultatif"],
            [ '<etablissement>', "Codes des établissements d'inscription, séparés par une virgule, ex : 'UCN,URN'.", "Facultatif"],
            [ '<tag>', "Tag éventuel permettant de retrouver facilement un ensemble de logs, ex : 'cron-2022-03-11'.", "Facultatif"],
            [ '--force', "Réalise l'envoi même si le contenu du fichier TEF est le même qu'au dernier envoi.", "Facultatif"],
            [ '--tag <tag>', "Tag éventuel permettant de retrouver facilement un ensemble de logs, ex : 'cron-2022-03-11'. Facultatif"],
            [ '--force', "Réalise l'envoi même si le contenu du fichier TEF est le même qu'au dernier envoi. Facultatif"],
        ];
    }
}
+3 −3
Original line number Diff line number Diff line
@@ -386,7 +386,7 @@ return [
                'generer-theses' => [
                    'type' => Simple::class,
                    'options' => [
                        'route' => Module::STEP_STAR__CONSOLE_ROUTE__GENERER_THESES . ' [--these=] [--etat=] [--date-soutenance-min=] [--etablissement=]',
                        'route' => Module::STEP_STAR__CONSOLE_ROUTE__GENERER_THESES . ' [--these=] [--etat=] [--etablissement=] [--date-soutenance-null] [--date-soutenance-min=] [--date-soutenance-max=]',
                        'defaults' => [
                            /**
                             * @see GenerateConsoleController::genererThesesAction()
@@ -399,7 +399,7 @@ return [
                'envoyer-fichiers' => [
                    'type' => Simple::class,
                    'options' => [
                        'route' => Module::STEP_STAR__CONSOLE_ROUTE__ENVOYER_FICHIERS . ' --dir=',
                        'route' => Module::STEP_STAR__CONSOLE_ROUTE__ENVOYER_FICHIERS . ' --dir= [--tag=]',
                        'defaults' => [
                            /**
                             * @see EnvoiConsoleController::envoyerFichiersAction()
@@ -412,7 +412,7 @@ return [
                'envoyer-theses' => [
                    'type' => Simple::class,
                    'options' => [
                        'route' => Module::STEP_STAR__CONSOLE_ROUTE__ENVOYER_THESES . ' [--these=] [--etat=] [--date-soutenance-min=] [--etablissement=] [--tag=] [--force]',
                        'route' => Module::STEP_STAR__CONSOLE_ROUTE__ENVOYER_THESES . ' [--these=] [--etat=] [--etablissement=] [--date-soutenance-null] [--date-soutenance-min=] [--date-soutenance-max=] [--tag=] [--force]',
                        'defaults' => [
                            /**
                             * @see EnvoiConsoleController::envoyerThesesAction()
+4 −2
Original line number Diff line number Diff line
@@ -37,12 +37,14 @@ class EnvoiConsoleController extends AbstractConsoleController

        $these = $this->params()->fromRoute('these'); // ex : '12345' ou '12345,12346'
        $etat = $this->params()->fromRoute('etat'); // ex : 'E' ou 'E,S'
        $dateSoutenanceMin = $this->params()->fromRoute('date-soutenance-min'); // ex : '2022-03-11' ou '6m'
        $dateSoutenanceNull = (bool) $this->params()->fromRoute('date-soutenance-null');
        $dateSoutenanceMin = $this->params()->fromRoute('date-soutenance-min'); // ex : '2022-03-11' ou 'P6M'
        $dateSoutenanceMax = $this->params()->fromRoute('date-soutenance-max'); // ex : '2022-03-11' ou 'P6M'
        $etablissement = $this->params()->fromRoute('etablissement'); // ex : 'UCN' ou 'UCN,URN'
        $force = (bool) $this->params()->fromRoute('force');
        $tag = $this->params()->fromRoute('tag');

        $criteria = array_filter(compact('these', 'etat', 'dateSoutenanceMin', 'etablissement'));
        $criteria = array_filter(compact('these', 'etat', 'dateSoutenanceNull', 'dateSoutenanceMin', 'dateSoutenanceMax', 'etablissement'));

        $theses = $this->fetchService->fetchThesesByCriteria($criteria);
        if (empty($theses)) {
+4 −2
Original line number Diff line number Diff line
@@ -20,11 +20,13 @@ class GenerateConsoleController extends AbstractConsoleController

        $these = $this->params()->fromRoute('these'); // ex : '12345' ou '12345,12346'
        $etat = $this->params()->fromRoute('etat'); // ex : 'E' ou 'E,S'
        $dateSoutenanceMin = $this->params()->fromRoute('date-soutenance-min'); // ex : '2022-03-11' ou '6m'
        $dateSoutenanceNull = (bool) $this->params()->fromRoute('date-soutenance-null');
        $dateSoutenanceMin = $this->params()->fromRoute('date-soutenance-min'); // ex : '2022-03-11' ou 'P6M'
        $dateSoutenanceMax = $this->params()->fromRoute('date-soutenance-max'); // ex : '2022-03-11' ou 'P6M'
        $etablissement = $this->params()->fromRoute('etablissement'); // ex : 'UCN' ou 'UCN,URN'
        $tag = $this->params()->fromRoute('tag');

        $criteria = array_filter(compact('these', 'etat', 'dateSoutenanceMin', 'etablissement'));
        $criteria = array_filter(compact('these', 'etat', 'dateSoutenanceNull', 'dateSoutenanceMin', 'dateSoutenanceMax', 'etablissement'));

        $theses = $this->fetchService->fetchThesesByCriteria($criteria);
        if (empty($theses)) {
Loading