Skip to content

Commit

Permalink
Renomer le type d'exploitant pour le lieu
Browse files Browse the repository at this point in the history
Le type d'exploitant ne correspond pas à la réalité des choses, on veut
en réalité connaitre le site de l'inspection.
On réutilise le modèle qui était précédement utilisé pour les
prélèvements.

Au passage je corrige un test qui assert que les attributs d'un objet
sont bien égals a eux même.
  • Loading branch information
Anto59290 committed Nov 14, 2024
1 parent 8c431ad commit 4917594
Show file tree
Hide file tree
Showing 9 changed files with 85 additions and 73 deletions.
2 changes: 0 additions & 2 deletions sv/admin.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@
Region,
Lieu,
StatutEtablissement,
TypeExploitant,
PositionChaineDistribution,
StructurePreleveur,
SiteInspection,
Expand All @@ -33,7 +32,6 @@
admin.site.register(Region)
admin.site.register(Lieu)
admin.site.register(StatutEtablissement)
admin.site.register(TypeExploitant)
admin.site.register(PositionChaineDistribution)
admin.site.register(StructurePreleveur)
admin.site.register(SiteInspection)
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
# Generated by Django 5.0.8 on 2024-11-14 14:45

import django.db.models.deletion
from django.db import migrations, models


class Migration(migrations.Migration):
dependencies = [
("sv", "0033_fix_typos_types_exploitant"),
]

