Commit fdac73ea authored by joriot221's avatar joriot221
Browse files

Merge branch 'master' into FJ_ADMIN_PJ

parents 2512c34e d28aa3de
Loading
Loading
Loading
Loading
+23 −9
Changes for CHANGELOG.md: 23 added lines, 9 removed lines.
Original line number Diff line number Diff line
@@ -2,11 +2,14 @@

[OSE 17.3](#ose-173-17032022)

# Version de test

[OSE 18.0-beta3](#ose-18-beta-3-06052022)



# OSE 18 (à venir)

# OSE 18 BETA 3 (06/05/2022)
Objectif : Plafonds personnalisables & refonte gestion des statuts

## Nouveautés
@@ -90,17 +93,28 @@ Objectif : Plafonds personnalisables & refonte gestion des statuts
* Correction sur la suppression de service lorsque la clôture de service a été historisé (#42046)
* Le calcul des choix minimum/maximum est de nouveau fiable (#42080)
* Liens inactifs lors du changement d'année universitaire (#40992)
* Dans certains cas avec des motifs de non paiements, le détail des services n'affichait pas toutes les heures

## Notes de mise à jour

* **ATTENTION : OSE 18** ne pourra être mis à jour **qu'à partir de OSE 17.x**. Si vous utilisez une version plus ancienne de OSE, veuillez **d'abord** mettre à jour en version 17.
* **ATTENTION : PHP 8.0** est requis
* La mise à jour des vues matérialisées MV_EXT_* ne se fait plus à la mise à jour. Il faut maintenant lancer la commande `./bin/ose maj-exports` tous les jours et donc ajouter une ligne à votre _CronTab_ (cf. [Doc INSTALL mise à jour](install.md))
* Pour bénéficier de la ventilation des heures par types d'intervention vous pouvez vous inspirer du [modèle de contrat de Caen](https://git.unicaen.fr/open-source/OSE/-/blob/master/data/modele_contrat_ventile.odt) pour adapter votre propre modèle de contrat.
* Au niveau du fichier de configuration [config.local.php](config.local.php.default), vous pouvez remplir le paramètre (facultatif) ldap>systemeInformationUrl.
* Pour les instances qui utilisent le module Export Siham, vous devez renseigner un nouveau paramètre dans Administration > paramètres généraux > Gestion export RH, il vous faut sélectionner l'étape de la feuille de route franchie à partir de laquelle l'intervenant peut être exporté dans SIHAM.
* La vue source [SRC_INTERVENANT](doc/Connecteurs-Import/Générique/SRC_INTERVENANT.sql) doit être mise à jour. 
* Par précaution, la mise à jour désactive la synchronisation sur la table INTERVENANT. Vous devrez manuellement remettre en place cette synchronisation après avoir mis à jour votre vue source SRC_INTERVENANT.
* Les indicateurs portant sur les anciens plafonds ayant été supprimés et remplacés par de tous nouveaux indicateurs, les notifications par mail et abonnements correspondants seront résiliés
* En raison de l'ampleur de la mise à jour, l'opération de maintenance va prendre du temps. Prévoyez une journée d'interruption de service.

## Procédure de mise à jour spécifique à la version 18

1. Mettez l'aplication en maintenance
2. Si votre version de OSE est antérieure à la version 17, mettez **d'abord** à jour en version **17.3**
3. Installez **PHP8.0** sur votre serveur ainsi que [toutes ses dépendances nécessaires](install.md)
4. Dans le répertoire de OSE, lancez `php composer.phar self-update --2`
5. Mettez ensuite OSE à jour en version 18 `./bin/ose update` (attention, ce traitement est long, il pourra prendre plusieurs heures)
6. Recalculez toutes les forules de calcul : `./bin/ose formule-calcul` (attention, ce traitement dure plusieurs heures)
7. Pour votre instance de production, la nouvelle commande `./bin/ose maj-exports` doit être lancée régulièrement (cf. [procédure d'installation](install.md)). Ceci met à jour toutes les vues matérialisées dédiées à l'export MV_EXT_*.
8. Mettez à jour votre vue source [SRC_INTERVENANT](doc/Connecteurs-Import/Générique/SRC_INTERVENANT.sql)
9. Réactivez la synchronisation en import pour la table INTERVENANT, que la mise à jour a volontairement désactivée (en production).
10. Mettez à jour votre [modèle de contrat de travail](data/modele_contrat_ventile.odt) si vous voulez bénéficier de la ventilation par CM/TD/TP/Autres des heures. 
11. Si vous utilisez l'export RH Siham, renseignez un nouveau paramètre dans Administration > paramètres généraux > Gestion export RH, en sélectionnant l'étape de la feuille de route franchie à partir de laquelle l'intervenant peut être exporté dans SIHAM.
12. Au niveau du fichier de configuration [config.local.php](config.local.php.default), vous pouvez remplir le paramètre (facultatif) ldap>systemeInformationUrl.
13. Sortez du mode maintenance


# OSE 17.3 (17/03/2022)
+2 −2
Changes for INSTALL.md: 2 added lines, 2 removed lines.
Original line number Diff line number Diff line
@@ -4,7 +4,7 @@ OSE est une application web qui exploite une base de données Oracle.
Il faut donc installer :

* Une base de données Oracle
* Un serveur web Apache + PHP >= 7.4
* Un serveur web Apache + PHP

Le serveur web peut être installé manuellement ou bien déployé via une image Docker.
Le serveur web n'héberge aucune donnée, hormis des fichiers de configuration et de cache. Toutes les données d'explloitation sont donc
@@ -81,7 +81,7 @@ Dépendances requises :
* git
* wget
* Apache 2 avec le module de réécriture d'URL (*rewrite*) activé
* PHP 7.4 minimum avec les modules suivants :
* PHP 8.0 avec les modules suivants :
    * cli
    * curl
    * intl
+3 −0
Changes for admin/actions/maj-public-links.php: 3 added lines, 0 removed lines.
Original line number Diff line number Diff line
<?php

// à supprimer pour la v19
 No newline at end of file
+9 −4
Changes for admin/migration/v18Divers.php: 9 added lines, 4 removed lines.
Original line number Diff line number Diff line
@@ -26,6 +26,11 @@ class v18Divers extends AbstractMigration
        $bdd = $this->manager->getBdd();
        $c   = $this->manager->getOseAdmin()->getConsole();

        // test pour savoir si on est bien en V17 minimum
        if (!$this->manager->hasColumn('INTERVENANT', 'EXPORT_DATE')) {
            $c->printDie('Attention : vous devez d\'abord mettre à jour en version 17.3 AVANT de mettre à jour en version 18');
        }

        try {
            $c->msg('Coupure forcée de la synchronisation sur la table INTERVENANT');
            $bdd->exec("UPDATE IMPORT_TABLES SET SYNC_ENABLED = 0 WHERE TABLE_NAME = 'INTERVENANT'");
@@ -36,7 +41,7 @@ class v18Divers extends AbstractMigration
        $this->sauvegardes();

        try {
            $c->msg('Suppression de la contrainte TYPE_INTERVENANT_CODE_UN en prévision de sa recréation');
            $c->msg('Suppression des affectations de recherche ayant des structures invalides');
            $bdd->exec("DELETE FROM AFFECTATION_RECHERCHE WHERE structure_id NOT IN (SELECT ID FROM STRUCTURE)");
        } catch (\Exception $e) {
            // rien à faire : la contrainte a déjà du être supprimée
@@ -60,11 +65,11 @@ class v18Divers extends AbstractMigration
        $tables = [
            'INTERVENANT'                    => 'SAVE_V18_INTERVENANT',
            'INTERVENANT_DOSSIER'            => 'SAVE_V18_DOSSIER',

            'TYPE_PIECE_JOINTE_STATUT'       => 'SAVE_V18_TPJS',
            'TYPE_INTERVENTION_STATUT'       => 'SAVE_V18_TIS',

            'STATUT_INTERVENANT'             => 'SAVE_V18_STATUT',
            'PRIVILEGE'                      => 'SAVE_V18_PRIVILEGE',
            'ROLE_PRIVILEGE'                 => 'SAVE_V18_ROLE_PRIVILEGE',
            'STATUT_PRIVILEGE'               => 'SAVE_V18_STATUT_PRIVILEGE',
            'TYPE_AGREMENT_STATUT'           => 'SAVE_V18_TA_STATUT',
            'DOSSIER_CHAMP_AUTRE_PAR_STATUT' => 'SAVE_V18_DOSSIER_AUTRE_STATUT',
@@ -82,7 +87,7 @@ class v18Divers extends AbstractMigration

        $c->begin('Sauvegarde des anciennes données');
        foreach ($tables as $table => $saveTable) {
            $c->msg('"' . $table . '" => "' . $saveTable . '".');
            $c->msg('Table "' . $table . '" sauvegardée en "' . $saveTable . '".');
            $this->manager->sauvegarderTable($table, $saveTable);
        }
        $c->end();
+53 −0
Changes for admin/migration/v18Indicateurs.php: 53 added lines, 0 removed lines.
Original line number Diff line number Diff line
<?php





class v18Indicateurs extends AbstractMigration
{

    public function description(): string
    {
        return "Migration des indicateurs de OSE 17 vers OSE 18";
    }



    public function utile(): bool
    {
        return true;

        return $this->manager->hasNew('table', 'TYPE_INDICATEUR');
    }



    public function before()
    {
        $bdd = $this->manager->getBdd();
        $c   = $this->manager->getOseAdmin()->getConsole();

        $c->begin('Préparation à la mise à jour des indicateurs');

        $bdd->exec('ALTER TABLE INDICATEUR ADD (TYPE_INDICATEUR_ID NUMBER)');
        $bdd->exec('CREATE TABLE TYPE_INDICATEUR (  
              ID NUMBER NOT NULL ENABLE,
              LIBELLE VARCHAR2(60 CHAR) NOT NULL ENABLE,
              ORDRE NUMBER DEFAULT 1 NOT NULL ENABLE
            )');

        $indicateurs = require $this->manager->getOseAdmin()->getOseDir() . '/data/indicateurs.php';
        foreach ($indicateurs as $libelle => $type) {
            $data = ['ID' => $type['id'], 'LIBELLE' => $libelle];
            $bdd->getTable('TYPE_INDICATEUR')->insert($data);
            foreach ($type['indicateurs'] as $numero => $indicateur) {
                $bdd->getTable('INDICATEUR')->update(['TYPE_INDICATEUR_ID' => $type['id']], ['NUMERO' => $numero]);
            }
        }

        $bdd->exec('DELETE FROM INDICATEUR WHERE TYPE_INDICATEUR_ID IS NULL');

        $c->end('Préparation à la migration des indicateurs terminée');
    }
}
 No newline at end of file
Loading