Commit 799bd727 authored by Stephane Bouvry's avatar Stephane Bouvry
Browse files

- Ajout d'une vue pour le suivi des circuits de signature pour les observateurs.

parent 7030ae75
Loading
Loading
Loading
Loading
Loading
+12 −1
Changes for module/Oscar/config/module.config.php: 12 added lines, 1 removed line.
Original line number Diff line number Diff line
@@ -252,7 +252,17 @@ return array(
                // DOCUMENTS
                [
                    'controller' => 'ContractDocument', // --- Upload
                    'action' => ['upload', 'delete', 'changeType', 'index', 'show', 'download', 'process', 'signDocument'],
                    'action' => [
                        'changeType',
                        'delete',
                        'documentsObserved',
                        'download',
                        'index',
                        'signDocument',
                        'process',
                        'show',
                        'upload',
                    ],
                    'roles' => ['user']
                ],

@@ -536,6 +546,7 @@ return array(
            \Oscar\Service\ContractDocumentService::class => \Oscar\Service\ContractDocumentServiceFactory::class,
            \Oscar\Service\DocumentFormatterService::class => \Oscar\Service\DocumentFormatterServiceFactory::class,
            \Oscar\Service\GearmanJobLauncherService::class => \Oscar\Service\GearmanJobLauncherServiceFactory::class,
            \Oscar\Service\JsonFormatterService::class => \Oscar\Service\JsonFormatterServiceFactory::class,
            'Logger' => \Oscar\Service\LoggerServiceFactory::class,
            \Oscar\Service\MailingService::class => \Oscar\Service\MailingServiceFactory::class,
            \Oscar\Service\MaintenanceService::class => \Oscar\Service\MaintenanceServiceFactory::class,
+8 −0
Changes for module/Oscar/config/routes.yml: 8 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -1281,6 +1281,14 @@ contractdocument:
        route: /process/:id
        defaults:
          action: process

    documents-observed:
      type: segment
      options:
        route: /documents-observed
        defaults:
          action: documentsObserved

    delete:
      type: segment
      options:
+37 −5
Changes for module/Oscar/src/Oscar/Controller/ContractDocumentController.php: 37 added lines, 5 removed lines.
Original line number Diff line number Diff line
<?php

namespace Oscar\Controller;

use Doctrine\ORM\NonUniqueResultException;
@@ -16,6 +17,8 @@ use Oscar\Service\ContractDocumentService;
use Oscar\Service\NotificationService;
use Oscar\Service\ProjectGrantService;
use Oscar\Service\VersionnedDocumentService;
use Oscar\Traits\UseJsonFormatterService;
use Oscar\Traits\UseJsonFormatterServiceTrait;
use Oscar\Traits\UseServiceContainer;
use Oscar\Traits\UseServiceContainerTrait;
use Oscar\Utils\FileSystemUtils;
@@ -29,10 +32,10 @@ use Laminas\View\Model\JsonModel;
 * Class ContractDocumentController
 * @package Oscar\Controller
 */
class ContractDocumentController extends AbstractOscarController implements UseServiceContainer
class ContractDocumentController extends AbstractOscarController implements UseServiceContainer, UseJsonFormatterService
{

    use UseServiceContainerTrait;
    use UseServiceContainerTrait, UseJsonFormatterServiceTrait;

    //////////////////////////////////////////////////////////////////////////////////////////////////// SERVICES ACCESS

@@ -131,7 +134,7 @@ class ContractDocumentController extends AbstractOscarController implements UseS
     * @return UnicaenDoctrinePaginator[]
     * @throws Exception
     */
    public function indexAction()
    public function indexAction() :array
    {
        $documents = $this->getVersionnedDocumentService()->getDocuments();
        $page = $this->params()->fromQuery('page', 1);
@@ -380,7 +383,34 @@ class ContractDocumentController extends AbstractOscarController implements UseS
        }
    }

    public function signDocumentAction() {
    /**
     * Liste des documents suivis (présent en tant qu'observateur d'un processus de signature)
     *
     * @return void
     */
    public function documentsObservedAction()
    {
        $this->getLoggerService()->debug("documentsObservedAction()");
        $this->getJsonFormatterService()->setUrlHelper($this->url());
        $person = $this->getCurrentPerson();
        if ($this->isAjax() || $this->params()->fromQuery('f', null) == 'json') {
            $this->getLoggerService()->debug("Chargement des documents observés");
            try {
                $documents = $this->getContractDocumentService()->getDocumentsWithSignProcessForUser($person);
                $output = $this->baseJsonResponse();
                $output['documents'] = $this->getJsonFormatterService()->contractDocuments($documents);
                return $this->jsonOutput($output);
            } catch (Exception $e) {
                $msg = "Impossible d'afficher le suivi des signatures";
                $this->getLoggerService()->error($msg . " : " . $e->getMessage());
                return $this->jsonError($msg);
            }
        }
        return [];
    }

    public function signDocumentAction()
    {
        try {
            // DOCUMENT et FLOWDT
            try {
@@ -411,7 +441,9 @@ class ContractDocumentController extends AbstractOscarController implements UseS
            return new JsonModel(['response' => 'ok']);
        } catch (Exception $e) {
            $this->getLoggerService()->critical("Erreur signature : " . $e->getMessage());
            return $this->jsonError("Un problème est survenu lors de la soumission pour signature : " . $e->getMessage());
            return $this->jsonError(
                "Un problème est survenu lors de la soumission pour signature : " . $e->getMessage()
            );
        }
    }

+2 −0
Changes for module/Oscar/src/Oscar/Controller/ContractDocumentControllerFactory.php: 2 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -11,6 +11,7 @@ namespace Oscar\Controller;

use Doctrine\ORM\EntityManager;
use Interop\Container\ContainerInterface;
use Oscar\Service\JsonFormatterService;
use Oscar\Service\OscarConfigurationService;
use Oscar\Service\OscarUserContext;
use Laminas\ServiceManager\Factory\FactoryInterface;
@@ -25,6 +26,7 @@ class ContractDocumentControllerFactory implements FactoryInterface
        $c->setOscarUserContextService($container->get(OscarUserContext::class));
        $c->setEntityManager($container->get(EntityManager::class));
        $c->setServiceContainer($container);
        $c->setJsonFormatterService($container->get(JsonFormatterService::class));
        return $c;
    }
}
 No newline at end of file
+2 −0
Changes for module/Oscar/src/Oscar/Entity/Activity.php: 2 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -2730,6 +2730,8 @@ class Activity implements ResourceInterface
            'text'  => sprintf("[%s] %s", $this->getOscarNum(), $this->getLabel()),
            'num'   => $this->getOscarNum(),
            'label' => $this->getLabel(),
            'project_acronym' => $this->getProject() ? $this->getProject()->getAcronym() : "",
            'project_label' => $this->getProject() ? $this->getProject()->getLabel() : "",
        ];
    }

Loading