operations = [
migrations.RemoveField(
model_name="lieu",
name="type_exploitant_etablissement",
),
migrations.AddField(
model_name="lieu",
name="site_inspection",
field=models.ForeignKey(
blank=True,
null=True,
on_delete=django.db.models.deletion.PROTECT,
to="sv.siteinspection",
verbose_name="Site d'inspection",
),
),
migrations.DeleteModel(
name="TypeExploitant",
),
]
18 changes: 3 additions & 15 deletions sv/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -170,10 +170,10 @@ class Meta:
)
adresse_etablissement = models.CharField(max_length=100, verbose_name="Adresse établissement", blank=True)
siret_etablissement = models.CharField(max_length=100, verbose_name="SIRET établissement", blank=True)
type_exploitant_etablissement = models.ForeignKey(
"TypeExploitant",
site_inspection = models.ForeignKey(
"SiteInspection",
on_delete=models.PROTECT,
verbose_name="Type d'exploitant établissement",
verbose_name="Site d'inspection",
blank=True,
null=True,
)
Expand Down Expand Up @@ -202,18 +202,6 @@ def __str__(self):
return self.libelle


class TypeExploitant(models.Model):
class Meta:
verbose_name = "Type d'exploitant"
verbose_name_plural = "Types d'exploitant"
db_table = "sv_type_exploitant"

libelle = models.CharField(max_length=100, verbose_name="Libellé")

def __str__(self):
return self.libelle


class PositionChaineDistribution(models.Model):
class Meta:
verbose_name = "Position dans la chaîne de distribution"
Expand Down
10 changes: 5 additions & 5 deletions sv/static/sv/fichedetection_form.js
Original file line number Diff line number Diff line change
Expand Up @@ -144,7 +144,7 @@ document.addEventListener('alpine:init', () => {
adresseEtablissement: '',
siretEtablissement: '',
codeInppEtablissement: '',
typeEtablissementId: '',
siteInspectionId: '',
positionEtablissementId: '',
},

Expand Down Expand Up @@ -232,7 +232,7 @@ document.addEventListener('alpine:init', () => {
adresseEtablissement: lieu.adresse_etablissement,
siretEtablissement: lieu.siret_etablissement,
codeInppEtablissement: lieu.code_inpp_etablissement,
typeEtablissementId: lieu.type_exploitant_etablissement_id,
siteInspectionId: lieu.site_inspection_id,
positionEtablissementId: lieu.position_chaine_distribution_etablissement_id,
};
});
Expand Down Expand Up @@ -309,7 +309,7 @@ document.addEventListener('alpine:init', () => {
})
if (!!this.ficheDetection.freeLinksIds) {
this.ficheDetection.freeLinksIds.forEach(value => {
freeLinksChoices.setChoiceByValue(value);
freeLinksChoices.setChoiceByValue(value);
});
}

Expand Down Expand Up @@ -393,7 +393,7 @@ document.addEventListener('alpine:init', () => {
adresseEtablissement: '',
siretEtablissement: '',
codeInppEtablissement: '',
typeEtablissementId: '',
siteInspectionId: '',
positionEtablissementId: '',

};
Expand Down Expand Up @@ -608,7 +608,7 @@ document.addEventListener('alpine:init', () => {
formData.append('prelevements', JSON.stringify(this.prelevements));
formData.append('action', action);
for (var i = 0; i < this.ficheDetection.freeLinksIds.length; i++) {
formData.append('freeLinksIds', this.ficheDetection.freeLinksIds[i]);
formData.append('freeLinksIds', this.ficheDetection.freeLinksIds[i]);
}

const csrfToken = document.querySelector('input[name="csrfmiddlewaretoken"]').value;
Expand Down
19 changes: 10 additions & 9 deletions sv/templates/sv/_fichedetection_form__lieux_form.html
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,16 @@
<input x-model="lieuForm.codeINSEE" type="hidden" id="code-insee">
<input x-model="lieuForm.departementNom" type="hidden" id="departement">

<p>
<label class="fr-label" for="site-inspection">Site d'inspection</label>
<select x-model="lieuForm.siteInspectionId" class="fr-select" data-testid="lieu-form-type-etablissement" id="site-inspection">
<option value="">----</option>
{% for site_inspection in sites_inspections %}
<option value="{{ site_inspection.id }}">{{ site_inspection.libelle }}</option>
{% endfor %}
</select>
</p>

<p>
<label class="fr-label" for="coordonnees-gps-lambert-93-latitude">Coordonnées GPS (Lambert 93)</label>
<input x-model="lieuForm.coordGPSLambert93Latitude" style="flex: 0.55; margin-right: 0.5rem;" type="number" step="1" min="6000000" max="7200000" id="coordonnees-gps-lambert-93-latitude" class="fr-input" placeholder="Latitude">
Expand Down Expand Up @@ -83,15 +93,6 @@
<label class="fr-label" for="code-inpp-etablissement">Code INPP</label>
<input x-model="lieuForm.codeInppEtablissement" type="text" class="fr-input" id="code-inpp-etablissement">
</p>
<p>
<label class="fr-label" for="type-etablissement">Type</label>
<select x-model="lieuForm.typeEtablissementId" class="fr-select" data-testid="lieu-form-type-etablissement" id="type-etablissement">
<option value="">----</option>
{% for type_etablissement in types_etablissement %}
<option value="{{ type_etablissement.id }}">{{ type_etablissement.libelle }}</option>
{% endfor %}
</select>
</p>
<p>
<label class="fr-label" for="position-etablissement">Position</label>
<select x-model="lieuForm.positionEtablissementId" class="fr-select" data-testid="lieu-form-position-etablissement" id="position-etablissement">
Expand Down
50 changes: 25 additions & 25 deletions sv/tests/test_fichedetection_create.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,10 +15,10 @@
OrganismeNuisible,
Lieu,
Departement,
TypeExploitant,
PositionChaineDistribution,
Region,
StructurePreleveur,
SiteInspection,
)

from sv.constants import REGIONS, DEPARTEMENTS
Expand Down Expand Up @@ -228,7 +228,7 @@ def test_create_fiche_detection_with_lieu(
fill_commune,
):
dept = baker.make(Departement)
type_exploitant = baker.make(TypeExploitant)
site_inspection = baker.make(SiteInspection)
position = baker.make(PositionChaineDistribution)
lieu = baker.prepare(
Lieu,
Expand All @@ -240,7 +240,7 @@ def test_create_fiche_detection_with_lieu(
siret_etablissement="12345678901234",
departement=dept,
is_etablissement=True,
type_exploitant_etablissement=type_exploitant,
site_inspection=site_inspection,
position_chaine_distribution_etablissement=position,
_fill_optional=True,
)
Expand All @@ -258,14 +258,14 @@ def test_create_fiche_detection_with_lieu(
lieu_form_elements.coord_gps_wgs84_latitude_input.fill(str(lieu.wgs84_latitude))
lieu_form_elements.coord_gps_wgs84_longitude_input.fill(str(lieu.wgs84_longitude))
lieu_form_elements.is_etablissement_checkbox.click()
lieu_form_elements.nom_etablissement_input.fill(lieu.nom)
lieu_form_elements.nom_etablissement_input.fill(lieu.nom_etablissement)
lieu_form_elements.activite_etablissement_input.fill(lieu.activite_etablissement)
lieu_form_elements.pays_etablissement_input.fill(lieu.pays_etablissement)
lieu_form_elements.raison_sociale_etablissement_input.fill(lieu.raison_sociale_etablissement)
lieu_form_elements.adresse_etablissement_input.fill(lieu.adresse_etablissement)
lieu_form_elements.siret_etablissement_input.fill(lieu.siret_etablissement)
lieu_form_elements.code_inpp_etablissement_input.fill(lieu.code_inpp_etablissement)
lieu_form_elements.type_etablissement_input.select_option(str(lieu.type_exploitant_etablissement.id))
lieu_form_elements.lieu_site_inspection_input.select_option(str(lieu.site_inspection.id))
lieu_form_elements.position_etablissement_input.select_option(
str(lieu.position_chaine_distribution_etablissement.id)
)
Expand All @@ -276,26 +276,26 @@ def test_create_fiche_detection_with_lieu(
page.wait_for_timeout(1000)

fiche_detection = FicheDetection.objects.get()
lieu = fiche_detection.lieux.get()
assert lieu.nom == lieu.nom
assert lieu.wgs84_latitude == lieu.wgs84_latitude
assert lieu.wgs84_longitude == lieu.wgs84_longitude
assert lieu.lambert93_latitude == lieu.lambert93_latitude
assert lieu.lambert93_longitude == lieu.lambert93_longitude
assert lieu.adresse_lieu_dit == lieu.adresse_lieu_dit
assert lieu.commune == "Lille"
assert lieu.code_insee == "59350"
assert lieu.departement == Departement.objects.get(nom="Nord")
assert lieu.is_etablissement == lieu.is_etablissement
assert lieu.nom_etablissement == lieu.nom_etablissement
assert lieu.activite_etablissement == lieu.activite_etablissement
assert lieu.pays_etablissement == lieu.pays_etablissement
assert lieu.raison_sociale_etablissement == lieu.raison_sociale_etablissement
assert lieu.adresse_etablissement == lieu.adresse_etablissement
assert lieu.siret_etablissement == lieu.siret_etablissement
assert lieu.code_inpp_etablissement == lieu.code_inpp_etablissement
assert lieu.type_exploitant_etablissement == lieu.type_exploitant_etablissement
assert lieu.position_chaine_distribution_etablissement == lieu.position_chaine_distribution_etablissement
lieu_from_db = fiche_detection.lieux.get()
assert lieu_from_db.nom == lieu.nom
assert lieu_from_db.wgs84_latitude == lieu.wgs84_latitude
assert lieu_from_db.wgs84_longitude == lieu.wgs84_longitude
assert lieu_from_db.lambert93_latitude == lieu.lambert93_latitude
assert lieu_from_db.lambert93_longitude == lieu.lambert93_longitude
assert lieu_from_db.adresse_lieu_dit == lieu.adresse_lieu_dit
assert lieu_from_db.commune == "Lille"
assert lieu_from_db.code_insee == "59350"
assert lieu_from_db.departement == Departement.objects.get(nom="Nord")
assert lieu_from_db.is_etablissement == lieu.is_etablissement
assert lieu_from_db.nom_etablissement == lieu.nom_etablissement
assert lieu_from_db.activite_etablissement == lieu.activite_etablissement
assert lieu_from_db.pays_etablissement == lieu.pays_etablissement
assert lieu_from_db.raison_sociale_etablissement == lieu.raison_sociale_etablissement
assert lieu_from_db.adresse_etablissement == lieu.adresse_etablissement
assert lieu_from_db.siret_etablissement == lieu.siret_etablissement
assert lieu_from_db.code_inpp_etablissement == lieu.code_inpp_etablissement
assert lieu_from_db.site_inspection == lieu.site_inspection
assert lieu_from_db.position_chaine_distribution_etablissement == lieu.position_chaine_distribution_etablissement


def test_structure_contact_is_add_to_contacts_list_when_fiche_detection_is_created(
Expand Down
10 changes: 5 additions & 5 deletions sv/tests/test_fichedetection_update.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,13 +11,13 @@
Lieu,
Prelevement,
Departement,
TypeExploitant,
PositionChaineDistribution,
OrganismeNuisible,
LaboratoireAgree,
LaboratoireConfirmationOfficielle,
StructurePreleveur,
Etat,
SiteInspection,
)
from ..models import (
Region,
Expand Down Expand Up @@ -354,7 +354,7 @@ def test_update_lieu(
"""Test que les modifications des descripteurs d'un lieu existant sont bien enregistrées en base de données."""

dept = baker.make(Departement)
type_exploitant = baker.make(TypeExploitant)
site_inspection = baker.make(SiteInspection)
position = baker.make(PositionChaineDistribution)
new_lieu = baker.prepare(
Lieu,
Expand All @@ -366,7 +366,7 @@ def test_update_lieu(
siret_etablissement="12345678901234",
departement=dept,
is_etablissement=True,
type_exploitant_etablissement=type_exploitant,
site_inspection=site_inspection,
position_chaine_distribution_etablissement=position,
_fill_optional=True,
_save_related=True,
Expand All @@ -388,7 +388,7 @@ def test_update_lieu(
lieu_form_elements.raison_sociale_etablissement_input.fill(new_lieu.raison_sociale_etablissement)
lieu_form_elements.adresse_etablissement_input.fill(new_lieu.adresse_etablissement)
lieu_form_elements.siret_etablissement_input.fill(new_lieu.siret_etablissement)
lieu_form_elements.type_etablissement_input.select_option(str(new_lieu.type_exploitant_etablissement.id))
lieu_form_elements.lieu_site_inspection_input.select_option(str(new_lieu.site_inspection.id))
lieu_form_elements.position_etablissement_input.select_option(
str(new_lieu.position_chaine_distribution_etablissement.id)
)
Expand All @@ -414,7 +414,7 @@ def test_update_lieu(
assert lieu_from_db.raison_sociale_etablissement == new_lieu.raison_sociale_etablissement
assert lieu_from_db.adresse_etablissement == new_lieu.adresse_etablissement
assert lieu_from_db.siret_etablissement == new_lieu.siret_etablissement
assert lieu_from_db.type_exploitant_etablissement == new_lieu.type_exploitant_etablissement
assert lieu_from_db.site_inspection == new_lieu.site_inspection
assert (
lieu_from_db.position_chaine_distribution_etablissement == new_lieu.position_chaine_distribution_etablissement
)
Expand Down
8 changes: 2 additions & 6 deletions sv/tests/test_utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -334,12 +334,8 @@ def code_inpp_etablissement_input(self) -> Locator:
return self.page.get_by_label("Code INPP")

@property
def type_etablissement_label(self) -> Locator:
return self.page.get_by_text("Type")

@property
def type_etablissement_input(self) -> Locator:
return self.page.get_by_label("Type")
def lieu_site_inspection_input(self) -> Locator:
return self.page.get_by_label("Site d'inspection")

@property
def position_etablissement_label(self) -> Locator:
Expand Down
10 changes: 4 additions & 6 deletions sv/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,6 @@
LaboratoireAgree,
LaboratoireConfirmationOfficielle,
Departement,
TypeExploitant,
PositionChaineDistribution,
FicheZoneDelimitee,
ZoneInfestee,
Expand Down Expand Up @@ -168,7 +167,6 @@ def get_context_data(self, **kwargs):
else:
queryset = StructurePreleveur.objects.values("id", "nom").order_by("nom")
context["structures_preleveurs"] = list(queryset)
context["sites_inspections"] = list(SiteInspection.objects.values("id", "nom").order_by("nom"))
context["matrices_prelevees"] = MatricePrelevee.objects.all().order_by("libelle")
if self.allows_inactive_laboratoires_agrees_values:
context["laboratoires_agrees"] = LaboratoireAgree._base_manager.order_by("nom")
Expand All @@ -180,7 +178,7 @@ def get_context_data(self, **kwargs):
queryset = LaboratoireConfirmationOfficielle.objects.all().order_by("nom")
context["laboratoires_confirmation_officielle"] = queryset
context["resultats_prelevement"] = Prelevement.Resultat.choices
context["types_etablissement"] = TypeExploitant.objects.all().order_by("libelle")
context["sites_inspections"] = list(SiteInspection.objects.all().values("id", "nom").order_by("nom"))
context["positions_chaine_distribution"] = PositionChaineDistribution.objects.all().order_by("libelle")

status_code_to_id = {s.code: s.id for s in status}
Expand Down Expand Up @@ -384,7 +382,7 @@ def create_lieux(self, lieux, fiche):
adresse_etablissement=lieu["adresseEtablissement"],
siret_etablissement=lieu["siretEtablissement"],
code_inpp_etablissement=lieu["codeInppEtablissement"],
type_exploitant_etablissement_id=lieu["typeEtablissementId"],
site_inspection_id=lieu["siteInspectionId"],
position_chaine_distribution_etablissement_id=lieu["positionEtablissementId"],
)
lieu_instance.save()
Expand Down Expand Up @@ -557,7 +555,7 @@ def update_lieux(self, lieux, fiche_detection):
lieu.adresse_etablissement = loc["adresseEtablissement"]
lieu.siret_etablissement = loc["siretEtablissement"]
lieu.code_inpp_etablissement = loc["codeInppEtablissement"]
lieu.type_exploitant_etablissement_id = loc["typeEtablissementId"]
lieu.site_inspection_id = loc["siteInspectionId"]
lieu.position_chaine_distribution_etablissement_id = loc["positionEtablissementId"]
else:
lieu.nom_etablissement = ""
Expand All @@ -566,7 +564,7 @@ def update_lieux(self, lieux, fiche_detection):
lieu.raison_sociale_etablissement = ""
lieu.adresse_etablissement = ""
lieu.siret_etablissement = ""
lieu.type_exploitant_etablissement_id = None
lieu.site_inspection_id = None
lieu.position_chaine_distribution_etablissement_id = None
lieu.save()
loc["lieu_pk"] = lieu.pk
Expand Down

0 comments on commit 4917594

Please sign in to comment.