Commit b441c3a0 authored by Stephane Bouvry's avatar Stephane Bouvry
Browse files

Fix : Diverses erreurs liè au passage à PHP8

Up : Factorisation de la génération de certains documents
Up : Modification de la méthode de génération PDF (Doc mise à jour)
parent 80ea289c
Loading
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
#!/bin/bash
# A exécuter depuis le dossier développement
PORT=8181
APPLICATION_ENV=production php -q -S 127.0.0.1:$PORT -t public/
export APPLICATION_ENV=production
php -d variables_order=EGPCS -q -S 127.0.0.1:$PORT -t public/
+1 −1
Original line number Diff line number Diff line
@@ -62,7 +62,7 @@ return array(
        ],

        'htmltopdfrenderer' => [
            'class' => \Oscar\Formatter\File\HtmlToPdfDomPDFFormatter::class,
            'class' => \Oscar\Formatter\File\HtmlToPdfWkhtmltopdfFormatter::class,
            'arguments' => []
        ],

+34 −27
Original line number Diff line number Diff line
<?php
/** Activity $activity */


function montant($value){
   return number_format($value, 2);
}


$colors = ['#c0e1f1', "#BCF1C3", "#F0F1C0", "#F1C2AF", "#F1C8DE"];

?>
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>Document PDF</title>
    <style>
        <?php include __DIR__.'/common.css'; ?>

@@ -35,6 +28,18 @@ $colors = ['#c0e1f1', "#BCF1C3", "#F0F1C0", "#F1C2AF", "#F1C8DE"];
            margin-left: 5%;
        }
    </style>
</head>
<body>
<?php
/** Activity $activity */
function montant($value){
   return number_format($value, 2);
}

$colors = ['#c0e1f1', "#BCF1C3", "#F0F1C0", "#F1C2AF", "#F1C8DE"];
?>



    <table class="presenter">
        <tr>
@@ -112,3 +117,5 @@ $colors = ['#c0e1f1', "#BCF1C3", "#F0F1C0", "#F1C2AF", "#F1C8DE"];
        </tfoot>
    </table>

</body>
</html>
 No newline at end of file
+21 −10
Original line number Diff line number Diff line
@@ -108,7 +108,7 @@ git checkout ripley-laminas-php8

### Installation des librairies tiers 

>Un système de jeton de sécurité (*token*) est en place sur **Github**. Pensez à générer un jeton de sécurité depuis Github : https://github.com/settings/tokens puis de configurer ce jeton pour **Composer** :
> ⚠️ Un système de jeton de sécurité (*token*) est en place sur **Github**. Vous devez générer un jeton de sécurité depuis Github : https://github.com/settings/tokens puis de configurer ce jeton pour **Composer** :
> ```bash
> composer config --global --auth github-oauth.github.com JETON
> ```
@@ -159,26 +159,35 @@ php vendor/bin/doctrine-module orm:schema-tool:update --force

### Utilisateur du CRON

Le nouveau système de log propose une rotation des logs par fichier à la journée. Donc quand Oscar produit des logs, il va créer un fichier de log pour la journée. Si le fichier est créé par une tache CRON, l'accès au fichier de log sera limité, et le serveur apache ne pourra pas écrire dedans.
> ⚠️ Le nouveau système de log propose une rotation des logs par fichier à la journée. Donc quand Oscar produit des logs, il va créer un fichier de log pour la journée. Si le fichier est créé par une tache CRON, l'accès au fichier de log en écriture sera limité à l'utilisateur CRON, et le serveur apache pourait ne pas pouvoir pas écrire dedans.

