Skip to content

Commit

Permalink
changes based on comments #2327
Browse files Browse the repository at this point in the history
  • Loading branch information
hmeneuvrier committed Apr 10, 2024
1 parent 9f95ec2 commit b592919
Show file tree
Hide file tree
Showing 7 changed files with 47 additions and 42 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,8 @@
<div class="fr-modal__content" v-if="formStore.alreadyExists.type==='signalement'">
<h1 id="fr-modal-title-modal-already-exists" class="fr-modal__title"><span v-if="formStore.alreadyExists.signalements?.length === 1">Ce signalement existe déjà</span><span v-else>Ces signalements existent déjà</span></h1>
<div v-if="formStore.data.profil === 'bailleur_occupant' || formStore.data.profil === 'locataire' || formStore.alreadyExists.signalements?.length === 1">
Il semblerait que vous ayez déjà déposé un signalement pour le logement situé <strong>{{ formStore.data.adresse_logement_adresse }}</strong>
pour le compte de
<span v-if="formStore.alreadyExists.signalements && formStore.alreadyExists.signalements[0]?.prenom_occupant !== null">{{ formStore.alreadyExists.signalements[0]?.prenom_occupant }}</span>
<span v-if="formStore.alreadyExists.signalements && formStore.alreadyExists.signalements[0]?.nom_occupant !== null">{{ formStore.alreadyExists.signalements[0]?.nom_occupant }}</span>.
Il semblerait que vous ayez déjà déposé un signalement pour le logement situé <strong>{{ formStore.data.adresse_logement_adresse }}</strong><div class=""></div>
<span v-if="formStore.data.profil !== 'bailleur_occupant' && formStore.data.profil !== 'locataire' && formStore.alreadyExists.signalements">{{ signalementLabel(formStore.alreadyExists.signalements[0]) }}</span>
Ce signalement est en cours de traitement.<br>
Vous pouvez le compléter depuis votre page de suivi ou créer un nouveau signalement.
<br>
Expand Down
2 changes: 1 addition & 1 deletion assets/vue/components/signalement-form/requests.ts
Original file line number Diff line number Diff line change
Expand Up @@ -120,7 +120,7 @@ export const requests = {
},

sendMailContinueFromDraft (functionReturn: Function) {
const url = formStore.props.ajaxurlSendMailContinueFromDraft.replace('uuid', formStore.alreadyExists.uuid)
const url = formStore.props.ajaxurlSendMailContinueFromDraft.replace('uuid', formStore.alreadyExists.uuidDraft)
requests.doRequestPost(url, '', functionReturn, undefined)
},

