Commit 6b8bcdf4 authored by Bertrand Gauthier's avatar Bertrand Gauthier
Browse files

Fichiers liés aux thèses (manuscrit, pv, ect.) et rapports d'activité : en cas...

Fichiers liés aux thèses (manuscrit, pv, ect.) et rapports d'activité : en cas de fichier introuvable dans le storage, génération d'un fichier PDF temporaire de substitution.
parent 391b137a
Loading
Loading
Loading
Loading
+1 −6
Original line number Diff line number Diff line
@@ -195,7 +195,6 @@ class FichierTheseService extends BaseService
    {
        $exceptionThrown = null;

//        $filePath = $this->fichierService->computeFilePathForFichier($fichierThese->getFichier());
        try {
            $filePath = $this->fichierStorageService->getFileForFichier($fichierThese->getFichier());
        } catch (StorageAdapterException $e) {
@@ -293,7 +292,6 @@ class FichierTheseService extends BaseService
     */
    public function creerFichierTheseRetraite(FichierThese $fichierThese, string $timeout = null): FichierThese
    {
//        $inputFilePath  = $this->fichierService->computeFilePathForFichier($fichierThese->getFichier());
        try {
            $inputFilePath = $this->fichierStorageService->getFileForFichier($fichierThese->getFichier());
        } catch (StorageAdapterException $e) {
@@ -302,10 +300,8 @@ class FichierTheseService extends BaseService
        }

        $fichierTheseRetraite = $this->preparerFichierTheseRetraite($fichierThese);
//        $outputFilePath = $this->fichierService->computeFilePathForFichier($fichierTheseRetraite->getFichier());
        $outputFilePath = tempnam(sys_get_temp_dir(), '');
        $outputFilePath = sys_get_temp_dir() . '/' . uniqid();

//        $this->fichierService->createDirectoryForFichier($fichierTheseRetraite->getFichier());
        $this->retraitementService->retraiterFichier($inputFilePath, $outputFilePath, $timeout);
        try {
            $this->fichierStorageService->saveFileForFichier($outputFilePath, $fichierTheseRetraite->getFichier());
@@ -542,7 +538,6 @@ class FichierTheseService extends BaseService

        // recuperation de la bonne version du manuscript
        $manuscritFichier = current($this->getRepository()->fetchFichierTheses($these, NatureFichier::CODE_THESE_PDF, $versionFichier));
//        $manuscritChemin = $this->fichierService->computeFilePathForFichier($manuscritFichier->getFichier());
        try {
            $manuscritChemin = $this->fichierStorageService->getFileForFichier($manuscritFichier->getFichier());
        } catch (StorageAdapterException $e) {
+1 −1
Original line number Diff line number Diff line
@@ -270,8 +270,8 @@ class RapportService extends BaseService
     */
    private function createCommandForAjoutPdc(Rapport $rapport, string $pdcFilePath, string $outputFilePath): PdfMergeShellCommandQpdf
    {
//        $rapportFilePath = $this->fichierService->computeFilePathForFichier($rapport->getFichier());
        try {
            $this->fichierStorageService->setGenererFichierSubstitutionSiIntrouvable(false);
            $rapportFilePath = $this->fichierStorageService->getFileForFichier($rapport->getFichier());
        } catch (StorageAdapterException $e) {
            throw new RuntimeException(
+13 −1
Original line number Diff line number Diff line
@@ -14,6 +14,8 @@ use Fichier\Controller\ConsoleController;
use Fichier\Controller\Factory\FichierControllerFactory;
use Fichier\Controller\Plugin\UrlFichier;
use Fichier\Provider\Privilege\FichierPrivileges;
use Fichier\Exporter\PageFichierIntrouvablePdfExporter;
use Fichier\Exporter\PageFichierIntrouvablePdfExporterFactory;
use Fichier\Service\Fichier\FichierService;
use Fichier\Service\Fichier\FichierServiceFactory;
use Fichier\Service\NatureFichier\NatureFichierService;
@@ -24,7 +26,16 @@ use UnicaenAuth\Provider\Rule\PrivilegeRuleProvider;

return [
    'fichier' => [

        // Page PDF de substitution en cas de fichier introuvable
        'page_fichier_introuvable' => [
            /** @see \Fichier\Exporter\PageFichierIntrouvablePdfExporterFactory */
            'template' => [
                // template .phtml
                'phtml_file_path' => __DIR__ . '/../../view/fichier/page-fichier-introuvable/template.phtml',
                // feuille de styles
                'css_file_path' => __DIR__ . '/../../view/fichier/page-fichier-introuvable/styles.css',
            ],
        ],
    ],

    'console' => [
@@ -214,6 +225,7 @@ return [
        'factories' => [
            FichierService::class => FichierServiceFactory::class,
            FichierTheseService::class => FichierTheseServiceFactory::class,
            PageFichierIntrouvablePdfExporter::class => PageFichierIntrouvablePdfExporterFactory::class,
            'ValidationFichierCinesCommand' => TestArchivabiliteShellCommandFactory::class,
        ],
        'aliases' => [
+2 −0
Original line number Diff line number Diff line
@@ -96,6 +96,7 @@ class FichierController extends AbstractController

        // injection préalable du contenu du fichier pour pouvoir utiliser le plugin Uploader
        try {
            $this->fichierStorageService->setGenererFichierSubstitutionSiIntrouvable(false);
            $contenuFichier = $this->fichierStorageService->getFileContentForFichier($fichier);
        } catch (StorageAdapterException $e) {
            throw new RuntimeException("Impossible d'obtenir le contenu du fichier", null, $e);
@@ -116,6 +117,7 @@ class FichierController extends AbstractController

        // injection préalable du contenu du fichier pour pouvoir utiliser le plugin Uploader
        try {
            $this->fichierStorageService->setGenererFichierSubstitutionSiIntrouvable(false);
            $contenuFichier = $this->fichierStorageService->getFileContentForFichier($fichier);
        } catch (StorageAdapterException $e) {
            throw new RuntimeException("Impossible d'obtenir le contenu du fichier", null, $e);
+16 −0
Original line number Diff line number Diff line
<?php

namespace Fichier\Exporter;

use Application\Exporter\Pdf\ApplicationPdfExporter;

class PageFichierIntrouvablePdfExporter extends ApplicationPdfExporter
{
    protected function prepare()
    {
        parent::prepare();

        $this->setHeaderScriptToNone();
        $this->setFooterScriptToNone();
    }
}
 No newline at end of file
Loading