diff --git a/sv/migrations/0031_remove_fichezonedelimitee_vegetaux_infestes_and_more.py b/sv/migrations/0031_remove_fichezonedelimitee_vegetaux_infestes_and_more.py
new file mode 100644
index 00000000..8b1e77f9
--- /dev/null
+++ b/sv/migrations/0031_remove_fichezonedelimitee_vegetaux_infestes_and_more.py
@@ -0,0 +1,21 @@
+# Generated by Django 5.0.8 on 2024-11-13 11:40
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+ dependencies = [
+ ("sv", "0030_alter_fichedetection_numero_and_more"),
+ ]
+
+ 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"),
+ ),
+ ]
diff --git a/sv/models.py b/sv/models.py
index 216bf6b5..a15d54af 100644
--- a/sv/models.py
+++ b/sv/models.py
@@ -488,6 +488,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()
@@ -637,7 +638,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(
diff --git a/sv/static/sv/fichedetection_form.js b/sv/static/sv/fichedetection_form.js
index 56a91196..22c476c0 100644
--- a/sv/static/sv/fichedetection_form.js
+++ b/sv/static/sv/fichedetection_form.js
@@ -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
@@ -84,6 +84,7 @@ document.addEventListener('alpine:init', () => {
contexteId: '',
datePremierSignalement: '',
commentaire: '',
+ vegetauxInfestes: '',
mesuresConservatoiresImmediates: '',
mesuresConsignation: '',
mesuresPhytosanitaires: '',
@@ -186,6 +187,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'),
@@ -428,7 +430,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,
@@ -563,6 +565,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);
diff --git a/sv/templates/sv/fichedetection_detail.html b/sv/templates/sv/fichedetection_detail.html
index 83a324af..52d2d868 100644
--- a/sv/templates/sv/fichedetection_detail.html
+++ b/sv/templates/sv/fichedetection_detail.html
@@ -107,6 +107,11 @@
Objet de l'évènement
Commentaire
{{ fichedetection.commentaire|default:"nc." }}
+
+
Végétaux inféstés
+
{{ fichedetection.vegetaux_infestes|default:"nc." }}
+
+
diff --git a/sv/templates/sv/fichedetection_form.html b/sv/templates/sv/fichedetection_form.html
index 8cc0038d..d610bbc8 100644
--- a/sv/templates/sv/fichedetection_form.html
+++ b/sv/templates/sv/fichedetection_form.html
@@ -29,6 +29,7 @@
+
@@ -138,6 +139,10 @@ Objet de l'évènement
+
+
+
+
diff --git a/sv/templates/sv/fichezonedelimitee_detail.html b/sv/templates/sv/fichezonedelimitee_detail.html
index 66a2462b..58604ea1 100644
--- a/sv/templates/sv/fichezonedelimitee_detail.html
+++ b/sv/templates/sv/fichezonedelimitee_detail.html
@@ -68,10 +68,6 @@
Détails
Caracteristiques
{{ fiche.get_caracteristiques_principales_zone_delimitee_display|default:"nc." }}
-
-
Vegetaux infestes
-
{{ fiche.vegetaux_infestes|default:"nc." }}
-
Commentaire
{{ fiche.commentaire|default:"nc." }}
diff --git a/sv/templates/sv/fichezonedelimitee_form.html b/sv/templates/sv/fichezonedelimitee_form.html
index 1d70ee6c..35f5f790 100644
--- a/sv/templates/sv/fichezonedelimitee_form.html
+++ b/sv/templates/sv/fichezonedelimitee_form.html
@@ -65,10 +65,6 @@
Détails
{{ form.caracteristiques_principales_zone_delimitee.label_tag }}
{{ form.caracteristiques_principales_zone_delimitee }}
-
-
{{ form.vegetaux_infestes.label_tag }}
- {{ form.vegetaux_infestes }}
-
{{ form.commentaire.label_tag }}
{{ form.commentaire }}
diff --git a/sv/tests/test_fichedetection_create.py b/sv/tests/test_fichedetection_create.py
index b0a6ddfe..c9451471 100644
--- a/sv/tests/test_fichedetection_create.py
+++ b/sv/tests/test_fichedetection_create.py
@@ -104,6 +104,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()
@@ -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()
@@ -171,6 +177,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"
diff --git a/sv/tests/test_fichedetection_update.py b/sv/tests/test_fichedetection_update.py
index 1408a41f..c6ff52d3 100644
--- a/sv/tests/test_fichedetection_update.py
+++ b/sv/tests/test_fichedetection_update.py
@@ -96,6 +96,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
@@ -134,6 +137,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("")
@@ -167,6 +171,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)
@@ -185,6 +190,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
diff --git a/sv/tests/test_fichezonedelimitee_create.py b/sv/tests/test_fichezonedelimitee_create.py
index 17a9bc78..852244c0 100644
--- a/sv/tests/test_fichezonedelimitee_create.py
+++ b/sv/tests/test_fichezonedelimitee_create.py
@@ -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
@@ -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
diff --git a/sv/tests/test_utils.py b/sv/tests/test_utils.py
index 2d82b45b..09d202ae 100644
--- a/sv/tests/test_utils.py
+++ b/sv/tests/test_utils.py
@@ -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")
@@ -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
@@ -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)
diff --git a/sv/views.py b/sv/views.py
index d338fe1c..c339bbbb 100644
--- a/sv/views.py
+++ b/sv/views.py
@@ -299,6 +299,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"],
@@ -463,6 +464,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")