Expand Down
39 changes: 10 additions & 29 deletions src/Controller/FrontSignalementController.php
Original file line number Diff line number Diff line change
Expand Up @@ -107,29 +107,13 @@ public function checkSignalementOrDraftAlreadyExists(
);
if (0 === $errors->count()) {
$isTiersDeclarant = $signalementDraftFactory->isTiersDeclarant($signalementDraftRequest);
if ($isTiersDeclarant) {
$existingSignalements = $signalementRepository->findAllForEmailAndAddress(
$signalementDraftFactory->getEmailDeclarant($signalementDraftRequest),
$signalementDraftRequest->getAdresseLogementAdresseDetailNumero(),
$signalementDraftRequest->getAdresseLogementAdresseDetailCodePostal(),
$signalementDraftRequest->getAdresseLogementAdresseDetailCommune(),
);
} else {
$existingSignalement = $signalementRepository->findOneForEmailAndAddress(
$signalementDraftFactory->getEmailDeclarant($signalementDraftRequest),
$signalementDraftRequest->getAdresseLogementAdresseDetailNumero(),
$signalementDraftRequest->getAdresseLogementAdresseDetailCodePostal(),
$signalementDraftRequest->getAdresseLogementAdresseDetailCommune(),
);
if (
null !== $existingSignalement
&& Signalement::STATUS_CLOSED !== $existingSignalement->getStatut()
&& Signalement::STATUS_REFUSED !== $existingSignalement->getStatut()
) {
$existingSignalements = [];
$existingSignalements[] = $existingSignalement;
}
}
$existingSignalements = $signalementRepository->findAllForEmailAndAddress(
$signalementDraftFactory->getEmailDeclarant($signalementDraftRequest),
$signalementDraftRequest->getAdresseLogementAdresseDetailNumero(),
$signalementDraftRequest->getAdresseLogementAdresseDetailCodePostal(),
$signalementDraftRequest->getAdresseLogementAdresseDetailCommune(),
$isTiersDeclarant
);

$dataToHash = $signalementDraftFactory->getEmailDeclarant($signalementDraftRequest);
$dataToHash .= $signalementDraftRequest->getAdresseLogementAdresse();
Expand Down Expand Up @@ -171,7 +155,7 @@ public function checkSignalementOrDraftAlreadyExists(
return $this->json([
'already_exists' => true,
'type' => 'draft',
'uuid' => $existingSignalementDraft->getUuid(),
'uuid_draft' => $existingSignalementDraft->getUuid(),
'created_at' => $existingSignalementDraft->getCreatedAt(),
'updated_at' => $existingSignalementDraft->getUpdatedAt(),
]);
Expand Down Expand Up @@ -270,14 +254,11 @@ public function sendMailGetLienSuivi(
Signalement $signalement,
Request $request
): Response {
if (
$request->isMethod('POST')
&& $signalement // TODO : vérifier qu'on reçoit bien le bon signalement
) {
if ($request->isMethod('POST')) {
$success = $notificationMailerRegistry->send(
new NotificationMail(
type: NotificationMailerType::TYPE_SIGNALEMENT_LIEN_SUIVI,
to: $signalement->getMailUsagers(), // TODO : choisir le bon mail ?
to: $signalement->isTiersDeclarant() ? $signalement->getMailDeclarant() : $signalement->getMailOccupant(),
signalement: $signalement,
)
);
Expand Down
15 changes: 15 additions & 0 deletions src/Entity/Signalement.php
Original file line number Diff line number Diff line change
Expand Up @@ -2007,6 +2007,21 @@ public function setProfileDeclarant(?ProfileDeclarant $profileDeclarant): self
return $this;
}

public function isTiersDeclarant(): bool
{
switch ($this->getProfileDeclarant()) {
case ProfileDeclarant::SERVICE_SECOURS:
case ProfileDeclarant::BAILLEUR:
case ProfileDeclarant::TIERS_PRO:
case ProfileDeclarant::TIERS_PARTICULIER:
return true;
case ProfileDeclarant::LOCATAIRE:
case ProfileDeclarant::BAILLEUR_OCCUPANT:
default:
return false;
}
}

public function getPrenomProprio(): ?string
{
return $this->prenomProprio;
Expand Down
5 changes: 2 additions & 3 deletions src/Factory/SignalementDraftFactory.php
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ public function getEmailDeclarant(SignalementDraftRequest $signalementDraftReque
}
}

public function isTiersDeclarant(SignalementDraftRequest $signalementDraftRequest): ?bool
public function isTiersDeclarant(SignalementDraftRequest $signalementDraftRequest): bool
{
switch (strtoupper($signalementDraftRequest->getProfil())) {
case ProfileDeclarant::SERVICE_SECOURS->name:
Expand All @@ -46,9 +46,8 @@ public function isTiersDeclarant(SignalementDraftRequest $signalementDraftReques
return true;
case ProfileDeclarant::LOCATAIRE->name:
case ProfileDeclarant::BAILLEUR_OCCUPANT->name:
return false;
default:
return null;
return false;
}
}
}
21 changes: 16 additions & 5 deletions src/Repository/SignalementRepository.php
Original file line number Diff line number Diff line change
Expand Up @@ -1107,12 +1107,17 @@ public function findAllForEmailAndAddress(
string $address,
string $zipcode,
string $city,
bool $isTiersDeclarant = true
): array {
$qb = $this->createQueryBuilder('s')
->andWhere('s.mailDeclarant = :email OR s.mailOccupant = :email')->setParameter('email', $email)
->andWhere('s.adresseOccupant = :address')->setParameter('address', $address)
$qb = $this->createQueryBuilder('s');
if ($isTiersDeclarant) {
$qb->andWhere('s.mailDeclarant = :email')->setParameter('email', $email);
} else {
$qb->andWhere('s.mailOccupant = :email')->setParameter('email', $email);
}
$qb->andWhere('LOWER(s.adresseOccupant) = :address')->setParameter('address', strtolower($address))
->andWhere('s.cpOccupant = :zipcode')->setParameter('zipcode', $zipcode)
->andWhere('s.villeOccupant = :city')->setParameter('city', $city)
->andWhere('LOWER(s.villeOccupant) = :city')->setParameter('city', strtolower($city))
->andWhere('s.statut IN (:statusSignalement)')
->setParameter(
'statusSignalement',
Expand All @@ -1123,6 +1128,12 @@ public function findAllForEmailAndAddress(
]
);

return $qb->addOrderBy('s.createdAt', 'DESC')->getQuery()->getResult();
if ($isTiersDeclarant) {
$qb->addOrderBy('s.createdAt', 'DESC');
} else {
$qb->addOrderBy('s.lastSuiviAt', 'DESC');
}

return $qb->getQuery()->getResult();
}
}
1 change: 1 addition & 0 deletions templates/base.html.twig
Original file line number Diff line number Diff line change
Expand Up @@ -143,6 +143,7 @@
<script>
tinymce.init({
selector: 'textarea.editor',
browser_spellcheck: true,
plugins: 'lists',
toolbar: 'undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | outdent indent | numlist bullist | mybutton',
menubar: false,
Expand Down

0 comments on commit b592919

Please sign in to comment.