Skip to content

Commit

Permalink
Ajouter un bouton annuler dans la page de création d’une fiche détection
Browse files Browse the repository at this point in the history
  • Loading branch information
alanzirek committed Feb 27, 2025
1 parent 5f66c8d commit 4feac7c
Show file tree
Hide file tree
Showing 6 changed files with 34 additions and 11 deletions.
1 change: 1 addition & 0 deletions sv/static/sv/evenement_details.js
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ document.addEventListener('DOMContentLoaded', function() {
element.addEventListener('dsfr.disclose', event=>{
const tabId = event.target.getAttribute("id").replace("tabpanel-", "").replace("-panel", "")
showOnlyActionsForDetection(tabId)
window.history.pushState({}, '', `?detection=${tabId}`);
})
})

Expand Down
6 changes: 6 additions & 0 deletions sv/static/sv/fichedetection_form.js
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,13 @@ function hasStatusToOrganismeNuisibleData() {
}

document.addEventListener('DOMContentLoaded', function() {
document.getElementById("cancel-link").addEventListener("click", (event) => {
event.preventDefault();
window.location = document.referrer;
});

if (hasStatusToOrganismeNuisibleData()) {
setUpOrganismeNuisible();
}

});
2 changes: 1 addition & 1 deletion sv/templates/sv/evenement_detail.html
Original file line number Diff line number Diff line change
Expand Up @@ -125,7 +125,7 @@ <h1 class="fr-mb-0-5v">Événement {% if evenement.numero %}{{ evenement.numero
</li>
{% endfor %}
<li>
<a href="{% url 'fiche-detection-creation' %}?evenement={{ evenement.pk }}" class="fr-tag fr-tag--tertiary fr-mx-1w">
<a id="add-detection-link" href="{% url 'fiche-detection-creation' %}?evenement={{ evenement.pk }}" class="fr-tag fr-tag--tertiary fr-mx-1w">
<span class="fr-icon-add-line" aria-hidden="true"></span> Ajouter une détection</a>
</li>
</ul>
Expand Down
2 changes: 1 addition & 1 deletion sv/templates/sv/fichedetection_form.html
Original file line number Diff line number Diff line change
Expand Up @@ -44,10 +44,10 @@ <h1>
<input type="hidden" name="evenement" value="{{ form.instance.evenement.pk }}">
{% endif %}

<a id="cancel-link" href="#" class="fr-link fr-mr-3w">Annuler</a>
{% if is_creation %}
<input type="submit" value="Enregistrer" class="fr-btn">
{% else %}
<a href="{{ fichedetection.evenement.get_absolute_url }}" class="fr-link fr-mr-3w">Annuler</a>
<input type="submit" name="action" value="Enregistrer les modifications" data-action="enregistrer-modifications" class="fr-btn" data-testid="fiche-detection-save-btn">
{% endif %}
</p>
Expand Down
30 changes: 23 additions & 7 deletions sv/tests/test_fichedetection_form.py
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
import re

import pytest
from playwright.sync_api import Page, expect
from django.urls import reverse

from .test_utils import FicheDetectionFormDomElements, LieuFormDomElements, PrelevementFormDomElements
from ..models import (
StructurePreleveuse,
Prelevement,
)
from ..factories import EvenementFactory, FicheDetectionFactory
from ..models import StructurePreleveuse, Prelevement

from sv.constants import STRUCTURES_PRELEVEUSES

Expand Down Expand Up @@ -91,10 +91,12 @@ def test_close_button_of_add_lieu_form_modal(live_server, page: Page, form_eleme
expect(page.get_by_role("dialog")).to_be_hidden()


def test_cancel_button_of_add_lieu_form_modal(live_server, page: Page, form_elements: FicheDetectionFormDomElements):
def test_cancel_button_of_add_lieu_form_modal(
live_server, page: Page, form_elements: FicheDetectionFormDomElements, lieu_form_elements: LieuFormDomElements
):
"""Test que le bouton Annuler ferme la modal d'ajout d'un lieu"""
form_elements.add_lieu_btn.click()
page.get_by_role("link", name="Annuler").click()
lieu_form_elements.cancel_btn.click()
expect(page.get_by_role("dialog")).to_be_hidden()


Expand Down Expand Up @@ -424,7 +426,7 @@ def test_add_lieu_form_is_empty_after_close_edit_form_with_cancel_btn_without_sa
_add_new_lieu(page, form_elements, lieu_form_elements, choice_js_fill)

page.get_by_role("button", name="Modifier le lieu").click()
page.get_by_role("link", name="Annuler").click()
page.get_by_label("Modifier le lieu").get_by_role("link", name="Annuler").click()
form_elements.add_lieu_btn.click()

_check_add_lieu_form_fields_are_empty(page, lieu_form_elements)
Expand Down Expand Up @@ -652,3 +654,17 @@ def test_prelevement_resultat_card(
prelevement_form_elements.resultat_input(Prelevement.Resultat.NON_CONCLUSIF).click()
prelevement_form_elements.save_btn.click()
expect(page.locator("#prelevements-list")).to_contain_text("NON CONCLUSIF")


@pytest.mark.parametrize("action_name", ["Ajouter une détection", "Modifier"])
def test_return_to_correct_detection_after_creation_or_update(live_server, page: Page, action_name):
evenement = EvenementFactory()
_, detection_2, _ = FicheDetectionFactory.create_batch(3, evenement=evenement)

page.goto(f"{live_server.url}{evenement.get_absolute_url()}?detection={detection_2.pk}")

page.get_by_role("link", name=action_name).click()
page.get_by_role("link", name="Annuler").click()

expect(page.get_by_role("tab", name=f"{detection_2.numero}")).to_be_visible()
expect(page.get_by_role("tab", name=f"{detection_2.numero}")).to_have_class(re.compile(r"(^|\s)selected($|\s)"))
4 changes: 2 additions & 2 deletions sv/tests/test_utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -179,7 +179,7 @@ def close_btn(self) -> Locator:

@property
def cancel_btn(self) -> Locator:
return self.page.get_by_role("link", name="Annuler")
return self.page.locator('[id^="modal-add-lieu-"][open="true"]').get_by_role("link", name="Annuler")

@property
def title(self) -> Locator:
Expand Down Expand Up @@ -294,7 +294,7 @@ def close_btn(self) -> Locator:

@property
def cancel_btn(self) -> Locator:
return self.page.get_by_role("link", name="Annuler")
return self.page.locator('[id^="modal-add-edit-prelevement-"][open="true"]').get_by_role("link", name="Annuler")

@property
def save_btn(self) -> Locator:
Expand Down

0 comments on commit 4feac7c

Please sign in to comment.