Skip to content

Fix admin errors on profile and procedure pages#1893

Open
zspirit wants to merge 4 commits intoMTES-MCT:mainfrom
zspirit:fix/admin-issues-1847-1793
Open

Fix admin errors on profile and procedure pages#1893
zspirit wants to merge 4 commits intoMTES-MCT:mainfrom
zspirit:fix/admin-issues-1847-1793

Conversation

@zspirit
Copy link
Copy Markdown

@zspirit zspirit commented Feb 27, 2026

Cinq bugs admin/backend corrigés.

Tests admin cassés (#1847)

Le .env de dev définit DJANGO_SETTINGS_MODULE=core.settings.dev, ce qui écrase la config pytest (core.settings.test). Les tests tournent donc avec CompressedManifestStaticFilesStorage qui attend un manifest généré par collectstatic — absent en local, d'où le crash sur toutes les pages admin.

Corrigé via une fixture autouse dans conftest.py qui force StaticFilesStorage.

Champ "Autre poste" bloqué pour les collectivités (#1793)

other_poste est un ArrayField dont le base_field a choices=RoleType. Côté PPA c'est cohérent (sélection dans une liste), mais côté collectivité les utilisateurs saisissent du texte libre dans Nuxt. L'admin Django refusait ces valeurs parce que la validation choices s'applique à deux niveaux : formulaire et modèle (full_clean).

Corrigé avec un ProfileAdminForm qui redéfinit other_poste en SimpleArrayField(CharField()) et l'exclut de la validation modèle.

Communes déléguées comptées dans le fallback périmètre (#1714)

is_intercommunal et is_sectoriel_consolide utilisent un fallback self.perimetre.count() quand l'annotation n'est pas disponible (vue change admin). Ce fallback ne filtrait pas les COMD, contrairement à l'annotation with_perimetre_counts qui fait déjà commune__nouvelle=None.

Corrigé en ajoutant .filter(nouvelle=None) au fallback.

Libellé code état simplifié statique (#1787, #1788)

libelle_code_etat_simplifie utilisait un dictionnaire statique qui ne distinguait pas PLU/PLUi/PLUiH/etc. (tous mappés sur le code 3). Le libellé affichait toujours "PLU" même pour un PLUi sectoriel.

Remplacé par un calcul dynamique basé sur type_document qui affiche le vrai type de document et gère les cas avec plusieurs procédures en cours.

@zspirit
Copy link
Copy Markdown
Author

zspirit commented Feb 27, 2026

cc @celine-m-s @rik pour review

Quand DJANGO_SETTINGS_MODULE pointe sur core.settings.dev (via .env),
le CompressedManifestStaticFilesStorage attend un collectstatic
préalable, ce qui fait échouer les tests admin.

Fixes MTES-MCT#1847
Le champ other_poste utilisait les choices de RoleType y compris
pour les profils côté collectivité, qui saisissent du texte libre
dans Nuxt. Le formulaire admin refusait ces valeurs à la validation.

Fixes MTES-MCT#1793
@zspirit zspirit force-pushed the fix/admin-issues-1847-1793 branch from 43d8e0a to 0a54a35 Compare February 27, 2026 10:48
…nt (MTES-MCT#1714)

Le fallback de is_intercommunal et is_sectoriel_consolide comptait les COMD,
contrairement à l'annotation with_perimetre_counts qui les exclut déjà.
…ES-MCT#1788)

Remplace le lookup statique par un calcul basé sur type_document.
Affiche le vrai type (PLUi, PLUiH, etc.) et gère plusieurs procédures en cours.
@sonarqubecloud
Copy link
Copy Markdown

@celine-m-s
Copy link
Copy Markdown
Collaborator

Bonsoir @zspirit ,
Merci pour votre contribution. Je n'ai pas le temps de regarder aujourd'hui donc ce sera pour la semaine prochaine. :)
Je vous souhaite une bonne soirée !

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment