mirror of
https://gitlab.com/Chill-Projet/chill-bundles.git
synced 2025-06-07 18:44:08 +00:00
Merge branch 'signature-app/OP768-alter-sending-after-signature' into 'signature-app-master'
When a user applies a signature in a workflow, the signer is the futureDestUser of the next step See merge request Chill-Projet/chill-bundles!749
This commit is contained in:
commit
7df5a22b14
@ -42,7 +42,7 @@
|
||||
<div class="item-col" style="width: inherit;">
|
||||
<div>
|
||||
{%- if step.transitionBy is not null -%}
|
||||
{{ step.transitionBy|chill_entity_render_box({'at_date': step.transitionAt}) }}
|
||||
<span class="badge-user">{{ step.transitionBy|chill_entity_render_box({'at_date': step.transitionAt}) }}</span>
|
||||
{% else %}
|
||||
<span class="chill-no-data-statement">{{ 'workflow.Automated transition'|trans }}</span>
|
||||
{%- endif -%}
|
||||
@ -105,7 +105,7 @@
|
||||
<p><b>{{ 'workflow.Users put in Cc'|trans }} : </b></p>
|
||||
<ul>
|
||||
{% for u in step.ccUser %}
|
||||
<li>{{ u|chill_entity_render_box({'at_date': step.previous.transitionAt}) }}</li>
|
||||
<li><span class="badge-user">{{ u|chill_entity_render_box({'at_date': step.previous.transitionAt}) }}</span></li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
{% endif %}
|
||||
@ -123,7 +123,7 @@
|
||||
<p><b>{{ 'workflow.Those users are also granted to apply a transition by using an access key'|trans }} :</b></p>
|
||||
<ul>
|
||||
{% for u in step.destUserByAccessKey %}
|
||||
<li>{{ u|chill_entity_render_box({'at_date': step.previous.transitionAt}) }}</li>
|
||||
<li><span class="badge-user">{{ u|chill_entity_render_box({'at_date': step.previous.transitionAt}) }}</span></li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
{% endif %}
|
||||
|
@ -9,11 +9,13 @@
|
||||
<span class="item-key">{{ 'Le'|trans ~ ' : ' }}</span>
|
||||
<b>{{ step.previous.transitionAt|format_datetime('short', 'short') }}</b>
|
||||
</li>
|
||||
{% if step.destUser|length > 0 %}
|
||||
{% if step.destUser|length > 0 or step.destUserGroups|length > 0 %}
|
||||
<li>
|
||||
<span class="item-key">{{ 'workflow.For'|trans ~ ' : ' }}</span>
|
||||
<b>
|
||||
{% for d in step.destUser %}{{ d|chill_entity_render_string({'at_date': step.previous.transitionAt}) }}{% if not loop.last %}, {% endif %}{% endfor %}
|
||||
{% for d in step.destUser %}<span class="badge-user">{{ d|chill_entity_render_string({'at_date': step.previous.transitionAt}) }}</span>{% if not loop.last %}, {% endif -%}{% endfor -%}
|
||||
{%- if step.destUser|length > 0 and step.destUserGroups|length > 0 %}, {% endif -%}
|
||||
{%- for d in step.destUserGroups %}{{ d|chill_entity_render_box }}{% if not loop.last %}, {% endif %}{% endfor -%}
|
||||
</b>
|
||||
</li>
|
||||
{% endif %}
|
||||
|
@ -37,7 +37,7 @@ use Symfony\Component\Workflow\WorkflowInterface;
|
||||
*/
|
||||
class SignatureStepStateChangerTest extends TestCase
|
||||
{
|
||||
public function testMarkSignatureAsSignedScenarioWhichExpectsTransition()
|
||||
public function testMarkSignatureAsSignedScenarioWhichExpectsTransitionSignatureWithPerson()
|
||||
{
|
||||
$entityWorkflow = new EntityWorkflow();
|
||||
$entityWorkflow->setWorkflowName('dummy');
|
||||
@ -84,6 +84,40 @@ class SignatureStepStateChangerTest extends TestCase
|
||||
self::assertNotNull($signatures[1]->getStateDate());
|
||||
}
|
||||
|
||||
public function testMarkSignatureAsSignedScenarioWhichExpectsTransitionSignatureWithUser()
|
||||
{
|
||||
$entityWorkflow = new EntityWorkflow();
|
||||
$entityWorkflow->setWorkflowName('dummy');
|
||||
$registry = $this->buildRegistry();
|
||||
$workflow = $registry->get($entityWorkflow, 'dummy');
|
||||
$clock = new MockClock();
|
||||
$user = new User();
|
||||
|
||||
$messengerBus = new MessageBus([]);
|
||||
$changer = new SignatureStepStateChanger($registry, $clock, new NullLogger(), $messengerBus);
|
||||
|
||||
// move it to signature
|
||||
$dto = new WorkflowTransitionContextDTO($entityWorkflow);
|
||||
$dto->futureUserSignature = $signer = new User();
|
||||
$workflow->apply($entityWorkflow, 'to_signature', ['context' => $dto, 'transitionAt' => $clock->now(),
|
||||
'byUser' => $user, 'transition' => 'to_signature']);
|
||||
|
||||
// get the signature created
|
||||
$signatures = $entityWorkflow->getCurrentStep()->getSignatures();
|
||||
|
||||
// we mark the first signature as signed
|
||||
$changer->markSignatureAsSigned($signatures[0], 1);
|
||||
// the next step should be done by handling an async message
|
||||
$changer->onPostMark($signatures[0]);
|
||||
|
||||
self::assertEquals(EntityWorkflowSignatureStateEnum::SIGNED, $signatures[0]->getState());
|
||||
self::assertEquals('post-signature', $entityWorkflow->getStep(), 'the entity workflow step should be post-signature');
|
||||
self::assertContains($signer, $entityWorkflow->getCurrentStep()->getAllDestUser());
|
||||
self::assertCount(1, $entityWorkflow->getCurrentStep()->getAllDestUser());
|
||||
self::assertEquals(1, $signatures[0]->getZoneSignatureIndex());
|
||||
self::assertNotNull($signatures[0]->getStateDate());
|
||||
}
|
||||
|
||||
public function testMarkSignatureAsSignedScenarioWithoutRequiredMetadata()
|
||||
{
|
||||
$entityWorkflow = new EntityWorkflow();
|
||||
|
@ -97,16 +97,20 @@ class SignatureStepStateChanger
|
||||
return;
|
||||
}
|
||||
|
||||
$previousUser = $this->getPreviousSender($signature->getStep());
|
||||
if ('person' === $signature->getSignerKind()) {
|
||||
$futureUser = $this->getPreviousSender($signature->getStep());
|
||||
} else {
|
||||
$futureUser = $signature->getSigner();
|
||||
}
|
||||
|
||||
if (null === $previousUser) {
|
||||
if (null === $futureUser) {
|
||||
$this->logger->info(self::LOG_PREFIX.'No previous user, will not apply a transition', ['signatureId' => $signature->getId()]);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
$transitionDto = new WorkflowTransitionContextDTO($entityWorkflow);
|
||||
$transitionDto->futureDestUsers[] = $previousUser;
|
||||
$transitionDto->futureDestUsers[] = $futureUser;
|
||||
|
||||
$workflow->apply($entityWorkflow, $transition, [
|
||||
'context' => $transitionDto,
|
||||
|
Loading…
x
Reference in New Issue
Block a user