documents as $documents) :
- //et si le document est la photo liée, on l'affiche, pour cela
+ /* Maintenant que les dénominations des fichiers dl on changé on a besoin des
+ * informations de la photo pour retrouver son nom et l'afficher, l'id ne suffit plus
+ * on parcourt donc les documents liés à ce matériel
+ */
+ foreach ($materiel->documents as $documents) {
+ // et si le document est la photo liée, on l'affiche, pour cela
if($documents->photo) {
//on récupère le doc
$photo = $documents;
@@ -149,11 +166,10 @@ $panne = h($materiel->hors_service) ? ' (HORS SERVICE)' : '';
'style' => 'max-width: 300px; text-align: center;'
]);
}
- }
- endforeach ;
-
+ }
+ }
- // Url transformed in QrCode
+ // QRCODE (Url)
$this->request->getSession()->write("qrUrl", $this->request->env('SERVER_NAME') . $this->request->env('REQUEST_URI'));
$this->requestAction('/QrCodes/creer/');
echo $this->Html->image('qrcodes/' . $this->request->getSession()
@@ -167,50 +183,29 @@ $panne = h($materiel->hors_service) ? ' (HORS SERVICE)' : '';
-
-
+
status, ['CREATED','VALIDATED']) ) {
// (EP 17/5/19) Ben non, on peut pas éditer si validé !!!
//if ($IS_CREATED || $IS_VALIDATED) {
- if ($IS_CREATED) {
- if ($USER_IS_ADMIN_OR_MORE || $USER_IS_UTILISATEUR_AND_CREATOR_OR_OWNER || $USER_IS_RESPONSABLE_AND_SAME_GROUP || $USER_IS_RESPONSABLE_AND_CREATOR_OR_OWNER)/*
- //in_array($role, ['Administration','Administration Plus','Super Administrateur'])
- ||
- (
- //$role == 'Utilisateur'
- //&& in_array($username, [$materiel->nom_createur, $materiel->nom_responsable])
- )
- ||
- (
- $role == 'Responsable'
- && (
- (
- isset($priviledgedUser->groupes_metier_id)
- && $priviledgedUser->groupes_metier_id != $idGmNa
- && $materiel->groupes_metier_id == $priviledgedUser->groupes_metier_id
- )
- ||
- (
- isset($priviledgedUser->groupe_thematique_id)
- && $priviledgedUser->groupe_thematique_id != $idGtNa
- && $materiel->groupes_thematique_id == $priviledgedUser->groupe_thematique_id
- )
- )
- )
- */
- echo $this->Html->link(__(' Editer ce matériel'), [
- 'action' => 'edit',
- $materiel->id
- ], [
- 'escape' => false,
- 'onclick' => 'return true;',
- 'style' => 'margin-right: 10px'
- ]);
- }
+ //if ($IS_CREATED) {
+ if ($CAN_EDIT) $echoActionButton($this->Html, 'icon-pencil', 'Editer ce matériel', 'edit', $materiel->id);
+ /*
+ echo $this->Html->link(
+ __(' Editer ce matériel'),
+ [
+ 'action' => 'edit',
+ $materiel->id
+ ],
+ [
+ 'escape' => false,
+ 'onclick' => 'return true;',
+ 'style' => 'margin-right: 10px'
+ ]
+ );
+ */
/*
* // TOBEARCHIVED+
@@ -231,6 +226,8 @@ $panne = h($materiel->hors_service) ? ' (HORS SERVICE)' : '';
if ($IS_VALIDATED) {
// BOUTON NOUVEAU SUIVI
+ $echoActionButton($this->Html, 'icon-plus', 'Nouv. Suivi', 'add', $materiel->id, 'Faire un nouveau suivi de ce matériel', 'suivis');
+ /*
echo $this->Html->link(' Nouv. Suivi', [
'controller' => 'suivis',
'action' => 'add',
@@ -240,8 +237,11 @@ $panne = h($materiel->hors_service) ? ' (HORS SERVICE)' : '';
'style' => 'margin-right: 10px',
'escape' => false
]); // End link
-
+ */
+
// BOUTON NOUVEL EMPRUNT
+ $echoActionButton($this->Html, 'icon-plus', 'Nouv. Emprunt', 'add', $materiel->id, 'Faire un nouvel emprunt de ce matériel', 'emprunts');
+ /*
echo $this->Html->link(' Nouv. Emprunt', [
'controller' => 'emprunts',
'action' => 'add',
@@ -251,36 +251,19 @@ $panne = h($materiel->hors_service) ? ' (HORS SERVICE)' : '';
'style' => 'margin-right: 10px',
'escape' => false
]); // End link
+ */
}
- // BOUTON "Lier un Doc"
- if ($USER_IS_ADMIN_OR_MORE || $USER_IS_UTILISATEUR_AND_CREATOR_OR_OWNER || $USER_IS_RESPONSABLE_AND_SAME_GROUP || $USER_IS_RESPONSABLE_AND_CREATOR_OR_OWNER) {
+ // BOUTONS "Lier un Doc" et "Remplacer/Lier photo"
+ if ($CAN_ATTACH_A_DOC) {
+ //if ($USER_IS_ADMIN_OR_MORE || $USER_IS_UTILISATEUR_AND_CREATOR_OR_OWNER || $USER_IS_RESPONSABLE_AND_SAME_GROUP || $USER_IS_RESPONSABLE_AND_CREATOR_OR_OWNER) {
+ $echoActionButton($this->Html, 'icon-file', 'Lier un Doc.', 'add', $materiel->id, 'Attacher un Doc. à ce matériel', 'documents', 'mat');
+ // BOUTON "photo"
+ if ($materiel->photo_id != null)
+ $echoActionButton($this->Html, 'icon-file', 'Remplacer la photo.', 'add', $materiel->id, 'Remplacer la photo de ce matériel', 'documents', 'mat', 'photo');
+ else
+ $echoActionButton($this->Html, 'icon-file', 'Lier une photo.', 'add', $materiel->id, 'Attacher une photo à ce matériel', 'documents', 'mat', 'photo');
/*
- * if (
- * in_array($role, ['Administration','Administration Plus','Super Administrateur'])
- * ||
- * (
- * $role == 'Utilisateur'
- * && in_array($username, [$materiel->nom_createur,$materiel->nom_responsable])
- * )
- * || (
- * $role == 'Responsable'
- * && (
- * (
- * isset($priviledgedUser->groupes_metier_id)
- * && $priviledgedUser->groupes_metier_id != $idGmNa
- * && $materiel->groupes_metier_id == $priviledgedUser->groupes_metier_id
- * )
- * ||
- * (
- * isset($priviledgedUser->groupe_thematique_id)
- * && $priviledgedUser->groupe_thematique_id != $idGtNa
- * && $materiel->groupes_thematique_id == $priviledgedUser->groupe_thematique_id
- * )
- * )
- * )
- * ) {
- */
echo $this->Html->link(' Lier un Doc.', [
'controller' => 'documents',
'action' => 'add',
@@ -291,9 +274,9 @@ $panne = h($materiel->hors_service) ? ' (HORS SERVICE)' : '';
'style' => 'margin-right: 10px',
'escape' => false
]);
+ */
- // BOUTON "photo"
- if ($materiel->photo_id != null) {
+ /*
echo $this->Html->link(' Remplacer la photo.', [
'controller' => 'documents',
'action' => 'add',
@@ -305,7 +288,8 @@ $panne = h($materiel->hors_service) ? ' (HORS SERVICE)' : '';
'style' => 'margin-right: 10px',
'escape' => false
]);
- } else {
+ */
+ /*
echo $this->Html->link(' Lier une photo.', [
'controller' => 'documents',
'action' => 'add',
@@ -317,7 +301,7 @@ $panne = h($materiel->hors_service) ? ' (HORS SERVICE)' : '';
'style' => 'margin-right: 10px',
'escape' => false
]);
- }
+ */
} // BOUTON Lier un doc
// Doc admission et sortie (admin+)
@@ -337,12 +321,14 @@ $panne = h($materiel->hors_service) ? ' (HORS SERVICE)' : '';
$data = $materiel->numero_laboratoire . ".pdf";
}
// if (($materiel->status == 'VALIDATED') || ($materiel->status == 'CREATED')) {
+ $echoActionButton($this->Html, 'icon-file', 'Doc. admission', $action, $data, "Voir le document d'admission", 'documents');
+ /*
echo $this->Html->link(' Doc. admission', [
'controller' => 'documents',
- /*
+ ///
'action' => 'admission',
$materiel->numero_laboratoire
- */
+ ///
'action' => $action,
$data
], [
@@ -350,6 +336,7 @@ $panne = h($materiel->hors_service) ? ' (HORS SERVICE)' : '';
'style' => 'margin-right: 10px',
'escape' => false
]);
+ */
}
// Doc sortie (admin only)
@@ -365,6 +352,8 @@ $panne = h($materiel->hors_service) ? ' (HORS SERVICE)' : '';
$data = $materiel->numero_laboratoire . ".pdf";
}
// else if (($materiel->status == 'ARCHIVED') || ($materiel->status == 'TOBEARCHIVED')) {
+ $echoActionButton($this->Html, 'icon-file', 'Doc. sortie', $action, $data, "Voir le document de sortie", 'documents');
+ /*
echo $this->Html->link(' Doc. sortie', [
'controller' => 'documents',
'action' => $action,
@@ -380,6 +369,7 @@ $panne = h($materiel->hors_service) ? ' (HORS SERVICE)' : '';
'style' => 'margin-right: 10px',
'escape' => false
]);
+ */
}
}
@@ -473,6 +463,8 @@ $panne = h($materiel->hors_service) ? ' (HORS SERVICE)' : '';
} // BOUTON changement statut
// BOUTON Copier (seulement pour les materiels qui sont CREATED et pour les ADMINet+ ou USER owner)
+ if ($CAN_COPY) $echoActionButton($this->Html, 'icon-plus', 'Copier ce matériel', 'add', $materiel->id, "Copier ce matériel");
+ /*
if ( $IS_CREATED and ($USER_IS_ADMIN_OR_MORE || $USER_IS_UTILISATEUR_AND_CREATOR_OR_OWNER) )
echo $this->Html->link(' Copier ce matériel',
[
@@ -485,9 +477,11 @@ $panne = h($materiel->hors_service) ? ' (HORS SERVICE)' : '';
'style' => 'margin-right: 10px; margin-top: 10px; display: inline-block',
'escape' => false
]);
+ */
// BOUTON ETIQUETTE (si imprimante disponible)
- if ($IS_VALIDATED && $configuration->hasPrinter && $USER_IS_ADMIN_OR_MORE) {
+ if ($CAN_PRINT_LABEL) {
+ //if ($IS_VALIDATED && $configuration->hasPrinter && $USER_IS_ADMIN_OR_MORE) {
/*
in_array($role, [
'Administration',
@@ -707,32 +701,6 @@ if ($USER_IS_ADMIN_OR_MORE) {
nom_createur,$materiel->nom_responsable])
- * )
- * || (
- * $role == 'Responsable'
- * && (
- * (
- * isset($priviledgedUser->groupes_metier_id)
- * && $priviledgedUser->groupes_metier_id != $idGmNa
- * && $materiel->groupes_metier_id == $priviledgedUser->groupes_metier_id
- * )
- * ||
- * (
- * isset($priviledgedUser->groupe_thematique_id)
- * && $priviledgedUser->groupe_thematique_id != $idGtNa
- * && $materiel->groupes_thematique_id == $priviledgedUser->groupe_thematique_id
- * )
- * )
- * )
- * ) {
- */
echo $this->Html->link(__(''), [
'controller' => 'Suivis',
'action' => 'edit',
@@ -797,7 +765,7 @@ if ($USER_IS_ADMIN_OR_MORE) {
emprunts as $emprunt) :
+ foreach ($materiel->emprunts as $emprunt) :
$type = 'Externe';
$lieu = $emprunt['laboratoire'];
if ($emprunt['emprunt_interne'] == 1) {
@@ -812,33 +780,7 @@ foreach ($materiel->emprunts as $emprunt) :
|
nom_createur,$materiel->nom_responsable])
- * )
- * || (
- * $role == 'Responsable'
- * && (
- * (
- * isset($priviledgedUser->groupes_metier_id)
- * && $priviledgedUser->groupes_metier_id != $idGmNa
- * && $materiel->groupes_metier_id == $priviledgedUser->groupes_metier_id
- * )
- * ||
- * (
- * isset($priviledgedUser->groupe_thematique_id)
- * && $priviledgedUser->groupe_thematique_id != $idGtNa
- * && $materiel->groupes_thematique_id == $priviledgedUser->groupe_thematique_id
- * )
- * )
- * )
- * ) {
- */
+ if ($USER_IS_ADMIN_OR_MORE || $USER_IS_UTILISATEUR_AND_CREATOR_OR_OWNER || $USER_IS_RESPONSABLE_AND_SAME_GROUP || $USER_IS_RESPONSABLE_AND_CREATOR_OR_OWNER ) {
echo $this->Html->link(__(''), [
'controller' => 'Emprunts',
'action' => 'edit',
@@ -919,33 +861,6 @@ foreach ($materiel->emprunts as $emprunt) :
]);
}
if ($USER_IS_ADMIN_OR_MORE || $USER_IS_UTILISATEUR_AND_CREATOR_OR_OWNER || $USER_IS_RESPONSABLE_AND_SAME_GROUP || $USER_IS_RESPONSABLE_AND_CREATOR_OR_OWNER) {
- /*
- * if (
- * in_array($role, ['Administration','Administration Plus','Super Administrateur'])
- * ||
- * (
- * $role == 'Utilisateur'
- * && in_array($username, [$materiel->nom_createur,$materiel->nom_responsable])
- * )
- * ||
- * (
- * $role == 'Responsable'
- * && (
- * (
- * isset($priviledgedUser->groupes_metier_id)
- * && $priviledgedUser->groupes_metier_id != $idGmNa
- * && $materiel->groupes_metier_id == $priviledgedUser->groupes_metier_id
- * )
- * ||
- * (
- * isset($priviledgedUser->groupe_thematique_id)
- * && $priviledgedUser->groupe_thematique_id != $idGtNa
- * && $materiel->groupes_thematique_id == $priviledgedUser->groupe_thematique_id
- * )
- * )
- * )
- * ) {
- */
echo $this->Html->link(__(''), [
'controller' => 'Documents',
'action' => 'edit',
diff --git a/src/Template/Suivis/view.ctp b/src/Template/Suivis/view.ctp
index 19e5bec..e84da8c 100755
--- a/src/Template/Suivis/view.ctp
+++ b/src/Template/Suivis/view.ctp
@@ -58,11 +58,15 @@
else
$style = '"color: green"';
- $displayElement(__('Materiel'), $suivi->has('materiel') ? $this->Html->link($suivi->materiel->designation, [
- 'controller' => 'Materiels',
- 'action' => 'view',
- $suivi->materiel->id
- ]) : '');
+ $displayElement(__('Materiel'), $suivi->has('materiel') ?
+ $this->Html->link($suivi->materiel->designation, [
+ 'controller' => 'Materiels',
+ 'action' => 'view',
+ $suivi->materiel->id
+ ])
+ :
+ ''
+ );
$displayElement(__('Numéro interne (labo)'), $suivi->has('materiel') ? h($suivi->materiel->numero_laboratoire) : '');
$displayElement(__('Statut'), h($suivi->statut));
$displayElement(__('Prestataire'), h($suivi->organisme));
diff --git a/tests/TestCase/Controller/MaterielsControllerTest.php b/tests/TestCase/Controller/MaterielsControllerTest.php
index 99476a5..3b7526b 100755
--- a/tests/TestCase/Controller/MaterielsControllerTest.php
+++ b/tests/TestCase/Controller/MaterielsControllerTest.php
@@ -125,6 +125,23 @@ class MaterielsControllerTest extends General {
// Idem dataProviderRoles5 mais avec USER_from_ldap en plus:
public function dataProviderRoles6() { return $this->ROLES6; }
+
+ private function _checkMaterielExistsInViewsIndexAndViewAndInDatabase($role, $id, $designation=NULL, $num_inventaire=NULL) {}
+ private function _checkMaterielExistsInViewsIndexAndView($role, $id, $designation=NULL, $num_inventaire=NULL) {}
+ private function _checkMaterielExistsInViewIndex($role, $id, $designation=NULL, $num_inventaire=NULL) {}
+ private function _checkMaterielExistsInViewView($role, $id, $designation=NULL, $num_inventaire=NULL) {}
+ private function _checkMaterielExistsInDatabase($role, $id, $designation=NULL, $num_inventaire=NULL) {}
+ private function _checkMaterielViewIsOK($role, $id, $designation=NULL, $num_inventaire=NULL) {}
+ private function _checkNbMaterielInIndexViewIs(bool $COPIED, $role, $nbmat, $designation=NULL, $num_inventaire=NULL) {
+ $this->get('/materiels/index');
+ if (! $COPIED)
+ $this->assertResponseNotContains("Liste des matériels (".$nbmat.")", $role);
+ else {
+ $this->assertResponseContains("Liste des matériels (".$nbmat.")", $role);
+ if (isset($designation)) $this->assertResponseContains($designation, "Le matériel ne s'ajoute pas correctement.");
+ if (isset($num_inventaire)) $this->assertResponseContains($num_inventaire, "La génération du n°de labo n'est pas bonne.");
+ }
+ }
/*
@@ -225,7 +242,7 @@ class MaterielsControllerTest extends General {
*/
}
private function _testEasyACL(AppController $controller, $roleLong, $action, $expectedRule) {
- $rule = $controller->isAuthorizedAction($controller, $roleLong, $action);
+ $rule = $controller->isAuthorizedAction2($controller, $roleLong, $action);
$this->assertEquals($expectedRule, $rule, $roleLong.' do '.$action);
}
@@ -655,7 +672,7 @@ class MaterielsControllerTest extends General {
$this->_testMatCopy(2, TRUE, $role, 1, $modified_data, 'TEST-2016-0015');
// 3) RULE MATERIEL.COPY.3 :
- // Impossible de copier un matos de status superieur à CREATED (sauf pour SUPERADMIN)
+ // Impossible de copier un matos de statut superieur à CREATED (sauf pour SUPERADMIN)
$this->_testMatCopy(3, $role=="SUPER", $role, 3);
// 4) RULE MATERIEL.COPY.4 :
@@ -666,26 +683,8 @@ class MaterielsControllerTest extends General {
}
-
- private function _checkMaterielExistsInViewsIndexAndViewAndInDatabase($role, $id, $designation=NULL, $num_inventaire=NULL) {}
- private function _checkMaterielExistsInViewsIndexAndView($role, $id, $designation=NULL, $num_inventaire=NULL) {}
- private function _checkMaterielExistsInViewIndex($role, $id, $designation=NULL, $num_inventaire=NULL) {}
- private function _checkMaterielExistsInViewView($role, $id, $designation=NULL, $num_inventaire=NULL) {}
- private function _checkMaterielExistsInDatabase($role, $id, $designation=NULL, $num_inventaire=NULL) {}
- private function _checkMaterielViewIsOK($role, $id, $designation=NULL, $num_inventaire=NULL) {}
- private function _checkNbMaterielInIndexViewIs(bool $COPIED, $role, $nbmat, $designation=NULL, $num_inventaire=NULL) {
- $this->get('/materiels/index');
- if (! $COPIED)
- $this->assertResponseNotContains("Liste des matériels (".$nbmat.")", $role);
- else {
- $this->assertResponseContains("Liste des matériels (".$nbmat.")", $role);
- if (isset($designation)) $this->assertResponseContains($designation, "Le matériel ne s'ajoute pas correctement.");
- if (isset($num_inventaire)) $this->assertResponseContains($num_inventaire, "La génération du n°de labo n'est pas bonne.");
- }
- }
-
- // Called by testMatCopy()
- private function _testMatCopy(int $testnum, bool $COPIED, string $role, $id, array $materiel_new_data=[], $num_inventaire=NULL) {
+ // Called by testMatCopy() just above
+ private function _testMatCopy($testnum, $COPIED, $role, $id, array $materiel_new_data=[], $num_inventaire=NULL) {
//debug("_testMatCopy numéro ".$testnum);
echo("\n");
echo("_testMatCopy (with role ".$role.") numéro ".$testnum." :");
@@ -728,12 +727,13 @@ class MaterielsControllerTest extends General {
if ($COPIED) {
// On supprime le dernier materiel pour garder toujours la meme fixture de départ
//debug(TableRegistry::getTableLocator()->get('Materiels')->find()->last()->id);
- $matos_last = TableRegistry::getTableLocator()->get('Materiels')->find()->last();
- //debug($matos_last->id);
+ //$matos_last = TableRegistry::getTableLocator()->get('Materiels')->find()->last();
+ $matos_last = $this->Materiels->find()->last();
+ $this->Materiels->delete($matos_last);
+ // Ca marche aussi comme ça, mais c'est moins rapide:
+ //$this->post('/materiels/delete/'.$matos_last->id);
//$this->post('/materiels/delete/15');
- $this->post('/materiels/delete/'.$matos_last->id);
//$this->get('/materiels/view/15');
- //$this->assertResponseContains($designation, "Le matériel ne s'ajoute pas correctement.");
}
}
@@ -1269,7 +1269,7 @@ class MaterielsControllerTest extends General {
$this->post('/materiels/set-label-is-placed/11/view');
$this->get('/materiels/view/11');
- $this->assertResponseContains('Etiquette posée | Oui', "Le placement de l'étiquette sur le materiel ne se fait pas correctement.");
+ $this->assertResponseContains('Etiquette posée | Oui', "Le placement de l'étiquette sur le materiel ne se fait pas correctement.");
}
/**
@@ -1283,7 +1283,7 @@ class MaterielsControllerTest extends General {
$this->post('/materiels/set-label-is-not-placed/12/view');
$this->get('/materiels/view/12');
- $this->assertResponseContains('Etiquette posée | Non', "L'enlevement de l'étiquette sur le materiel ne se fait pas correctement.");
+ $this->assertResponseContains('Etiquette posée | Non', "L'enlevement de l'étiquette sur le materiel ne se fait pas correctement.");
}
/**
--
libgit2 0.21.2 |