Closed florimondmanca closed 3 days ago
Quand je teste en local, on dirait que je n'ai pas les droits : je vois "Données brutes GeoJSON" dans le type de route ou de voie mais je ne peux pas cliquer sur les champs de texte en dessous. À noter que je suis admin via le fichier .env.local
.
Mise à jour : ça s'affiche comme ça :
Mais je ne peux pas cliquer dans les champs "Descriptif" et "Géométrie GeoJSON" (le code source dit que les input
HTML sont en disabled="disabled"
).
@jjacquelinet Bien vu, il manquait quelques attributs, normalement c'est corrigé
@jjacquelinet Retours traités :+1:
J'arrive maintenant à entrer un GeoJSON mais après validation de la localisation, j'ai un "Content missing" :
Le (gros) GeoJSON en question, obtenu à partir d'une requête sur la base de données OpenStreetMap : https://overpass-turbo.eu : en pièce jointe : export highway=primary aux alentour de Rennes.geojson.txt
Avec un geojson plus petit ( export D29 aux alentours de Rennes, node and way but no relations.geojson.txt ) ça franchit cette étape mais je n'ai pas de retour de l'interface (est-ce que mon GeoJSON est bien traité ?) et le bouton "publier l'arrêté" est désactivé.
Même soucis si j'extraie une géométrie du GeoJSON :
{
"type": "LineString",
"coordinates": [
[
-1.5694146,
48.1410811
],
[
-1.5692121,
48.1410792
],
[
-1.5689495,
48.141065
],
[
-1.5684082,
48.1410156
],
[
-1.5681382,
48.1409791
],
[
-1.5678734,
48.1409317
],
[
-1.5646563,
48.1402529
]
]
}
@jjacquelinet Je pense que le pb est que ton GeoJSON contient une FeatureCollection
Le contenu du champ Géométrie
est directement filé à PostGIS pour utilisation comme type geometry
Il faut donc qu'il contiennent la partie "geometry" d'une feature
Si je copie-colle le JSON de géométrie de ton dernier message en revanche je n'ai pas de problème... J'arrive à enregistrer, je n'ai pas de Content missing, et je peux publier
@jjacquelinet Hmm est-ce que tu as lancé la migration ? (Création de la table raw_geojson
et de la foreign key avec location
)
Créer une DB de branche :
docker-compose exec database createdb -U dialog -T dialog dialog_geojson
Màj la DATABASE_URL
dans .env.local
Puis lancer
make dbmigrate
PS : quand un "Content missing apparaît" tu peux ouvrir la console web et trouver la réponse 500 qui correspond. En ouvrant l'onglet "Response" tu vois normalement la page de debug Symfony. Bizarrement de mon côte cette dernière s'affiche si j'essaie de saisir une Feature, mais son affichage par Content Missing peut parfois provenir d'un pb de DB justement.
J'ai bien la table raw_geojson
dans ma base de données …
Lorsque je tente avec l'exemple de la géométrie LineString, je note dans les consoles JavaScript de Safari et de Google Chrome des erreurs 422 "Unprocessable Content" :
Malgré une réinstallation de mon DiaLog (suppression des données Docker), ça ne fonctionne pas chez moi …
@mmarchois Tu as le même problème si tu testes cette branche ?
@jjacquelinet Je n'arrive pas à reproduire le pb du cas LineString sous Chromium https://github.com/MTES-MCT/dialog/pull/840#issuecomment-2180838243 l'enregistrement se passe bien.
Ok c'est bon, j'avais mal configuré mon rôle admin 🫤 Je sais pas si ça vaut le coup d'avoir un retour sur l'interface utilisateur sur ce cas précis ?
@jjacquelinet Le truc problématique c'est que tu avais la possibilité de saisir un GeoJSON sans être admin...
All modified and coverable lines are covered by tests :white_check_mark:
Project coverage is 99.14%. Comparing base (
e6bc8a7
) to head (c774fe8
).
:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.
@jjacquelinet Prêt pour une nouvelle review :+1:
Il me manque des tests...
Alors sans être admin, l'option "Données brutes GeoJSON" m'apparaît toujours dans le menu déroulant. Tu reproduis de ton côté ?
@jjacquelinet Non je ne reproduis pas :thinking:
Par ailleurs, les tests passent et il y a celui-ci qui vérifie que l'option est hidden
... https://github.com/MTES-MCT/dialog/pull/840/files#diff-03a61d98d0711df17ab5325516c674ccd95ac083cf181c5d9da248d5c86e5f7eR482-R483
@jjacquelinet Le pb sous Safari est corrigé et j'ai appliqué le comportement décidé (juste cacher l'option pour s'éviter la fragilité de la validation de permissions), en couvrant tous les cas avec des tests.
Cette PR ajoute un type de localisation "Données brutes GeoJSON" qui s'ajoute à "Voie nommée" et "Route départementale"
Le type GeoJSON nécessite un descriptif (texte libre en 255 caractères) et la géométrie GeoJSON
Dans l'UI d'édition, il ne peut être utilisé que par un utilisateur ADMIN (en prod ça sera Mathieu F)
Ce type sera utilisé pour intégrer les tronçons des zones JOP sous forme de GeoJSON MultiLineString, sans avoir à définir la voie nommée de chaque tronçon concerné (ce qui serait lourd et inutile au vu du besoin)
Aperçus
Affichage
Formulaire
TODO