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

Espace réutilisateur : formulaire pour ajouter des données améliorées #4437

Merged
merged 3 commits into from
Feb 5, 2025

Conversation

AntoineAugusti
Copy link
Member

En lien avec #4011

Cette PR ajoute un formulaire dans l'espace réutilisateur, permettant de partager des données améliorées.

Ce formulaire est visible uniquement :

  • quand un contact est membre de certaines organisations, qui sont dans le pilote
  • le JDD est un jeu de données public-transit avec le 🏷️ repartage_donnees (ajouté par @cyrilmorin pour les JDDs dans le périmètre de l'expérimentation)

L'utilisateur peut alors choisir de partager une URL vers une ressource améliorée, il doit sélectionner le GTFS correspondant. Ce partage de données est fait au nom de l'organisation éligible : si un contact a déjà repartagé quelque chose, il ne sera pas possible pour un collègue de le faire.

Ce qui n'est pas fait

Cette PR se limite à créer une nouvelle table, le modèle Ecto, une logique d'éligibilité, un formulaire pour enregistrer une URL en base de données.

Il n'y a pas de snapshot de la ressource améliorée partagée, impossible d'éditer/supprimer ce fichier partagé depuis une interface, la liste des organisations éligible est figée, les JDDs qui sont dans le pilote doivent être ajoutés en favoris ❤️ par les contacts auparavant.

Démo

Screen.Recording.2025-02-04.at.10.55.09.mov

@AntoineAugusti AntoineAugusti requested a review from a team as a code owner February 4, 2025 10:55
@AntoineAugusti AntoineAugusti changed the title Reuser space: add form to share improved data for pilot organizations Espace réutilisateur : formulaire pour ajouter des données améliorées Feb 4, 2025
Comment on lines +33 to +37
defp existing_improved_data(%DB.Dataset{id: dataset_id}, [%DB.Organization{id: organization_id}]) do
DB.ReuserImprovedData
|> where([r], r.dataset_id == ^dataset_id and r.organization_id == ^organization_id)
|> DB.Repo.one()
end
Copy link
Member Author

Choose a reason for hiding this comment

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

Une ressource améliorée est déposée au nom de l'organisation éligible au pilote, ce n'est pas scopé par le contact qui a fait l'action (même si le contact est bien enregistré)

Copy link
Member Author

Choose a reason for hiding this comment

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

C'est hors scope mais je corrige la Content Security Policy. En local les images des organisations/utilisateurs n'étaient pas affichés car le domaine demo-static.data.gouv.fr n'était pas autorisé


def change do
create table(:reuser_improved_data) do
add(:dataset_id, references(:dataset, on_delete: :delete_all), null: false)
Copy link
Member Author

Choose a reason for hiding this comment

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

On pourrait retrouver le dataset_id avec la ressource mais je pense que ça facilitera bien le travail de le stocker ici.


config :transport,
data_sharing_pilot_dataset_custom_tag: "repartage_donnees",
data_sharing_pilot_eligible_datagouv_organization_ids: [
Copy link
Member Author

Choose a reason for hiding this comment

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

On met notre organisation en tant qu'admins + les calculateurs d'itinéraires qui ont déjà une organisation existante

@ptitfred
Copy link
Contributor

ptitfred commented Feb 5, 2025

Cette PR se limite à créer une nouvelle table, le modèle Ecto, une logique d'éligibilité, un formulaire pour enregistrer une URL en base de données.

C'est déjà pas mal

Copy link
Contributor

@ptitfred ptitfred left a comment

Choose a reason for hiding this comment

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

Une question concernant le modèle de données. Pour le reste je suis prêt à approuver.

|> assoc_constraint(:resource)
|> assoc_constraint(:contact)
|> assoc_constraint(:organization)
|> unique_constraint([:dataset_id, :organization_id])
Copy link
Contributor

Choose a reason for hiding this comment

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

Je m'attendais à voir le resource_id membre de la clef d'unicité. Un réutilisateur ne fournit-il pas une version améliorée d'une ressource ?

@AntoineAugusti
Copy link
Member Author

AntoineAugusti commented Feb 5, 2025

@ptitfred Tu as raison, je vais laisser le modèle de données avec un index unique sur resource_id, organization_id.

Au niveau du formulaire on va limiter à un repartage de données par dataset_id par contre pour le moment.

3d5ea7c

@AntoineAugusti AntoineAugusti added this pull request to the merge queue Feb 5, 2025
Merged via the queue into master with commit e016e65 Feb 5, 2025
3 of 4 checks passed
@AntoineAugusti AntoineAugusti deleted the reuser_space_share_improved_data branch February 5, 2025 10:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants