Skip to content

Commit

Permalink
Déplacement du champ vegetaux_infestes dans modèle FicheDetection
Browse files Browse the repository at this point in the history
- suppression du champ dans le modèle FicheZoneDelimitee et sa référence dans les templates et tests
- ajout du champ dans le modèle FicheDetection
- ajout dans les templates de création et modification de la fiche détection
- modification des tests e2e (create et update) de la fiche détection
  • Loading branch information
alanzirek committed Nov 14, 2024
1 parent 06e7130 commit 8e8614a
Show file tree
Hide file tree
Showing 12 changed files with 68 additions and 23 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# Generated by Django 5.0.8 on 2024-11-14 08:18

from django.db import migrations, models


class Migration(migrations.Migration):
dependencies = [
("sv", "0031_fichezonedelimitee_etat"),
]

operations = [
migrations.RemoveField(
model_name="fichezonedelimitee",
name="vegetaux_infestes",
),
migrations.AddField(
model_name="fichedetection",
name="vegetaux_infestes",
field=models.TextField(blank=True, verbose_name="Nombre ou volume de végétaux infestés"),
),
]
2 changes: 1 addition & 1 deletion sv/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -494,6 +494,7 @@ class Meta:
fin_suivi = GenericRelation(FinSuiviContact)
hors_zone_infestee = models.ForeignKey("FicheZoneDelimitee", on_delete=models.SET_NULL, null=True, blank=True)
zone_infestee = models.ForeignKey("ZoneInfestee", on_delete=models.SET_NULL, null=True, blank=True)
vegetaux_infestes = models.TextField(verbose_name="Nombre ou volume de végétaux infestés", blank=True)

objects = FicheDetectionManager()

Expand Down Expand Up @@ -641,7 +642,6 @@ class Meta:
verbose_name="Caractéristiques principales de la zone délimitée",
blank=True,
)
vegetaux_infestes = models.TextField(verbose_name="Nombre ou volume de végétaux infestés", blank=True)
commentaire = models.TextField(verbose_name="Commentaire", blank=True)
rayon_zone_tampon = models.FloatField(verbose_name="Rayon tampon réglementaire ou arbitré", null=True, blank=True)
unite_rayon_zone_tampon = models.CharField(
Expand Down
23 changes: 13 additions & 10 deletions sv/static/sv/fichedetection_form.js
Original file line number Diff line number Diff line change
Expand Up @@ -32,15 +32,15 @@ function fetchEspecesEchantillon(query) {
}
function addChoicesEspeceEchantillon(){
const choicesEspece = new Choices(document.getElementById('espece-echantillon-input'), {
removeItemButton: true,
placeholderValue: 'Recherchez...',
noResultsText: 'Aucun résultat trouvé',
noChoicesText: 'Aucun résultat trouvé',
shouldSort: false,
searchResultLimit: 50,
classNames: {containerInner: 'fr-select'},
itemSelectText: '',
});
removeItemButton: true,
placeholderValue: 'Recherchez...',
noResultsText: 'Aucun résultat trouvé',
noChoicesText: 'Aucun résultat trouvé',
shouldSort: false,
searchResultLimit: 50,
classNames: {containerInner: 'fr-select'},
itemSelectText: '',
});

choicesEspece.input.element.addEventListener('input', function (event) {
const query = choicesEspece.input.element.value
Expand Down Expand Up @@ -97,6 +97,7 @@ document.addEventListener('alpine:init', () => {
contexteId: '',
datePremierSignalement: '',
commentaire: '',
vegetauxInfestes: '',
mesuresConservatoiresImmediates: '',
mesuresConsignation: '',
mesuresPhytosanitaires: '',
Expand Down Expand Up @@ -200,6 +201,7 @@ document.addEventListener('alpine:init', () => {
contexteId: this.getValueById('contexte-id'),
datePremierSignalement: this.getValueById('date-premier-signalement'),
commentaire: this.getValueById('commentaire'),
vegetauxInfestes: this.getValueById('vegetaux-infestes'),
mesuresConservatoiresImmediates: this.getValueById('mesures-conservatoires-immediates'),
mesuresConsignation: this.getValueById('mesures-consignation'),
mesuresPhytosanitaires: this.getValueById('mesures-phytosanitaires'),
Expand Down Expand Up @@ -462,7 +464,7 @@ document.addEventListener('alpine:init', () => {

this.choicesEspeceEdit = addChoicesEspeceEchantillon()
this.choicesEspeceEdit.passedElement.element.addEventListener("choice", (event) => {
this.formPrelevement.especeEchantillonId = event.detail.choice.value
this.formPrelevement.especeEchantillonId = event.detail.choice.value
})
this.choicesEspeceEdit.setChoices([{
value: prelevementToEdit.especeEchantillonId,
Expand Down Expand Up @@ -597,6 +599,7 @@ document.addEventListener('alpine:init', () => {
formData.append('contexteId', this.ficheDetection.contexteId);
formData.append('datePremierSignalement', this.ficheDetection.datePremierSignalement);
formData.append('commentaire', this.ficheDetection.commentaire);
formData.append('vegetauxInfestes', this.ficheDetection.vegetauxInfestes);
formData.append('mesuresConservatoiresImmediates', this.ficheDetection.mesuresConservatoiresImmediates);
formData.append('mesuresConsignation', this.ficheDetection.mesuresConsignation);
formData.append('mesuresPhytosanitaires', this.ficheDetection.mesuresPhytosanitaires);
Expand Down
5 changes: 5 additions & 0 deletions sv/templates/sv/fichedetection_detail.html
Original file line number Diff line number Diff line change
Expand Up @@ -106,6 +106,11 @@ <h2>Objet de l'évènement</h2>
<p class="objet-evenement__field-label">Commentaire</p>
<p class="objet-evenement__field-value">{{ fichedetection.commentaire|default:"nc." }}</p>
</div>
<div class="objet-evenement__field">
<p class="objet-evenement__field-label">Végétaux inféstés</p>
<p class="objet-evenement__field-value">{{ fichedetection.vegetaux_infestes|default:"nc." }}</p>
</div>

</div>

<!-- Lieux -->
Expand Down
5 changes: 5 additions & 0 deletions sv/templates/sv/fichedetection_form.html
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@
<input type="hidden" id="contexte-id" value="{{ form.instance.contexte_id|default:'' }}">
<input type="hidden" id="date-premier-signalement" value="{{ form.instance.date_premier_signalement|date:'Y-m-d' }}">
<input type="hidden" id="commentaire" value="{{ form.instance.commentaire }}">
<input type="hidden" id="vegetaux-infestes" value="{{ form.instance.vegetaux_infestes }}">
<input type="hidden" id="mesures-conservatoires-immediates" value="{{ form.instance.mesures_conservatoires_immediates }}">
<input type="hidden" id="mesures-consignation" value="{{ form.instance.mesures_consignation }}">
<input type="hidden" id="mesures-phytosanitaires" value="{{ form.instance.mesures_phytosanitaires }}">
Expand Down Expand Up @@ -140,6 +141,10 @@ <h2>Objet de l'évènement</h2>
<label class="fr-label" for="commentaire-input">Commentaire</label>
<textarea x-model="ficheDetection.commentaire" id="commentaire-input" class="fr-input" maxlength="500"></textarea>
</p>
<p>
<label class="fr-label" for="vegetaux-infestes-input">Végétaux inféstés</label>
<textarea x-model="ficheDetection.vegetauxInfestes" id="vegetaux-infestes-input" class="fr-input" maxlength="500"></textarea>
</p>
</div>

<div id="lieux">
Expand Down
4 changes: 0 additions & 4 deletions sv/templates/sv/fichezonedelimitee_detail.html
Original file line number Diff line number Diff line change
Expand Up @@ -71,10 +71,6 @@ <h2>Détails</h2>
<div class="fichezonedelimitee__field fr-mb-1w">Caracteristiques</div>
<div>{{ fiche.get_caracteristiques_principales_zone_delimitee_display|default:"nc." }}</div>
</div>
<div class="fr-mt-4w">
<div class="fichezonedelimitee__field fr-mb-1w">Vegetaux infestes</div>
<div>{{ fiche.vegetaux_infestes|default:"nc." }}</div>
</div>
<div class="fr-mt-4w">
<div class="fichezonedelimitee__field fr-mb-1w">Commentaire</div>
<div>{{ fiche.commentaire|default:"nc." }}</div>
Expand Down
4 changes: 0 additions & 4 deletions sv/templates/sv/fichezonedelimitee_form.html
Original file line number Diff line number Diff line change
Expand Up @@ -65,10 +65,6 @@ <h2>Détails</h2>
<div class="fr-mb-1w">{{ form.caracteristiques_principales_zone_delimitee.label_tag }}</div>
{{ form.caracteristiques_principales_zone_delimitee }}
</div>
<div class="fr-mt-4w">
<div class="fr-mb-1w">{{ form.vegetaux_infestes.label_tag }}</div>
{{ form.vegetaux_infestes }}
</div>
<div class="fr-mt-4w">
<div class="fr-mb-1w">{{ form.commentaire.label_tag }}</div>
{{ form.commentaire }}
Expand Down
7 changes: 7 additions & 0 deletions sv/tests/test_fichedetection_create.py
Original file line number Diff line number Diff line change
Expand Up @@ -106,6 +106,10 @@ def test_new_fiche_detection_form_content(live_server, page: Page, form_elements
expect(form_elements.commentaire_input).to_be_visible()
expect(form_elements.commentaire_input).to_be_empty()

expect(form_elements.vegetaux_infestes_label).to_be_visible()
expect(form_elements.vegetaux_infestes_input).to_be_visible()
expect(form_elements.vegetaux_infestes_input).to_be_empty()

expect(form_elements.mesures_conservatoires_immediates_label).to_be_visible()
expect(form_elements.mesures_conservatoires_immediates_input).to_be_visible()
expect(form_elements.mesures_conservatoires_immediates_input).to_be_empty()
Expand Down Expand Up @@ -149,6 +153,8 @@ def test_fiche_detection_create_without_lieux_and_prelevement(
page.get_by_label("Date 1er signalement").fill("2024-04-21")
page.get_by_label("Commentaire").click()
page.get_by_label("Commentaire").fill("test commentaire")
page.get_by_label("Végétaux inféstés").click()
page.get_by_label("Végétaux inféstés").fill("3 citronniers")
page.get_by_label("Mesures conservatoires immé").click()
page.get_by_label("Mesures conservatoires immé").fill("test mesures conservatoires")
page.get_by_label("Mesures de consignation").click()
Expand All @@ -169,6 +175,7 @@ def test_fiche_detection_create_without_lieux_and_prelevement(
assert fiche_detection.contexte.id == contexte.id
assert fiche_detection.date_premier_signalement.strftime("%Y-%m-%d") == "2024-04-21"
assert fiche_detection.commentaire == "test commentaire"
assert fiche_detection.vegetaux_infestes == "3 citronniers"
assert fiche_detection.mesures_conservatoires_immediates == "test mesures conservatoires"
assert fiche_detection.mesures_consignation == "test mesures consignation"
assert fiche_detection.mesures_phytosanitaires == "test mesures phyto"
Expand Down
6 changes: 6 additions & 0 deletions sv/tests/test_fichedetection_update.py
Original file line number Diff line number Diff line change
Expand Up @@ -97,6 +97,9 @@ def test_fiche_detection_update_page_content(
# Commentaire
expect(form_elements.commentaire_input).to_have_value(fiche_detection.commentaire)

# Végétaux inféstés
expect(form_elements.vegetaux_infestes_input).to_have_value(fiche_detection.vegetaux_infestes)

# Mesures conservatoires immédiates
expect(form_elements.mesures_conservatoires_immediates_input).to_have_value(
fiche_detection.mesures_conservatoires_immediates
Expand Down Expand Up @@ -135,6 +138,7 @@ def test_fiche_detection_update_page_content_with_no_data(
expect(form_elements.contexte_input).to_have_value("")
expect(form_elements.date_1er_signalement_input).to_have_value("")
expect(form_elements.commentaire_input).to_have_value("")
expect(form_elements.vegetaux_infestes_input).to_have_value("")
expect(form_elements.mesures_conservatoires_immediates_input).to_have_value("")
expect(form_elements.mesures_consignation_input).to_have_value("")
expect(form_elements.mesures_phytosanitaires_input).to_have_value("")
Expand Down Expand Up @@ -166,6 +170,7 @@ def test_fiche_detection_update_without_lieux_and_prelevement(
form_elements.contexte_input.select_option(str(new_fiche_detection.contexte.id))
form_elements.date_1er_signalement_input.fill(new_fiche_detection.date_premier_signalement.strftime("%Y-%m-%d"))
form_elements.commentaire_input.fill(new_fiche_detection.commentaire)
form_elements.vegetaux_infestes_input.fill(new_fiche_detection.vegetaux_infestes)
form_elements.mesures_conservatoires_immediates_input.fill(new_fiche_detection.mesures_conservatoires_immediates)
form_elements.mesures_consignation_input.fill(new_fiche_detection.mesures_consignation)
form_elements.mesures_phytosanitaires_input.fill(new_fiche_detection.mesures_phytosanitaires)
Expand All @@ -182,6 +187,7 @@ def test_fiche_detection_update_without_lieux_and_prelevement(
assert fiche_detection_updated.statut_reglementaire == new_fiche_detection.statut_reglementaire
assert fiche_detection_updated.contexte == new_fiche_detection.contexte
assert fiche_detection_updated.commentaire == new_fiche_detection.commentaire
assert fiche_detection_updated.vegetaux_infestes == new_fiche_detection.vegetaux_infestes
assert (
fiche_detection_updated.mesures_conservatoires_immediates
== new_fiche_detection.mesures_conservatoires_immediates
Expand Down
2 changes: 0 additions & 2 deletions sv/tests/test_fichezonedelimitee_create.py
Original file line number Diff line number Diff line change
Expand Up @@ -126,7 +126,6 @@ def test_can_create_fiche_zone_delimitee_without_zone_infestee(
assert (
fiche_from_db.caracteristiques_principales_zone_delimitee == fiche.caracteristiques_principales_zone_delimitee
)
assert fiche_from_db.vegetaux_infestes == fiche.vegetaux_infestes
assert fiche_from_db.commentaire == fiche.commentaire
assert fiche_from_db.rayon_zone_tampon == fiche.rayon_zone_tampon
assert fiche_from_db.unite_rayon_zone_tampon == fiche.unite_rayon_zone_tampon
Expand Down Expand Up @@ -192,7 +191,6 @@ def test_can_create_fiche_zone_delimitee_with_2_zones_infestees(
assert (
fiche_from_db.caracteristiques_principales_zone_delimitee == fiche.caracteristiques_principales_zone_delimitee
)
assert fiche_from_db.vegetaux_infestes == fiche.vegetaux_infestes
assert fiche_from_db.commentaire == fiche.commentaire
assert fiche_from_db.rayon_zone_tampon == fiche.rayon_zone_tampon
assert fiche_from_db.unite_rayon_zone_tampon == fiche.unite_rayon_zone_tampon
Expand Down
10 changes: 8 additions & 2 deletions sv/tests/test_utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -130,6 +130,14 @@ def commentaire_label(self) -> Locator:
def commentaire_input(self) -> Locator:
return self.page.get_by_label("Commentaire")

@property
def vegetaux_infestes_label(self) -> Locator:
return self.page.get_by_text("Végétaux inféstés")

@property
def vegetaux_infestes_input(self) -> Locator:
return self.page.get_by_label("Végétaux inféstés")

@property
def mesures_conservatoires_immediates_label(self) -> Locator:
return self.page.get_by_text("Mesures conservatoires immédiates")
Expand Down Expand Up @@ -473,7 +481,6 @@ def __init__(self, page: Page, choice_js_fill):

# Détails
self.caracteristiques = page.get_by_label("Caractéristiques")
self.vegetaux_infestes = page.get_by_label("Nombre ou volume de végétaux infestés")
self.commentaire = page.get_by_label("Commentaire")

# Zone tampon
Expand Down Expand Up @@ -658,7 +665,6 @@ def fill_form(
):
detections_zone_infestee = detections_zone_infestee or ()
self.caracteristiques.select_option(fiche_zone_delimitee.caracteristiques_principales_zone_delimitee)
self.vegetaux_infestes.fill(fiche_zone_delimitee.vegetaux_infestes)
self.commentaire.fill(fiche_zone_delimitee.commentaire)
self.rayon_zone_tampon.fill(str(fiche_zone_delimitee.rayon_zone_tampon))
self._select_unite_rayon_zone_tampon(fiche_zone_delimitee.unite_rayon_zone_tampon)
Expand Down
2 changes: 2 additions & 0 deletions sv/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -340,6 +340,7 @@ def create_fiche_detection(self, data, user_structure):
contexte_id=data["contexteId"],
date_premier_signalement=date_premier_signalement,
commentaire=data["commentaire"],
vegetaux_infestes=data["vegetauxInfestes"],
mesures_conservatoires_immediates=data["mesuresConservatoiresImmediates"],
mesures_consignation=data["mesuresConsignation"],
mesures_phytosanitaires=data["mesuresPhytosanitaires"],
Expand Down Expand Up @@ -502,6 +503,7 @@ def update_fiche_detection(self, data, fiche_detection):
fiche_detection.contexte_id = data.get("contexteId")
fiche_detection.date_premier_signalement = date_premier_signalement
fiche_detection.commentaire = data.get("commentaire")
fiche_detection.vegetaux_infestes = data.get("vegetauxInfestes")
fiche_detection.mesures_conservatoires_immediates = data.get("mesuresConservatoiresImmediates")
fiche_detection.mesures_consignation = data.get("mesuresConsignation")
fiche_detection.mesures_phytosanitaires = data.get("mesuresPhytosanitaires")
Expand Down

0 comments on commit 8e8614a

Please sign in to comment.