Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Affichage des responsables de la donnée #4230

Open
wants to merge 16 commits into
base: master
Choose a base branch
from

Conversation

vdegove
Copy link
Contributor

@vdegove vdegove commented Sep 27, 2024

J’ai rajouté les responsables légaux dans la barre latérale de fiche d’identité du dataset, ainsi que dans l’API.

Pour la partie graphique, c’est vu avec @cyrilmorin, notamment le wording et le comportement (liens vers les pages d’AOM et de Région), je vous ai mis une capture d’écran plus bas.

Pour l’API, je suis preneur de retours, j’ai peu d’expérience en design d’API. Les responsables légaux peuvent être un ensemble de régions, d’AOM locaux ou une entreprise, les 3 possibilités pouvant se combiner (voir exemple plus bas, où il y a à la fois une région et des AOM locaux). J’ai choisi de faire une structure qui est toujours là, avec des arrays qui peuvent être vides pour les régions et les AOM, et un champ nullable pour le SIREN d’entreprise.

Petites bricoles au passage :

  • Les informations de couverture spatiale sont regroupées dans la barre latérale, avec le nom de la zone qui est mis juste au dessus de la carte (et qui perd son icône de marqueur, qui du coup n’est plus nécessaire).
  • J’ai trouvé une collection de fonctions dans DB.Dataset qui ne servaient plus, ça dégage.
  • API : j’ai rajouté un champ INSEE pour les régions, commun à la covered_area et aux legal_owners. Les objets AOM et Région sont identiques ainsi entre la covered area, qui était déjà là, et les legal owners, qui est nouveau. Par contre la structure englobante est un peu différente.

La sidebar devient donc :

Capture d’écran 2024-09-27 à 16 06 03

Et l’API donne ça (je laisse les covered_area et legal_owners pour comparaison) :

{
  []
  "covered_area": {
    "name": "Nouvelle-Aquitaine",
    "region": {
      "insee": "75",
      "name": "Nouvelle-Aquitaine"
    },
    "type": "region"
  },
  []
  "id": "6246416dbd6bdfe8bceb4ce1",
  "legal_owners": {
    "aoms": [
      {
        "name": "CU Limoges Métropole",
        "siren": "248719312"
      },
      {
        "name": "CA du Bassin de Brive",
        "siren": "200043172"
      },
      {
        "name": "Bordeaux Métropole",
        "siren": "243300316"
      },
      {
        "name": "Syndicat des mobilités Pays Basque - Adour",
        "siren": "256401605"
      },
      {
        "name": "CA du Grand Angoulême",
        "siren": "200071827"
      },
      {
        "name": "CA Tulle Agglo",
        "siren": "241927201"
      },
      {
        "name": "CA Mont de Marsan Agglomération",
        "siren": "244000808"
      },
      {
        "name": "CA du Grand Dax",
        "siren": "244000675"
      },
      {
        "name": "CA Grand Châtellerault",
        "siren": "248600413"
      },
      {
        "name": "CA de Saintes",
        "siren": "200036473"
      },
      {
        "name": "CA du Libournais",
        "siren": "200070092"
      },
      {
        "name": "CA de La Rochelle",
        "siren": "241700434"
      },
      {
        "name": "CU du Grand Poitiers",
        "siren": "200069854"
      },
      {
        "name": "CA du Niortais",
        "siren": "200041317"
      },
      {
        "name": "CA Le Grand Périgueux",
        "siren": "200040392"
      },
      {
        "name": "CA Bergeracoise",
        "siren": "200070647"
      },
      {
        "name": "CA Val de Garonne Agglomération",
        "siren": "200030674"
      },
      {
        "name": "CA du Grand Cognac",
        "siren": "200070514"
      },
      {
        "name": "CA Rochefort Océan",
        "siren": "200041762"
      },
      {
        "name": "CA Royan Atlantique",
        "siren": "241700640"
      },
      {
        "name": "CC Maremne Adour Côte Sud",
        "siren": "244000865"
      },
      {
        "name": "CA du Bocage Bressuirais",
        "siren": "200040244"
      },
      {
        "name": "CA du Grand Guéret",
        "siren": "200034825"
      }
    ],
    "company": null,
    "regions": [
      {
        "insee": "75",
        "name": "Nouvelle-Aquitaine"
      }
    ]
  },
  []
}

Fixes #3717

@vdegove vdegove requested a review from a team as a code owner September 27, 2024 14:23
Comment on lines +684 to +685
:legal_owners_aom,
:legal_owners_region,
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Avec ce preload je pense que tu récupères tous les champs géographiques des AOMs et des régions (colonne geom). Ça peut commencer à faire beaucoup à sortir de la base de données pour les agrégats.

Voir si on peut restreindre les champs qui sont preload ?

Comment on lines +319 to +320
"aoms" => legal_owners_aom(dataset.legal_owners_aom),
"regions" => legal_owners_region(dataset.legal_owners_region),
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Les régions sont des AOMs. Notre retour d'API expose notre modèle de données qui ne correspond peut-être pas à la réalité. Est-ce qu'on souhaite regrouper ?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ahah, c’est une bonne question. À minima il faut pour moi les différencier – c’est important si c’est un AOM local, un AOM local délégué à la région, ou un AOM régional, c’est pas les mêmes prérogatives, mais ça pourrait aussi être au sein d’un array avec un type d’objet indiqué. J’y réfléchis. Poke @cyrilmorin

Je sais pas si on a des utilisateurs de l’API à qui on peut poser la question ? Peut-être déjà l’ART puisqu’ils scriptent autour de notre API.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

J’aurais tendance à dire qu’on laisse comme ça, et qu’on fait un appel à participation pour définir notre API plus pérenne ?

apps/transport/lib/transport_web/views/dataset_view.ex Outdated Show resolved Hide resolved
apps/transport/lib/transport_web/views/dataset_view.ex Outdated Show resolved Hide resolved
apps/transport/lib/transport_web/views/dataset_view.ex Outdated Show resolved Hide resolved
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Afficher les représentants légaux sur la partie publique du PAN
2 participants