Skip to content

Commit 2ad880a

Browse files
committed
Donne systématiquement un code INSEE à une collectivité
- Renomme le champ en base de données pour mieux indiquer qu'il est spécial et ajoute une propriété qui dérive le code INSEE de l'id. - Lance les migrations dans le flot de déploiement Scalingo fix #1313
1 parent acb0244 commit 2ad880a

File tree

6 files changed

+38
-8
lines changed

6 files changed

+38
-8
lines changed

django/Procfile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,2 @@
11
web: gunicorn core.wsgi --worker-class=gevent --log-file=-
2+
postdeploy: bin/post_deploy

django/bin/post_deploy

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
#!/bin/sh
2+
3+
./manage.py migrate
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
# Generated by Django 5.1.5 on 2025-04-24 09:44
2+
# ruff: noqa: RUF012
3+
from django.db import migrations
4+
5+
6+
class Migration(migrations.Migration):
7+
dependencies = [
8+
("core", "0001_initial"),
9+
]
10+
11+
operations = [
12+
migrations.RenameField(
13+
model_name="collectivite",
14+
old_name="code_insee",
15+
new_name="code_insee_unique",
16+
),
17+
]

django/core/models.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -210,7 +210,7 @@ class Procedure(models.Model):
210210
type = models.CharField(blank=True, null=True) # noqa: DJ001
211211
numero = models.CharField(blank=True, null=True) # noqa: DJ001
212212
collectivite_porteuse = models.ForeignKey(
213-
"Collectivite", models.DO_NOTHING, to_field="code_insee"
213+
"Collectivite", models.DO_NOTHING, to_field="code_insee_unique"
214214
)
215215
created_at = models.DateTimeField(db_default=models.functions.Now())
216216
doublon_cache_de = models.OneToOneField(
@@ -317,7 +317,7 @@ def __str__(self) -> str:
317317

318318
class Collectivite(models.Model):
319319
id = models.CharField(primary_key=True) # Au format code_type
320-
code_insee = models.CharField( # noqa: DJ001
320+
code_insee_unique = models.CharField( # noqa: DJ001
321321
unique=True,
322322
null=True,
323323
db_comment="Peut-être vide pour une COMD ayant le même code que sa commune parente",
@@ -336,6 +336,10 @@ class Collectivite(models.Model):
336336
def __str__(self) -> str:
337337
return self.nom
338338

339+
@property
340+
def code_insee(self) -> str:
341+
return self.id.split("_")[0]
342+
339343

340344
class CommuneQuerySet(models.QuerySet):
341345
def with_procedures_principales(self, avant: date | None = None) -> Self:

django/core/tests/test_models.py

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,12 +20,17 @@ def create_commune() -> Commune:
2020
departement = region.departements.create()
2121
return Commune.objects.create(
2222
id="12345_COM",
23-
code_insee="12345",
23+
code_insee_unique="12345",
2424
type="COM",
2525
departement=departement,
2626
)
2727

2828

29+
class TestCollectivite:
30+
def test_code_insee(self) -> None:
31+
assert Commune(id="12345_COM").code_insee == "12345"
32+
33+
2934
def test_tous_document_types_ont_event_impact() -> None:
3035
assert list(TypeDocument) == list(EVENT_IMPACT_BY_DOC_TYPE.keys())
3136

@@ -196,7 +201,7 @@ def test_plui(
196201
procedure.perimetre.add(commune)
197202
procedure.perimetre.create(
198203
id="12346_COM",
199-
code_insee="12346",
204+
code_insee_unique="12346",
200205
type="COM",
201206
departement=commune.departement,
202207
)
@@ -228,7 +233,7 @@ def test_pluih(
228233
procedure.perimetre.add(commune)
229234
procedure.perimetre.create(
230235
id="12346_COM",
231-
code_insee="12346",
236+
code_insee_unique="12346",
232237
type="COM",
233238
departement=commune.departement,
234239
)
@@ -260,7 +265,7 @@ def test_pluim(
260265
procedure.perimetre.add(commune)
261266
procedure.perimetre.create(
262267
id="12346_COM",
263-
code_insee="12346",
268+
code_insee_unique="12346",
264269
type="COM",
265270
departement=commune.departement,
266271
)
@@ -300,7 +305,7 @@ def test_pluihm(
300305
procedure.perimetre.add(commune)
301306
procedure.perimetre.create(
302307
id="12346_COM",
303-
code_insee="12346",
308+
code_insee_unique="12346",
304309
type="COM",
305310
departement=commune.departement,
306311
)

django/core/tests/test_views.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ def create_commune_et_procedure(
1414
departement = region.departements.create(code_insee=code_insee[:2])
1515
commune = Commune.objects.create(
1616
id=f"{code_insee}_{type_collectivite}",
17-
code_insee=code_insee,
17+
code_insee_unique=code_insee,
1818
type=type_collectivite,
1919
departement=departement,
2020
)

0 commit comments

Comments
 (0)