Donc, planifez vos taches CRON avec **www-data** (ou l'utilisateur que vous utilisez pour les droits apache)
Voici la commande pour planifier vos taches CRON avec **www-data** (ou l'utilisateur que vous utilisez pour les droits Apache).

```bash
crontab -u www-data -e
```

### Système de génération des documents

La procédure de création de document (PDF) a évolué. Elle exploite maintenant un utilitaire plus performant : [wkhtmltopdf](https://wkhtmltopdf.org/), une librairie Open source (LGPLv3) dédiée à la convertion HTML > PDF

Pour l'installer sous Debian : 

```bash
apt install wkhtmltopdf
```

### Configuration des documents

Se rendre dans la partie Administration > Configuration et maintenance

#### Etape 1 : Qualifier les documents sans type

Allez dans la partie "Type de document", migrer les documents non typé si besoin
Allez dans la partie "Type de document", migrer les documents non typés. Cela permettra ensuite des deplacer ces documents

> Cela permettra ensuite des deplacer ces documents
Ensuite, choisir un type de document par défaut en éditant un des types, et cocher l'option "type par défaut".

Ensuite choisir un type de document par défaut en éditant un des types, et cocher l'option "type par défaut".
Les documents nouvellement déposés via des procédures automatisées seront automatiquement qualifié avec de type si ça n'est pas précisé.
> Les documents nouvellement déposés via des procédures automatisées seront automatiquement qualifié avec de type si ça n'est pas précisé.

#### Etape 2 : Créer les onglets

@@ -192,10 +201,12 @@ Par défaut, les documents ne sont rangés dans aucun onglet, et ne seront pas v
Dans **Administration > Nomenclatures > Type d'onglet documents**, vous pouvez sélectionner un type de document



## Les choses à vérifier

- Accès à l'application : Authentification
- Accès à l'application : Authentification CAS, LDAP, Compte local (si besoin)
- Accès à une fiche activité contenant des documents (visibilité des documents)
- Envoi/suppression de document dans une activité
- Document généré


## Organisations Parents
+3 −4
Original line number Diff line number Diff line
@@ -526,8 +526,9 @@ return array(
            \Oscar\Service\AdministrativeDocumentService::class => \Oscar\Service\AdministrativeDocumentServiceFactory::class,
            \Oscar\Service\ConnectorService::class => \Oscar\Service\ConnectorServiceFactory::class,
            \Oscar\Service\ContractDocumentService::class => \Oscar\Service\ContractDocumentServiceFactory::class,
            'Logger' => \Oscar\Service\LoggerServiceFactory::class,
            \Oscar\Service\DocumentFormatterService::class => \Oscar\Service\DocumentFormatterServiceFactory::class,
            \Oscar\Service\GearmanJobLauncherService::class => \Oscar\Service\GearmanJobLauncherServiceFactory::class,
            'Logger' => \Oscar\Service\LoggerServiceFactory::class,
            \Oscar\Service\MailingService::class => \Oscar\Service\MailingServiceFactory::class,
            \Oscar\Service\MaintenanceService::class => \Oscar\Service\MaintenanceServiceFactory::class,
            \Oscar\Service\MilestoneService::class => \Oscar\Service\MilestoneServiceFactory::class,
@@ -544,7 +545,7 @@ return array(
            \Oscar\Service\SpentService::class => \Oscar\Service\SpentServiceFactory::class,
            \Oscar\Service\TypeDocumentService::class => \Oscar\Service\TypeDocumentServiceFactory::class,
            'RoleProvider' => \Oscar\Provider\RoleProviderFactory::class,
            \Oscar\Service\UserParametersService::class => \Oscar\Service\UserParametersServiceFactory::class
            \Oscar\Service\UserParametersService::class => \Oscar\Service\UserParametersServiceFactory::class,
        ),
    ),

@@ -573,7 +574,6 @@ return array(
            'DateType' => \Oscar\Controller\DateTypeControllerFactory::class,
            'Depense' => \Oscar\Controller\DepenseControllerFactory::class,
            \Oscar\Controller\EnrollController::class => \Oscar\Controller\EnrollControllerFactory::class,
            \Oscar\Controller\ConsoleController::class => \Oscar\Factory\OscarUseFactory::class,
            'ContractDocument' => \Oscar\Controller\ContractDocumentControllerFactory::class,
            'TabDocument' => \Oscar\Controller\TabDocumentControllerFactory::class,
            'Notification' => \Oscar\Controller\NotificationControllerFactory::class,
@@ -585,7 +585,6 @@ return array(
            'WorkPackage' => \Oscar\Controller\WorkPackageControllerFactory::class,
        ],
        "aliases" => [
            'Console' => \Oscar\Controller\ConsoleController::class,
            'Enroll' => \Oscar\Controller\EnrollController::class
        ]
    ),
Loading