Skip to content
GitLab
Menu
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Libriciel
web-DPO
Commits
d5c69d73
Commit
d5c69d73
authored
Nov 22, 2021
by
THEO GUILLON
Browse files
Correction : gestion des modèles pour les formulaires
parent
50741a43
Changes
3
Hide whitespace changes
Inline
Side-by-side
app/Controller/ModelesController.php
View file @
d5c69d73
...
...
@@ -143,38 +143,21 @@ class ModelesController extends AppController {
*/
protected
function
_getFormulairesMyOrganisations
(
$mesOrganisations
)
{
// Soit on n'a pas encore l'entrée (pour des formulaires associés)
$sqlOrganisationIsAssociatedToFormulaire
=
[];
$sqlOrganisationHasModelForFormulaire
=
[];
foreach
(
array_keys
(
$mesOrganisations
)
as
$organisation_id
)
{
$sqlOrganisationIsAssociatedToFormulaire
[]
=
$this
->
Formulaire
->
FormulaireOrganisation
->
sql
([
'alias'
=>
'formulaires_organisations'
,
'fields'
=>
[
'formulaires_organisations.formulaire_id'
],
'conditions'
=>
[
'formulaires_organisations.formulaire_id = Formulaire.id'
,
'formulaires_organisations.organisation_id'
=>
$organisation_id
]
]);
$sqlOrganisationHasModelForFormulaire
[]
=
$this
->
Formulaire
->
FormulaireModeleOrganisation
->
sql
([
'alias'
=>
'formulaires_modeles_organisations'
,
'fields'
=>
[
'formulaires_modeles_organisations.formulaire_id'
],
'conditions'
=>
[
'formulaires_modeles_organisations.formulaire_id = Formulaire.id'
,
'formulaires_modeles_organisations.organisation_id'
=>
$organisation_id
]
]);
}
$sqlALeDroitUtiliseOrganisation
=
$this
->
Formulaire
->
FormulaireOrganisation
->
sql
([
'alias'
=>
'formulaires_organisations'
,
'fields'
=>
[
'formulaires_organisations.formulaire_id'
],
'conditions'
=>
[
'formulaires_organisations.formulaire_id = Formulaire.id'
,
'formulaires_organisations.organisation_id'
=>
array_keys
(
$mesOrganisations
)
]
]);
// Soit il est déjà utilisé dans un des mes traitements (pour des formulaires non associés)
$sqlOrganisationAlreadyUsedFormulaire
=
$this
->
Fiche
->
sql
([
'alias'
=>
'fiches'
,
'fields'
=>
[
'
DISTINCT
fiches.form_id'
'fiches.form_id'
],
'conditions'
=>
[
'fiches.form_id = Formulaire.id'
,
...
...
@@ -182,6 +165,17 @@ class ModelesController extends AppController {
]
]);
$sqlFormulaireLieOrganisation
=
$this
->
Formulaire
->
FormulaireModeleOrganisation
->
sql
([
'alias'
=>
'formulaires_modeles_organisations'
,
'fields'
=>
[
'formulaires_modeles_organisations.formulaire_id'
],
'conditions'
=>
[
'formulaires_modeles_organisations.formulaire_id = Formulaire.id'
,
'formulaires_modeles_organisations.organisation_id'
=>
array_keys
(
$mesOrganisations
)
]
]);
$query
=
[
'fields'
=>
[
'Formulaire.id'
,
...
...
@@ -189,17 +183,13 @@ class ModelesController extends AppController {
],
'conditions'
=>
[
'OR'
=>
[
// Mon entité est associée au formulaire
'Formulaire.id IN ( '
.
implode
(
' UNION '
,
$sqlOrganisationIsAssociatedToFormulaire
)
.
' )'
,
[
// Mon entité n'est pas associée au formulaire
'Formulaire.id NOT IN ( '
.
implode
(
' UNION '
,
$sqlOrganisationIsAssociatedToFormulaire
)
.
' )'
,
// Mais le formulaire a déjà été utilisé dans mon entité
"Formulaire.id IN (
{
$sqlOrganisationAlreadyUsedFormulaire
}
)"
,
]
// Le formulaire a le droit d'être utilisé dans mon organisation
"Formulaire.id IN (
{
$sqlALeDroitUtiliseOrganisation
}
)"
,
// le formulaire a déjà été utilisé dans une fiche de mon organisation
"Formulaire.id IN (
{
$sqlOrganisationAlreadyUsedFormulaire
}
)"
],
//
I
l n'e
xi
st
e
pas encore
de modèle pour ce formulaire dans mon entité
'
Formulaire.id NOT IN (
'
.
implode
(
' INTERSECT '
,
$sqlOrganisationHasModelForFormulaire
)
.
' )'
,
// l
e formulaire
n'est pas encore
utilisé dans mon organisation
"
Formulaire.id NOT IN (
{
$sqlFormulaireLieOrganisation
}
)"
],
'order'
=>
[
'Formulaire.libelle ASC'
...
...
@@ -230,8 +220,11 @@ class ModelesController extends AppController {
$this
->
Modele
->
join
(
'FormulaireModeleOrganisation'
),
$this
->
Modele
->
FormulaireModeleOrganisation
->
join
(
'Organisation'
)
],
// 'conditions' => [
// 'Formulaire.archive' => false
// ],
'fields'
=>
[
'
DISTINCT
Modele.id'
,
'Modele.id'
,
'Modele.name_modele'
,
'Modele.fichier'
,
'Formulaire.id'
,
...
...
@@ -239,7 +232,14 @@ class ModelesController extends AppController {
],
'order'
=>
[
'Formulaire.libelle ASC'
,
]
],
'group'
=>
[
'Modele.id'
,
'Modele.name_modele'
,
'Modele.fichier'
,
'Formulaire.id'
,
'Formulaire.libelle'
,
],
];
if
(
$this
->
request
->
params
[
'action'
]
===
'entite'
)
{
...
...
app/View/Elements/Modele/modalAddModeleToFormulaireToEntity.ctp
View file @
d5c69d73
...
...
@@ -5,9 +5,10 @@ $body = '<div class="row top17">'
'addFormulaire_id'
=>
[
'id'
=>
'addFormulaire_id'
,
'options'
=>
$mesFormulaires
,
'class'
=>
'usersDeroulant form-control'
,
'required'
=>
true
,
'empty'
=>
true
,
'data-placeholder'
=>
__d
(
'registre'
,
'registre.placeholderSelectionnerUser'
)
,
'data-placeholder'
=>
'Sélectionnez un formulaire'
,
],
'addOrganisation_id'
=>
[
'id'
=>
'addOrganisation_id'
,
...
...
app/View/Modeles/index.ctp
View file @
d5c69d73
...
...
@@ -2,7 +2,21 @@
$this
->
Breadcrumbs
->
breadcrumbs
([
$title
=>
[]
]);
?>
<!--Bouton de création d'un modele -->
<div
class=
"row text-left"
>
<div
class=
"col-md-12 text-left"
>
<button
id=
"btnAddModeleToForm"
type=
"button"
class=
"btn btn-outline-primary"
data-toggle=
"modal"
data-target=
"#modalAddModele"
>
<span
class=
"fa fa-plus fa-lg"
></span>
<?php
echo
__d
(
'modele'
,
'modele.btnCreerModele'
);
?>
</button>
</div>
</div>
<?php
$pagination
=
null
;
$this
->
Paginator
->
options
([
...
...
@@ -10,9 +24,9 @@ $this->Paginator->options([
]);
$pagination
=
$this
->
element
(
'pagination'
);
echo
$pagination
;
if
(
!
empty
(
$modeles
))
{
echo
$pagination
;
echo
$this
->
element
(
'Buttons/affecterEntite'
,
[
'titleBtn'
=>
__d
(
'modele'
,
'modele.popupTitreAffecterModeleFormulaire'
)
]);
...
...
@@ -145,6 +159,7 @@ if (!empty($modeles)) {
</tbody>
</table>
<?php
echo
$pagination
;
}
else
{
?>
<div
class=
'text-center'
>
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment