Commit 9f92e94a authored by tguillon's avatar tguillon
Browse files

Ajout : mise en place pour le DPO d'un bannette avec touts les traitements de l'entité

parent aa9818e0
......@@ -23,6 +23,7 @@ Le format est basé sur le modèle [Keep a Changelog](http://keepachangelog.com/
- Mise en place d'une FAQ.
- Mise en place de nouveau droits en rapport avec le FAQ.
- Mise en place de l'initialisation d'un traitement par le DPO
- Ajout pour le DPO de visualiser tous les traitements au sein de sa collectivité.
### Evolutions
- Affichage de l'onglet "Information de l'entité" lors de la visualisation d'un traitement au registre
......
......@@ -357,4 +357,29 @@ class BanettesComponent extends Component {
return $query;
}
/**
* Tous les traitements en cours dans l'entité
*
* @return array()
*
* @access public
* @created 10/12/2019
* @version V1.2.0
* @author Théo GUILLON <theo.guillon@libriciel.coop>
*/
public function queryAllTraitements() {
$query = $this->_query();
$query['conditions'] += [
'EtatFiche.etat_id !=' => [
EtatFiche::VALIDER_DPO,
EtatFiche::MODIFICATION_TRAITEMENT_REGISTRE,
EtatFiche::ARCHIVER
],
'EtatFiche.actif' => true
];
return $query;
}
}
......@@ -866,4 +866,63 @@ class PannelController extends AppController {
return $redacteurs;
}
/**
* Visualisation de tous les traitements de l'entité
*
* @return type
*
* @access public
* @created 12/12/2019
* @version V1.2.0
* @author Théo GUILLON <theo.guillon@libriciel.coop>
*/
public function all_traitements() {
if (true !== $this->Droits->authorized($this->Droits->isDpo())) {
throw new ForbiddenException(__d('default', 'default.flasherrorPasDroitPage'));
}
// Superadmin non autorisé
if ($this->Droits->isSu() == true) {
throw new ForbiddenException(__d('default', 'default.flasherrorPasDroitPage'));
}
$this->set('title', __d('pannel', 'pannel.titreAllTraitement'));
// Tous les traitements
$query = $this->Banettes->queryAllTraitements();
if ($this->request->is('post')) {
$conditions = [];
// Filtre sur l'utilisateur à l'origine du traitement
if (!empty($this->request->data['Filtre']['filtreEtatTraitement'])) {
$conditions['EtatFiche.etat_id'] = $this->request->data['Filtre']['filtreEtatTraitement'];
}
$query['conditions'] += $conditions;
}
$banettes['allTraitements'] = [
'results' => $this->Fiche->find('all', $query + ['limit' => 0]),
'count' => $this->Fiche->find('count', $query),
'enumsNormes' => $this->_enumsNorme()
];
$options = [
'etatTraitement' => [
EtatFiche::ENCOURS_REDACTION => __d('pannel', 'pannel.textEtatEnCoursRedaction'),
EtatFiche::ENCOURS_VALIDATION => __d('pannel', 'pannel.textEtatEnAttente'),
EtatFiche::REFUSER => __d('pannel', 'pannel.textEtatRefuser'),
EtatFiche::DEMANDE_AVIS => __d('pannel', 'pannel.textEtatDemandeAvis'),
EtatFiche::REPLACER_REDACTION => __d('pannel', 'pannel.textEtatReplacerRedaction'),
EtatFiche::REPONSE_AVIS => __d('pannel', 'pannel.textEtatConsulte'),
EtatFiche::INITIALISATION_TRAITEMENT => __d('pannel', 'pannel.textEtatInitialisationTraitement'),
EtatFiche::REDACTION_TRAITEMENT_INITIALISE => __d('pannel', 'pannel.textEtatRedactionTraitementInitialise')
]
];
$this->set(compact('banettes', 'options'));
}
}
......@@ -45,6 +45,9 @@ msgstr "Déclarations passées en ma possession"
msgid "default.sousTitreInitialisationTraitement"
msgstr "Initialisation des déclarations"
msgid "default.sousTitreAllTraitements"
msgstr "Toutes les déclarations de l'entité"
msgid "default.titreRegistre"
msgstr "Registre"
......
......@@ -102,6 +102,9 @@ msgstr "Toutes les déclarations passées en ma possession"
msgid "pannel.titreInitialisationTraitement"
msgstr "Mes déclarations initialisé"
msgid "pannel.titreAllTraitement"
msgstr "Toutes les déclarations de l'entité"
###############################################################################
......@@ -267,6 +270,18 @@ msgstr "Sélectionnez une entité"
###############################################################################
#####################: View/Pannel/all_traitements.ctp###########################
msgid "pannel.btnFiltreAllTraitements"
msgstr "Filtrer les traitements"
msgid "pannel.champFiltreEtatTraitement"
msgstr "Filtrer en fonction de l'état du traitement"
msgid "pannel.placeholderSelectionnerEtatTraitement"
msgstr "Sélectionner un ou plusieurs état de traitement"
###############################################################################
########################## View/Pannel/test.ctp ###########################
......@@ -415,6 +430,7 @@ msgstr "Visualiser toutes les déclarations passées en ma possession"
msgid "pannel.traitementConsulte"
msgstr "État des déclarations passées en ma possession (%d)"
# Banette Initialisation traitement
msgid "pannel.aucunTraitementInitialisation"
......@@ -424,4 +440,13 @@ msgid "pannel.btnVoirTraitementInitialisation"
msgstr "Visualiser toutes mes déclarations en cours d'initialisation"
msgid "pannel.traitementInitialisation"
msgstr "Mes déclarations en cours d'initialisation (%d)"
\ No newline at end of file
msgstr "Mes déclarations en cours d'initialisation (%d)"
# Banette Tous les traitements
msgid "pannel.aucunTraitementAllTraitements"
msgstr "Aucun traitement au sein de votre entité"
msgid "pannel.traitementAllTraitements"
msgstr "Toutes les déclarations de l'entité (%d)"
\ No newline at end of file
......@@ -1158,7 +1158,7 @@ class BanettesHelper extends AppHelper {
*
* @param array $result
* @param array $params
* @return type
* @return string
*
* @access protected
* @created 11/12/2019
......@@ -1187,6 +1187,7 @@ class BanettesHelper extends AppHelper {
* @access protected
* @created 11/12/2019
* @version V1.2.0
* @author Théo GUILLON <theo.guillon@libriciel.coop>
*/
protected function _getOutilnom($valeursTraitement)
{
......@@ -1201,49 +1202,24 @@ class BanettesHelper extends AppHelper {
return ($traitement_name);
}
// /**
// * Bouton d'envoie pour un traitement en initialisation
// *
// * @param array $result
// * @param array $params
// * @return type
// *
// * @access protected
// * @created 11/12/2019
// * @version V1.2.0
// */
// protected function _menuEnvoyerTraitementInitialisation($banette, array $result, array $params = []) {
// $fiche_id = Hash::get($result, 'Fiche.id');
// $menu = '';
//
// // Envoyer au rédacteur
// if ($this->Autorisation->isDpo()) {
// if ($banette == 'encours_redaction') {
// $title = __d('pannel', 'pannel.textEnvoyerDPO');
// } else {
// $title = __d('pannel', 'pannel.textValiderEnvoyerDPO');
// }
//
// $menu .= $this->Html->tag(
// 'li',
// $this->Html->link($title, [
// 'controller' => 'etatFiches',
// 'action' => 'dpoValid',
// $fiche_id
// ], [
// 'role' => 'menuitem',
// 'tabindex' => '-1'
// ]),
// ['role' => 'presentation']
// );
// }
//
// $span = $this->Html->tag(
// 'ul',
// $menu,
// ['class' => 'dropdown-menu', 'role' => 'menu']
// );
//
// return $span;
// }
/**
*
* @param array $banette
* @param array $params
* @return type
*
* @access public
* @created 12/12/2019
* @version V1.2.0
* @author Théo GUILLON <theo.guillon@libriciel.coop>
*/
public function allTraitement(array $banette, array $params = []) {
$params += [
'action' => 'allTraitements',
'count' => $banette['count'],
'enumsNormes' => $banette['enumsNormes']
];
return $this->_banette($banette['results'], $params);
}
}
......@@ -178,6 +178,14 @@
'action' => 'initialisation'
]
],
__d('default', 'default.sousTitreAllTraitements') => [
'disabled' => !($this->Autorisation->authorized(['5'], $this->Session->read('Droit.liste'))),
'class' => 'fa-eye',
'url' => [
'controller' => 'pannel',
'action' => 'all_traitements'
]
],
'divider',
__d('pannel', 'pannel.btnCreerTraitement') => [
'disabled' => !($this->Autorisation->authorized(['1'], $this->Session->read('Droit.liste'))),
......
<?php
echo $this->Html->script([
'pannel.js',
'filtre.js'
]);
echo $this->Html->css('filtre.css');
// Bouton du filtre de la liste
echo $this->Form->button('<span class="fa fa-filter fa-lg"><!----></span>' . __d('pannel', 'pannel.btnFiltreAllTraitements'), [
'type' => 'button',
'class' => 'btn btn-default-default pull-right',
'id' => 'filtrage'
]);
$filters = $this->request->data;
//unset($filters['sort'], $filters['direction'], $filters['page'], $filters['Soustraitant']['nbAffichage']);
//if(empty($filters['Soustraitant'])) {
// unset($filters['Soustraitant']);
//}
?>
<br>
<br>
<br>
<div id="divFiltrage" <?php if(true === empty($filters)) {echo 'style="display: none;"';}?>>
<?php
echo $this->Form->create('Filtre', [
'url' => [
'controller' => $this->request->params['controller'],
'action' => $this->request->params['action']
], 'class' => 'search-form'
]);
?>
<div class="row">
<?php
// Filtrer par Etat du traitement
echo $this->Form->input('filtreEtatTraitement', [
'options' => $options['etatTraitement'],
'class' => 'usersDeroulant transformSelect form-control',
'empty' => true,
'label' => __d('pannel', 'pannel.champFiltreEtatTraitement'),
'data-placeholder' => __d('pannel', 'pannel.placeholderSelectionnerEtatTraitement'),
'multiple' => true,
'before' => '<div class="col-md-6">',
'after' => '</div>'
]);
?>
</div>
<!-- Groupe de bouton -->
<div class="row top30">
<div class="col-md-4 col-md-offset-5 btn-group">
<?php
// Bouton Réinitialiser le filtre
echo $this->Html->link('<i class="fa fa-undo fa-lg"><!----></i> ' . __d('registre', 'registre.btnReinitialiserFiltre'), [
'controller' => $this->request->params['controller'],
'action' => $this->request->params['action']
],[
'class' => 'btn btn-default-danger', //search-reset
'escape' => false,
]);
// Bouton Appliquer les filtres
echo $this->Form->button('<i class="fa fa-filter fa-lg"><!----></i> ' . __d('registre', 'registre.btnFiltre'), [
'type' => 'submit',
'class' => 'btn btn-default-primary'
]);
?>
</div>
</div>
<?php
echo $this->Form->end();
?>
</div>
<?php
$params = ['limit' => false];
// Banette mes déclarations en cours d'initialisation
echo $this->Banettes->allTraitement($banettes['allTraitements'], $params);
\ No newline at end of file
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment