Commit 5928dafc authored by Jean-Baptiste Oellers's avatar Jean-Baptiste Oellers
Browse files

Ajout convention modele

parent 5c79a74c
Loading
Loading
Loading
Loading
+42 −0
Changes for module/Oscar/config/module.config.php: 42 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -594,6 +594,41 @@ return array(
                    ],
                    'roles' => ['user']
                ],

                [
                    'controller' => 'ConventionModeleAdministration',
                    'action' => [
                        'conventionModeles',
                        'conventionModeleConfigurer',
                        'conventionModeleConfigurerInformationsAjouter',
                    ],
                    'roles' => ['user']
                ],

                [
                    'controller' => 'ConventionModeleEtapeAdministration',
                    'action' => [
                        'ajouter',
                        'configurer'
                    ],
                    'roles' => ['user']
                ],

                [
                    'controller' => 'ConventionModele',
                    'action' => [
                        'instancier',
                    ],
                    'roles' => ['user']
                ],

                [
                    'controller' => 'ConventionModeleInstance',
                    'action' => [
                        'afficher',
                    ],
                    'roles' => ['user']
                ],
            ]
        ],
    ],
@@ -634,6 +669,9 @@ return array(
            \Oscar\Service\administration\CheckConfigService::class => \Oscar\Service\administration\CheckConfigServiceFactory::class,
            \Oscar\Service\ConnectorService::class => \Oscar\Service\ConnectorServiceFactory::class,
            \Oscar\Service\ContractDocumentService::class => \Oscar\Service\ContractDocumentServiceFactory::class,
            \Oscar\Service\ConventionModeleService::class => \Oscar\Service\ConventionModeleServiceFactory::class,
            \Oscar\Service\ConventionModeleEtapeService::class => \Oscar\Service\ConventionModeleEtapeServiceFactory::class,
            \Oscar\Service\ConventionModeleInstanceService::class => \Oscar\Service\ConventionModeleInstanceServiceFactory::class,
            \Oscar\Service\DocumentFormatterService::class => \Oscar\Service\DocumentFormatterServiceFactory::class,
            \Oscar\Service\Fixture\FixtureService::class => \Oscar\Service\Fixture\FixtureServiceFactory::class,
            \Oscar\Service\GearmanJobLauncherService::class => \Oscar\Service\GearmanJobLauncherServiceFactory::class,
@@ -698,6 +736,10 @@ return array(
            'AdministrativeDocument' => \Oscar\Controller\AdministrativeDocumentControllerFactory::class,
            'Codenaf' => \Oscar\Controller\CodenafControllerFactory::class,
            'Connector' => \Oscar\Controller\ConnectorControllerFactory::class,
            'ConventionModele' => \Oscar\Controller\ConventionModeleControllerFactory::class,
            'ConventionModeleAdministration' => \Oscar\Controller\ConventionModeleAdministrationControllerFactory::class,
            'ConventionModeleEtapeAdministration' => \Oscar\Controller\ConventionModeleEtapeAdministrationControllerFactory::class,
            'ConventionModeleInstance' => \Oscar\Controller\ConventionModeleInstanceControllerFactory::class,
            'DateType' => \Oscar\Controller\DateTypeControllerFactory::class,
            'Depense' => \Oscar\Controller\DepenseControllerFactory::class,
            \Oscar\Controller\EnrollController::class => \Oscar\Controller\EnrollControllerFactory::class,
+86 −0
Changes for module/Oscar/config/routes.yml: 86 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -2430,6 +2430,54 @@ administration:
          action: pcruTypesEtablissement
      may_terminate: true

    conventionModeles:
      type: segment
      may_terminate: true
      options:
        route: /convention-modeles
        defaults:
          controller: ConventionModeleAdministration
          action: conventionModeles
      child_routes:
        configurer:
          type: segment
          may_terminate: true
          options:
            route: /:id
            defaults:
              action: conventionModeleConfigurer
          child_routes:
            informations:
              type: segment
              may_terminate: false
              options:
                route: /informations
              child_routes:
                ajouter:
                  type: segment
                  may_terminate: true
                  options:
                    route: /ajouter
                    defaults:
                      action: conventionModeleConfigurerInformationsAjouter
            etapes:
              type: segment
              may_terminate: true
              options:
                route: /etapes
                defaults:
                  controller: ConventionModeleEtapeAdministration
                  action: ajouter
              child_routes:
                configurer:
                  type: segment
                  may_terminate: true
                  options:
                    route: /:idEtape
                    defaults:
                      action: configurer


activity-notes:
  type: literal
  options:
@@ -2534,3 +2582,41 @@ contratspcru:
      controller: Pcru
      action: contratspcru
  may_terminate: true

conventionModeles:
  type: literal
  may_terminate: false
  options:
    route: /convention-modeles
    defaults:
      controller: ConventionModele
  child_routes:
    instance:
      type: segment
      may_terminate: false
      options:
        route: /:id
      child_routes:
        instancier:
          type: segment
          may_terminate: true
          options:
            route: /instancier
            defaults:
              action: instancier

conventionModeleInstances:
  type: literal
  may_terminate: false
  options:
    route: /convention-saisie
    defaults:
      controller: ConventionModeleInstance
  child_routes:
    afficher:
      type: segment
      may_terminate: true
      options:
        route: /:id
        defaults:
          action: afficher
+61 −0
Changes for module/Oscar/src/Oscar/Controller/ConventionModeleAdministrationController.php: 61 added lines, 0 removed lines.
Original line number Diff line number Diff line
<?php

namespace Oscar\Controller;

class ConventionModeleAdministrationController extends AbstractOscarController
{

    /** @var \Oscar\Service\ConventionModeleService */
    public $conventionModeleService;

    public function conventionModelesAction()
    {
        if (!$this->getRequest()->isPost()) {
            $conventionModeles = $this->getEntityManager()->getRepository(\Oscar\Entity\ConventionModele::class)->findAll();
            return ['conventionModeles' => $conventionModeles];
        }

        if ($this->params()->fromPost('action') == "créer") {
            $this->conventionModeleService->créerNouvelle($this->params()->fromPost('nom'), $this->getCurrentPerson());
        }

        return $this->redirect()->toRoute('administration/conventionModeles');
    }

    public function conventionModeleConfigurerAction()
    {
        /** @var \Oscar\Entity\ConventionModele $conventionModele */
        $conventionModele = $this->getEntityManager()->find(\Oscar\Entity\ConventionModele::class, $this->params('id'));
        if (!$conventionModele) {
            return $this->getResponseNotFound("Le modèle de convention n'a pas été trouvé.");
        }

        if (!$this->getRequest()->isPost()) {
            return ['conventionModele' => $conventionModele];
        }

        if ($this->params()->fromPost('action') == "supprimer") {
            $this->conventionModeleService->supprimer($conventionModele, $this->getCurrentPerson());
            return $this->redirect()->toRoute('administration/conventionModeles');
        } else if ($this->params()->fromPost('action') == "modifier_nom") {
            $this->conventionModeleService->modifierNom($conventionModele, $this->params()->fromPost('nom'), $this->getCurrentPerson());
        } else if ($this->params()->fromPost('action') == "publier") {
            $this->conventionModeleService->publier($conventionModele, $this->getCurrentPerson());
        } else if ($this->params()->fromPost('action') == "dépublier") {
            $this->conventionModeleService->dépublier($conventionModele, $this->getCurrentPerson());
        }

        return $this->redirect()->toRoute('administration/conventionModeles/configurer', ['id' => $conventionModele->id]);
    }

    public function conventionModeleConfigurerInformationsAjouterAction()
    {
        /** @var \Oscar\Entity\ConventionModele $conventionModele */
        $conventionModele = $this->getEntityManager()->find(\Oscar\Entity\ConventionModele::class, $this->params('id'));
        if (!$conventionModele) {
            return $this->getResponseNotFound("Le modèle de convention n'a pas été trouvé.");
        }
        
        return ['conventionModele' => $conventionModele];
    }
}
+20 −0
Changes for module/Oscar/src/Oscar/Controller/ConventionModeleAdministrationControllerFactory.php: 20 added lines, 0 removed lines.
Original line number Diff line number Diff line
<?php

namespace Oscar\Controller;

use Doctrine\ORM\EntityManager;
use Interop\Container\ContainerInterface;
use Laminas\ServiceManager\Factory\FactoryInterface;
use Oscar\Service\OscarUserContext;

class ConventionModeleAdministrationControllerFactory implements FactoryInterface
{
    public function __invoke(ContainerInterface $container, $requestedName, array $options = null)
    {
        $c = new ConventionModeleAdministrationController();
        $c->setEntityManager($container->get(EntityManager::class));
        $c->setOscarUserContextService($container->get(OscarUserContext::class));
        $c->conventionModeleService = $container->get(\Oscar\Service\ConventionModeleService::class);
        return $c;
    }
}
+24 −0
Changes for module/Oscar/src/Oscar/Controller/ConventionModeleController.php: 24 added lines, 0 removed lines.
Original line number Diff line number Diff line
<?php

namespace Oscar\Controller;

class ConventionModeleController extends AbstractOscarController
{

    /** @var \Oscar\Service\ConventionModeleInstanceService */
    public $conventionModeleInstanceService;

    public function instancierAction()
    {
        /** @var \Oscar\Entity\ConventionModele $conventionModele */
        $conventionModele = $this->getEntityManager()->find(\Oscar\Entity\ConventionModele::class, $this->params('id'));
        if (!$conventionModele) {
            return $this->getResponseNotFound("Le modèle de convention n'a pas été trouvé.");
        }

        $conventionModeleInstance = $this->conventionModeleInstanceService->créerNouvelle($conventionModele, $this->getCurrentPerson());

        return $this->redirect()->toRoute('conventionModeleInstances/afficher', ['id' => $conventionModeleInstance->id]);
    }

}
Loading