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

Ajout du filtre sur l'index des rendus (date + template)

parent 2c234c97
Loading
Loading
Loading
Loading
Loading
+2 −1
Changes for readme.md: 2 added lines, 1 removed line.
Original line number Diff line number Diff line
@@ -34,7 +34,8 @@ Modification du schéma
----------------------

**6.0.3** (version à venir)
+ Ajout du filtre des types de template
+ Ajout du filtre des types de template sur l'index des template
+ Ajout du filtre sur l'index des rendus (date + template)

avec la 5.0.5
```sql
+11 −1
Changes for src/UnicaenRenderer/Controller/RenduController.php: 11 added lines, 1 removed line.
Original line number Diff line number Diff line
@@ -6,18 +6,28 @@ use Laminas\Http\Request;
use Laminas\Mvc\Controller\AbstractActionController;
use Laminas\View\Model\ViewModel;
use UnicaenRenderer\Service\Rendu\RenduServiceAwareTrait;
use UnicaenRenderer\Service\Template\TemplateServiceAwareTrait;

class RenduController extends AbstractActionController
{
    use RenduServiceAwareTrait;
    use TemplateServiceAwareTrait;

    public function indexAction(): ViewModel
    {
        $rendus = $this->getRenduService()->getRendus();
        $templates = $this->getTemplateService()->getTemplates();

        $template = $this->params()->fromQuery('template');
        $date = $this->params()->fromQuery('date');

        $rendus = $this->getRenduService()->getRendusByTemplateAndDate($template, $date);

        return new ViewModel([
            'title' => 'Gestions des rendus',
            'rendus' => $rendus,
            'templates' => $templates,
            'template' => $template,
            'date' => $date,
        ]);
    }

+4 −0
Changes for src/UnicaenRenderer/Controller/RenduControllerFactory.php: 4 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -6,6 +6,7 @@ use Interop\Container\ContainerInterface;
use Psr\Container\ContainerExceptionInterface;
use Psr\Container\NotFoundExceptionInterface;
use UnicaenRenderer\Service\Rendu\RenduService;
use UnicaenRenderer\Service\Template\TemplateService;

class RenduControllerFactory
{
@@ -20,11 +21,14 @@ class RenduControllerFactory
    {
        /**
         * @var RenduService $contenuService
         * @var TemplateService $templateService
         */
        $contenuService = $container->get(RenduService::class);
        $templateService = $container->get(TemplateService::class);

        $controller = new RenduController();
        $controller->setRenduService($contenuService);
        $controller->setTemplateService($templateService);
        return $controller;
    }
}
 No newline at end of file
+21 −0
Changes for src/UnicaenRenderer/Service/Rendu/RenduService.php: 21 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -2,6 +2,7 @@

namespace UnicaenRenderer\Service\Rendu;

use DateInterval;
use DateTime;
use Doctrine\ORM\EntityManager;
use Doctrine\ORM\Exception\NotSupported;
@@ -9,6 +10,7 @@ use Doctrine\ORM\NonUniqueResultException;
use Doctrine\ORM\Exception\ORMException;
use Doctrine\ORM\QueryBuilder;
use DoctrineModule\Persistence\ProvidesObjectManager;
use Exception;
use Laminas\Mvc\Controller\AbstractActionController;
use Laminas\View\Renderer\PhpRenderer;
use Mpdf\MpdfException;
@@ -88,6 +90,25 @@ class RenduService
        return $result;
    }

    /** @return Rendu[] */
    public function getRendusByTemplateAndDate(?string $template = null, ?string $date = null, string $champ = 'date', string $ordre = 'ASC'): array
    {
        $qb = $this->createQueryBuilder()->orderBy('contenu.' . $champ, $ordre);

        if ($template !== null && trim($template) !=='') $qb = $qb->andWhere('template.code = :code')->setParameter('code', $template);
        if ($date !== null && trim($date) !=='') {
            try {
                $date_ = (new DateTime())->sub(new DateInterval('P' . $date));
            } catch (Exception $e) {
                throw new RuntimeException("Problème de calcul de la date buttoir avec [".$date."]",0,$e);
            }
            $qb = $qb->andWhere('contenu.date >= :date')->setParameter('date',$date_);
        }
        $result = $qb->getQuery()->getResult();
        return $result;
    }


    public function getRendu(?int $id): ?Rendu
    {
        $qb = $this->createQueryBuilder()
+10 −2
Changes for view/unicaen-renderer/rendu/index.phtml: 10 added lines, 2 removed lines.
Original line number Diff line number Diff line
@@ -9,6 +9,9 @@ use UnicaenRenderer\Provider\Privilege\DocumenttemplatePrivileges;
 * @see \UnicaenRenderer\Controller\RenduController::indexAction()
 * @var Rendu[] $rendus
 * @var string $title
 * @var string[] $templates
 * @var ?string $template
 * @var ?string $date
 */

$this->headTitle("Index des contenus");
@@ -42,12 +45,15 @@ $canTemplate = $this->isAllowed(DocumenttemplatePrivileges::getResourceId(Docume
    </div>
</div>

<?php echo $this->partial('partial/filtre.phtml', ['templates' => $templates, 'params' => ['date' => $date, 'template' => $template ]]); ?>
<br/>

<table id='rendu-liste' class="table table-condensed table-hover">
    <thead>
    <tr>
        <th class="col-md-1"> Id</th>
        <th class="col-md"> Template</th>
        <th class="col-md-3"> Date de génération</th>
        <th data-type="num" class="col-md-3"> Date de génération</th>
        <th class="col-md"> Sujet</th>
        <th class="col-md-1 text-end"> Action</th>
    </tr>
@@ -61,7 +67,9 @@ $canTemplate = $this->isAllowed(DocumenttemplatePrivileges::getResourceId(Docume
                    <?php echo $rendu->getTemplate()->getCode(); ?>
                <?php endif; ?>
            </td>
            <td> <?php echo $rendu->getDate()->format('d/m/Y à H:i:s'); ?> </td>
            <td data-order="<?php echo $rendu->getDate()->getTimestamp(); ?>">
                <?php echo $rendu->getDate()->format('d/m/Y à H:i:s'); ?>
            </td>
            <td>
                <span title="<?php echo $rendu->getSujet(); ?>" data-toggle="tooltip" data-html="true">
                <?php
Loading