Comment préremplir les paramètres de transitions d’un cycle de vie
Prérequis
Afin de pouvoir suivre ce guide, il faut préalablement avoir rendu obligatoire des paramètres lors de la transition d’un cycle de vie.
On souhaite préremplir le champ Validateur
de la transition Valider
d’un PLAT
avec l’utilisateur courant. Pour
cela nous allons utiliser la méthode de rendu de transition getTransitionParameters
.
Recommandations
Si vous n’êtes pas familier avec la méthode getTransitionParameters
, il est recommandé de lire la documentation
associée
disponible ici
Comment procéder ?
Modifier la classe de rendu de transition
src/vendor/Cogip/Restauratec/SmartStructures/Plat/PlatWorkflows/WfamPlatWorkflow/WfamPlatTransitionRender.php
:
<?php
namespace Cogip\Restauratec\SmartStructures\Plat\PlatWorkflows\WfamPlatWorkflow;
use Anakeen\Core\ContextManager;
use Anakeen\Ui\HtmltextRenderOptions;
use Anakeen\Ui\TransitionRender;
use SmartStructure\Fields\Plat;
use SmartStructure\Fields\Wfam_plat;
class WfamPlatTransitionRender extends TransitionRender
{
public function getRenderOptions($transitionId)
{
$renderOptions = parent::getRenderOptions($transitionId);
$renderOptions->htmltext(Wfam_plat::wplat_commentaire)->setToolbar(HtmltextRenderOptions::basicToolbar);
return $renderOptions;
}
public function getTransitionParameters($transitionId)
{
$transitionParameters = parent::getTransitionParameters($transitionId);
if ($transitionId === WfamPlatGraphConstant::transition_t_plat_e1_e2) {
foreach ($transitionParameters as $ask) {
if ($ask->getId() === Plat::plat_validateur) {
$ask->setNeeded(true);
$currentUser = ContextManager::getCurrentUser();
$currentUserValue = [
"value" => $currentUser->fid,
"displayValue" => $currentUser->getAccountName()
];
$ask->setAttributeValue($currentUserValue);
}
}
}
return $transitionParameters;
}
}
Vous pouvez maintenant déployer vos modifications :
npx @anakeen/anakeen-cli deploy -c http://localhost:8080/control -s . -u admin -p anakeen --reinstall
Et voir le résultat sur un PLAT
à l’état En test
en étant connecté avec un utilisateur de la direction :
login: pope
password: cogip