Commit 18553649 authored by Jean-Philippe Metivier's avatar Jean-Philippe Metivier
Browse files

Ajout du rapport technique dans les documents de la présoutenance (s'il y a au...

Ajout du rapport technique dans les documents de la présoutenance (s'il y a au moins une visio de déclaré)
parent 6eb14af6
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -10,6 +10,7 @@ Journal des modifications
- [FIX] Le menu 'Mes thèses' inclut désormais les thèses soutenues (indispensable pour le profil Président du jury).
- [FIX] Utilisation de l'état ETABLISSEMENT pour le feu vert des soutenances plutôt que VALIDE
- Ajout d'une mention de l'envoi à tous les responsables de structure lorsque aucun responsable de site n'a été trouvé.
- Ajout du rapport technique dans les documents de la présoutenance (s'il y a au moins une visio de déclaré)

3.0.10
-----
+12 −0
Original line number Diff line number Diff line
@@ -71,6 +71,7 @@ return [
                        'proces-verbal-soutenance',
                        'modifier-adresse',
                        'envoyer-convocation',
                        'rapport-technique',
                    ],
                    'privileges' => PresoutenancePrivileges::PRESOUTENANCE_DATE_RETOUR_MODIFICATION,
                ],
@@ -175,6 +176,17 @@ return [
                                    ],
                                ],
                            ],
                            'rapport-technique' => [
                                'type' => Segment::class,
                                'may_terminate' => true,
                                'options' => [
                                    'route' => '/avis-soutenance',
                                    'defaults' => [
                                        'controller' => PresoutenanceController::class,
                                        'action' => 'rapport-technique',
                                    ],
                                ],
                            ],
                            'convocations' => [
                                'type' => Segment::class,
                                'may_terminate' => true,
+15 −1
Original line number Diff line number Diff line
@@ -30,6 +30,7 @@ use Soutenance\Service\Avis\AvisServiceAwareTrait;
use Soutenance\Service\EngagementImpartialite\EngagementImpartialiteServiceAwareTrait;
use Soutenance\Service\Evenement\EvenementServiceAwareTrait;
use Soutenance\Service\Exporter\AvisSoutenance\AvisSoutenancePdfExporter;
use Soutenance\Service\Exporter\RapportTechnique\RapportTechniquePdfExporter;
use Soutenance\Service\Exporter\Convocation\ConvocationPdfExporter;
use Soutenance\Service\Exporter\ProcesVerbal\ProcesVerbalSoutenancePdfExporter;
use Soutenance\Service\Justificatif\JustificatifServiceAwareTrait;
@@ -398,7 +399,6 @@ class PresoutenanceController extends AbstractController
        exit;
    }

    /** Document pour la signature en présidence */
    public function avisSoutenanceAction()
    {
        $these = $this->requestedThese();
@@ -416,6 +416,20 @@ class PresoutenanceController extends AbstractController
        exit;
    }

    public function rapportTechniqueAction()
    {
        $these = $this->requestedThese();
        $pdcData = $this->getTheseService()->fetchInformationsPageDeCouverture($these);

        $exporter = new RapportTechniquePdfExporter($this->renderer, 'A4');
        $exporter->setVars([
            'these' => $these,
            'informations' => $pdcData,
        ]);
        $exporter->export($these->getId() . '_rapport_technique.pdf');
        exit;
    }

    /** TODO devrait être une variable VILLE_ETABLISSEMENT */
    /**
     * @param Etablissement $etablissement
+12 −0
Original line number Diff line number Diff line
@@ -449,4 +449,16 @@ class Proposition implements HistoriqueAwareInterface {
        if ($this->getDate() OR $this->getLieu())  return true;
        return false;
    }

    /**
     * @return bool
     */
    public function hasVisio() : bool
    {
        /** @var Membre $membre */
        foreach ($this->membres as $membre) {
            if ($membre->isVisio()) return true;
        }
        return false;
    }
}
 No newline at end of file
+36 −0
Original line number Diff line number Diff line
<?php

namespace Soutenance\Service\Exporter\RapportTechnique;

use UnicaenApp\Exporter\Pdf as PdfExporter;
use Zend\View\Renderer\PhpRenderer;
use Zend\View\Resolver\TemplatePathStack;

class RapportTechniquePdfExporter extends PdfExporter
{
    private $vars;

    public function setVars(array $vars)
    {
        $this->vars = $vars;
        $this->vars['exporter'] = $this;

        return $this;
    }

    public function __construct(PhpRenderer $renderer = null, $format = 'A4', $orientationPaysage = false, $defaultFontSize = 10)
    {
        parent::__construct($renderer, $format, $orientationPaysage, $defaultFontSize);
        $resolver = $renderer->resolver();
        $resolver->attach(new TemplatePathStack(['script_paths' => [__DIR__]]));
    }

    public function export($filename = null, $destination = self::DESTINATION_BROWSER, $memoryLimit = null)
    {
//        $this->addBodyHtml('<style>' . file_get_contents(APPLICATION_DIR . '/public/css/page-unicaen.css') . '</style>');
        $this->setHeaderScript('empty.phtml');
        $this->setFooterScript('footer.phtml');
        $this->addBodyScript('rapport-technique.phtml', false, $this->vars);
        return PdfExporter::export($filename, $destination, $memoryLimit);
    }
}
 No newline at end of file
Loading