Skip to content

Commit

Permalink
adapat controller #2168
Browse files Browse the repository at this point in the history
  • Loading branch information
sfinx13 committed Feb 27, 2024
1 parent 87e734d commit 561c7ab
Show file tree
Hide file tree
Showing 16 changed files with 279 additions and 172 deletions.
29 changes: 28 additions & 1 deletion assets/controllers/back_signalement_view/form_edit_modal.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,13 @@
const elements = document.querySelectorAll('[data-ajax-form]');
const elements = document.querySelectorAll('[data-ajax-form] dialog');

elements.forEach((element) => {
element.addEventListener('dsfr.conceal', (event) => {
})

element.addEventListener('dsfr.disclose', (event) => {
})
})


function handleEditSignalementModalForm(element) {
element.addEventListener('submit', (event) => {
Expand All @@ -23,9 +32,27 @@ async function submitPayload(formElement) {
'Content-Type': 'application/json'
}
});
const data = await response.json();

if (response.ok) {
console.log(data);
location.reload()
} else {
const errors = data.errors
for (property in errors) {
let inputElement = document.querySelector(`.fr-modal--opened [name="${property}"]`);
inputElement.parentElement.classList.add('fr-input-group--error')
let pElement = document.createElement('p')
pElement.classList.add('fr-error-text')
pElement.id = `${property}-desc-error`

let messageError = ''
errors[property].errors.forEach((error) => {
messageError = messageError + error
})
pElement.innerHTML = messageError
inputElement.insertAdjacentElement('afterend', pElement)
}
}

} catch (error) {
Expand Down
283 changes: 139 additions & 144 deletions src/Controller/Back/SignalementEditController.php

Large diffs are not rendered by default.

3 changes: 2 additions & 1 deletion src/Dto/Request/Signalement/AdresseOccupantRequest.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,10 @@

namespace App\Dto\Request\Signalement;

use App\Dto\Request\RequestInterface;
use Symfony\Component\Validator\Constraints as Assert;

class AdresseOccupantRequest
class AdresseOccupantRequest implements RequestInterface
{
public function __construct(
#[Assert\NotBlank(message: 'Merci de saisir une adresse.')]
Expand Down
3 changes: 2 additions & 1 deletion src/Dto/Request/Signalement/CompositionLogementRequest.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,10 @@

namespace App\Dto\Request\Signalement;

use App\Dto\Request\RequestInterface;
use Symfony\Component\Validator\Constraints as Assert;

class CompositionLogementRequest
class CompositionLogementRequest implements RequestInterface
{
public function __construct(
#[Assert\NotBlank(message: 'Merci de définir le type de logement.')]
Expand Down
3 changes: 2 additions & 1 deletion src/Dto/Request/Signalement/CoordonneesBailleurRequest.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,12 @@

namespace App\Dto\Request\Signalement;

use App\Dto\Request\RequestInterface;
use App\Validator as AppAssert;
use Symfony\Component\Validator\Constraints as Assert;
use Symfony\Component\Validator\Constraints\Email;

class CoordonneesBailleurRequest
class CoordonneesBailleurRequest implements RequestInterface
{
public function __construct(
#[Assert\NotBlank(message: 'Merci de saisir le nom du bailleur.', groups: ['LOCATAIRE', 'BAILLEUR_OCCUPANT', 'BAILLEUR', 'TIERS_PARTICULIER', 'TIERS_PRO'])]
Expand Down
3 changes: 2 additions & 1 deletion src/Dto/Request/Signalement/CoordonneesFoyerRequest.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,12 @@

namespace App\Dto\Request\Signalement;

use App\Dto\Request\RequestInterface;
use App\Validator as AppAssert;
use Symfony\Component\Validator\Constraints as Assert;
use Symfony\Component\Validator\Constraints\Email;

class CoordonneesFoyerRequest
class CoordonneesFoyerRequest implements RequestInterface
{
public function __construct(
private readonly ?string $typeProprio = null,
Expand Down
3 changes: 2 additions & 1 deletion src/Dto/Request/Signalement/CoordonneesTiersRequest.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,12 @@

namespace App\Dto\Request\Signalement;

use App\Dto\Request\RequestInterface;
use App\Validator as AppAssert;
use Symfony\Component\Validator\Constraints as Assert;
use Symfony\Component\Validator\Constraints\Email;

class CoordonneesTiersRequest
class CoordonneesTiersRequest implements RequestInterface
{
public function __construct(
private readonly ?string $typeProprio = null,
Expand Down
3 changes: 2 additions & 1 deletion src/Dto/Request/Signalement/InformationsLogementRequest.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,10 @@

namespace App\Dto\Request\Signalement;

use App\Dto\Request\RequestInterface;
use Symfony\Component\Validator\Constraints as Assert;

class InformationsLogementRequest
class InformationsLogementRequest implements RequestInterface
{
public function __construct(
#[Assert\NotBlank(message: 'Merci de définir le nombre de personnes.')]
Expand Down
3 changes: 2 additions & 1 deletion src/Dto/Request/Signalement/ProcedureDemarchesRequest.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,10 @@

namespace App\Dto\Request\Signalement;

use App\Dto\Request\RequestInterface;
use Symfony\Component\Validator\Constraints as Assert;

class ProcedureDemarchesRequest
class ProcedureDemarchesRequest implements RequestInterface
{
public function __construct(
#[Assert\NotBlank(['message' => 'Merci d\'indiquer si le bailleur a été averti', 'groups' => ['LOCATAIRE']])]
Expand Down
3 changes: 2 additions & 1 deletion src/Dto/Request/Signalement/SituationFoyerRequest.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,10 @@

namespace App\Dto\Request\Signalement;

use App\Dto\Request\RequestInterface;
use Symfony\Component\Validator\Constraints as Assert;

class SituationFoyerRequest
class SituationFoyerRequest implements RequestInterface
{
public function __construct(
private readonly ?string $isLogementSocial = null,
Expand Down
34 changes: 34 additions & 0 deletions src/Manager/SignalementManager.php
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,7 @@ public function __construct(
private DesordrePrecisionRepository $desordrePrecisionRepository,
private DesordreCritereRepository $desordreCritereRepository,
private DesordreCompositionLogementLoader $desordreCompositionLogementLoader,
private SuiviManager $suiviManager,
string $entityName = Signalement::class
) {
parent::__construct($managerRegistry, $entityName);
Expand Down Expand Up @@ -339,6 +340,11 @@ public function updateFromAdresseOccupantRequest(
->setAdresseAutreOccupant($adresseOccupantRequest->getAutre());

$this->save($signalement);

$this->suiviManager->addSuiviIfNeeded(
signalement: $signalement,
description: 'L\'adresse du logement a été modifiée par '
);
}

public function updateFromCoordonneesTiersRequest(
Expand All @@ -361,6 +367,10 @@ public function updateFromCoordonneesTiersRequest(
->setStructureDeclarant($coordonneesTiersRequest->getStructure());

$this->save($signalement);
$this->suiviManager->addSuiviIfNeeded(
signalement: $signalement,
description: 'Les coordonnées du tiers déclarant ont été modifiées par ',
);
}

public function updateFromCoordonneesFoyerRequest(
Expand All @@ -385,6 +395,10 @@ public function updateFromCoordonneesFoyerRequest(
->setTelOccupantBis($coordonneesFoyerRequest->getTelephoneBis());

$this->save($signalement);
$this->suiviManager->addSuiviIfNeeded(
signalement: $signalement,
description: 'Les coordonnées du foyer ont été modifiées par ',
);
}

public function updateFromCoordonneesBailleurRequest(
Expand Down Expand Up @@ -422,6 +436,10 @@ public function updateFromCoordonneesBailleurRequest(
$signalement->setInformationComplementaire($informationComplementaire);

$this->save($signalement);
$this->suiviManager->addSuiviIfNeeded(
signalement: $signalement,
description: 'Les coordonnées du bailleur ont été modifiées par ',
);
}

public function updateFromInformationsLogementRequest(
Expand Down Expand Up @@ -476,6 +494,10 @@ public function updateFromInformationsLogementRequest(
$this->signalementQualificationUpdater->updateQualificationFromScore($signalement);

$this->save($signalement);
$this->suiviManager->addSuiviIfNeeded(
signalement: $signalement,
description: 'Les informations sur le logement ont été modifiées par ',
);
}

private function updateDesordresAndScoreWithSuroccupationChanges(
Expand Down Expand Up @@ -582,6 +604,10 @@ public function updateFromCompositionLogementRequest(
$this->signalementQualificationUpdater->updateQualificationFromScore($signalement);

$this->save($signalement);
$this->suiviManager->addSuiviIfNeeded(
signalement: $signalement,
description: 'La composition du logement a été modifée par ',
);
}

public function updateFromSituationFoyerRequest(
Expand Down Expand Up @@ -671,6 +697,10 @@ public function updateFromSituationFoyerRequest(
$this->updateDesordresAndScoreWithSuroccupationChanges($signalement);
$this->signalementQualificationUpdater->updateQualificationFromScore($signalement);
$this->save($signalement);
$this->suiviManager->addSuiviIfNeeded(
signalement: $signalement,
description: 'La situation du foyer a été modifiée par ',
);
}

public function updateFromProcedureDemarchesRequest(
Expand Down Expand Up @@ -707,6 +737,10 @@ public function updateFromProcedureDemarchesRequest(
}

$this->save($signalement);
$this->suiviManager->addSuiviIfNeeded(
signalement: $signalement,
description: 'Les procédures et démarches ont été modifiées par ',
);
}

public function findSignalementAffectationList(User|UserInterface|null $user, array $options): array
Expand Down
23 changes: 23 additions & 0 deletions src/Manager/SuiviManager.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,18 @@
use App\Entity\Signalement;
use App\Entity\Suivi;
use App\Entity\User;
use App\EventListener\SignalementUpdatedListener;
use App\Factory\SuiviFactory;
use Doctrine\Persistence\ManagerRegistry;
use Symfony\Bundle\SecurityBundle\Security;

class SuiviManager extends Manager
{
public function __construct(
private readonly SuiviFactory $suiviFactory,
protected ManagerRegistry $managerRegistry,
protected SignalementUpdatedListener $signalementUpdatedListener,
protected Security $security,
string $entityName = Suivi::class
) {
parent::__construct($managerRegistry, $entityName);
Expand Down Expand Up @@ -43,4 +47,23 @@ public function updateSuiviCreatedByUser(Suivi $suivi, User $user): Suivi

return $suivi;
}

public function addSuiviIfNeeded(
Signalement $signalement,
string $description,
): void {
if ($this->signalementUpdatedListener->updateOccurred()) {
/** @var User $user */
$user = $this->security->getUser();
$this->createSuivi(
user: $user,
signalement: $signalement,
params: [
'type' => Suivi::TYPE_AUTO,
'description' => $description.$user->getNomComplet(),
],
flush: true
);
}
}
}
2 changes: 2 additions & 0 deletions src/Serializer/SignalementDraftRequestNormalizer.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

namespace App\Serializer;

use App\Dto\Request\Signalement\AdresseOccupantRequest;
use App\Dto\Request\Signalement\CompositionLogementRequest;
use App\Dto\Request\Signalement\SignalementDraftRequest;
use App\Entity\Model\TypeCompositionLogement;
Expand Down Expand Up @@ -89,6 +90,7 @@ public function getSupportedTypes(?string $format): array
SignalementDraftRequest::class => true,
TypeCompositionLogement::class => true,
CompositionLogementRequest::class => true,
AdresseOccupantRequest::class => true,
];
}
}
18 changes: 18 additions & 0 deletions src/Service/FormHelper.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,9 @@

namespace App\Service;

use App\Dto\Request\RequestInterface;
use Symfony\Component\Form\FormInterface;
use Symfony\Component\Validator\Validator\ValidatorInterface;

class FormHelper
{
Expand All @@ -24,4 +26,20 @@ public static function getErrorsFromForm(FormInterface $form)

return $errors;
}

public static function getErrorsFromRequest(
ValidatorInterface $validator,
RequestInterface $request,
?array $validationGroups = []
): array {
$errors = [];
$violations = $validator->validate($request, null, $validationGroups);
if (\count($violations) > 0) {
foreach ($violations as $violation) {
$errors['errors'][$violation->getPropertyPath()]['errors'][] = $violation->getMessage();
}
}

return $errors;
}
}
36 changes: 18 additions & 18 deletions templates/back/signalement/view.html.twig
Original file line number Diff line number Diff line change
Expand Up @@ -38,36 +38,36 @@

{% include 'back/signalement/view/user-declaration.html.twig' %}

{% if createdFromDraft %}
{% include 'back/signalement/view/photos-documents.html.twig' with {
'zonetitle': "Photos et documents fournis par l'usager",
'importedBy': "user"
} %}
{% endif %}
{# {% if createdFromDraft %}#}
{# {% include 'back/signalement/view/photos-documents.html.twig' with {#}
{# 'zonetitle': "Photos et documents fournis par l'usager",#}
{# 'importedBy': "user"#}
{# } %}#}
{# {% endif %}#}

{% include 'back/signalement/view/information.html.twig' %}

{% include 'back/signalement/view/nde.html.twig' %}

{% if not createdFromDraft %}
{% include 'back/signalement/view/photos-documents.html.twig' with {
'zonetitle': "Photos et documents",
'importedBy': "all"
} %}
{% endif %}
{# {% if not createdFromDraft %}#}
{# {% include 'back/signalement/view/photos-documents.html.twig' with {#}
{# 'zonetitle': "Photos et documents",#}
{# 'importedBy': "all"#}
{# } %}#}
{# {% endif %}#}

{% include 'back/signalement/view/partners.html.twig' %}

{% include 'back/signalement/view/suivis.html.twig' %}

{% include 'back/signalement/view/visites/visites-list.html.twig' %}

{% if createdFromDraft %}
{% include 'back/signalement/view/photos-documents.html.twig' with {
'zonetitle': "Photos et documents partenaires",
'importedBy': "partner"
} %}
{% endif %}
{# {% if createdFromDraft %}#}
{# {% include 'back/signalement/view/photos-documents.html.twig' with {#}
{# 'zonetitle': "Photos et documents partenaires",#}
{# 'importedBy': "partner"#}
{# } %}#}
{# {% endif %}#}
</section>
{% endblock %}
{% block javascripts %}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -107,4 +107,4 @@
</div>
</div>
</div>
</dialog>
</dialog>

0 comments on commit 561c7ab

Please sign in to comment.