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

Déclaration des périmètres

parent dd469896
Loading
Loading
Loading
Loading
Loading
+19 −6
Original line number Diff line number Diff line
@@ -20,13 +20,25 @@ Alors, on pourra filtrer les données pour les référents selon les domaines do

## Périmètres implementés/hardcodés

Seulement un périmètre est aujourd'hui implemnté dans la bibliothèque :
## Déclaration de périmètres

* Structure : 
Filtrage selon les structures associés aux rôles. 
Ce périmètre suppose d'ajouter la colonne `perimetre_structure_id` dans les colonnes déclarées de l'indicateur.
Les périmètres que l'application exploite sont à déclarer en configuration. 
Le tableau de déclaration contient comme clef le nom du périmètre et en valeur une description qui sera présentée dans le formulaire de création des indicateurs.

**N.B.** : Les colonnes de travail seront masqué des affichages et exportations.
peut être déclarer dans le fichier [unicaen-indicateur.global.php](config/unicaen-indicateur.global.php.dist)
```php
return [
    'unicaen-indicateur' => [
        'role' => "Affichage restreint aux rôles de l'usagers",  
        'structure' => "Affichage restreint aux structures de l'usagers",  
    ],
];
```

**Attention** :  l'usage d'un périmètre suppose la déclatation d'une colonne perimetre_NOM_id dans l'indicateur qui sera exploité par le filtrage.
Ainsi pour le périmetre `structure` la colonne de filtrage sera nommée `perimetre_structure_id`.

**N.B.** : Les colonnes de travail seront masquées des affichages et exportations.

## Récupération des périmètres depuis l'application maîtresse

@@ -52,4 +64,5 @@ Améliorations
-------------
1. **PERIMÈTRE**  Exposer plusieurs périmètres

1. **PERIMÈTRE**  Déclarer des périmètres hors de l'application
 No newline at end of file
1. **SECURITE**  Verifier qu'il n'y est que des selects
1. **QoL**  Coloration tinyMCE 
 No newline at end of file
+3 −2
Original line number Diff line number Diff line
@@ -92,7 +92,7 @@ class IndicateurController extends AbstractActionController {
        return $this->redirect()->toRoute('indicateur/afficher', ['indicateur' => $indicateur->getId()], [], true);
    }

    public function creerAction() : ViewModel
    public function creerAction() : ViewModel|Response
    {
        $indicateur = new Indicateur();
        $namespace = $this->params()->fromQuery('namespace');
@@ -117,7 +117,8 @@ class IndicateurController extends AbstractActionController {
                $count = $this->getIndicateurService()->getCount($indicateur);
                $indicateur->setNbElements($count);
                $this->getIndicateurService()->update($indicateur);
                exit();

                return $this->redirect()->toRoute('indicateur/afficher', ['indicateur' => $indicateur->getId()], [], true);
            }
        }

+2 −1
Original line number Diff line number Diff line
@@ -10,7 +10,7 @@ use UnicaenIndicateur\Service\Indicateur\IndicateurService;
use Interop\Container\ContainerInterface;
use UnicaenIndicateur\Service\Perimetre\PerimetreServiceInterface;
use UnicaenMail\Service\Mail\MailService;
use UnicaenUtilisateur\Service\User\UserService;;
use UnicaenUtilisateur\Service\User\UserService;

class IndicateurControllerFactory {

@@ -36,6 +36,7 @@ class IndicateurControllerFactory {

        $config = $container->get('config');
        $perimetreServiceKey = $container->get($config['unicaen-indicateur']['perimetreService']);
        /** @var PerimetreServiceInterface $perimetreService */
        $perimetreService = $container->get($perimetreServiceKey::class);

        /**
+0 −3
Original line number Diff line number Diff line
@@ -13,9 +13,6 @@ class Indicateur {
    const ENTITY_LIBRE = 'Libre';
    const ENTITY_ADAPTATIF = 'Adaptatif';

    const PERIMETRE_AUCUN = 'aucun';
    const PERIMETRE_STRUCTURE = 'structure';

    private ?int $id = null;
    private ?string $code = null;
    private ?string $titre = null;
+8 −5
Original line number Diff line number Diff line
@@ -17,12 +17,18 @@ class IndicateurForm extends Form {
    use CategorieServiceAwareTrait;

    private ?string $oldCode = null;
    private array $perimetres = [];

    public function setOldCode(?string $oldCode): void
    {
        $this->oldCode = $oldCode;
    }

    public function setPerimetres(array $perimetres): void
    {
        $this->perimetres = $perimetres;
    }

    public function init(): void
    {
        // code
@@ -126,11 +132,8 @@ class IndicateurForm extends Form {
            'options' => [
                'label' => "Périmètre associé <span class='icon icon-obligatoire' title='champ obligatoire'></span>  :",
                'label_options' => [ 'disable_html_escape' => true, ],
                'empty_option' => "Sélection d'un périmtre",
                'value_options' => [
                    Indicateur::PERIMETRE_AUCUN => "Non soumis à un périmètre",
                    Indicateur::PERIMETRE_STRUCTURE => "Liés aux structures (requiert une colonne perimetre_structure_id)",
                ],
                'empty_option' => "Sélection des périmètres",
                'value_options' => $this->perimetres,
            ],
            'attributes' => [
                'id' => 'perimetre',
Loading