GeotrekCE / Geotrek-rando-v3

Geotrek public data website (version 3)
https://geotrek.fr/produit.html#rando
MIT License
16 stars 15 forks source link

Customisation des informations affichées sur les cards en vue liste #987

Open babastienne opened 1 year ago

babastienne commented 1 year ago

Contexte

En vue liste dans GTR3, les informations affichées pour les itinéraires sont toujours les mêmes :

Pour les derniers éléments, affichés en une ligne, les informations ne sont pas toujours pertinentes.

Pour rappel, sur Geotrek-Widget, le choix a été effectué d'ajouter en plus le type de parcours sur la tuile, et d'identifier plus clairement la pratique plutôt que via un picto à survoler sur l'image.

image

Proposition

Il faudrait pouvoir paramétrer le contenu des ces cards, pour permettre d'afficher d'autres types de contenus car selon les territoires les besoins ne sont pas toujours les mêmes.

A minima, si on ne paramètre pas les contenus car trop compliqué, je pense qu'il faut discuter de la pertinence de mettre en avant le type de parcours et le dénivelé négatif.

Toutefois dans beaucoup de situations, le dénivelé négatif = dénivelé positif, donc pas forcément idéal non plus.

camillemonchicourt commented 1 year ago

En effet, lors du maquettage de GTR3, nous avions identifié et validé avec les utilisateurs les infos essentiels et génériques à afficher dès la liste de résultats, et toutes les autres uniquement dans la fiche détail. Pour que le liste de résultats soit lisible facilement et pas trop chargée en information.

On pourrait imaginer en effet que l'on puisse remplacer ou ajouter des éléments avec de la configuration. Par contre, cela me semble compliqué d'afficher certaines infos en fonction du dénivelé de la rando, en fonction de la pratique de la rando (dénivelé négatif seulement pour l'enduro par exemple).

Pour ma part, je ne suis pas convaincu par le fait d'ajouter d'office et pour tous le type de parcours, car nous avions retenu que cela était une info secondaire.

dtrucs commented 1 year ago

Par contre, cela me semble compliqué d'afficher certaines infos en fonction du dénivelé de la rando, en fonction de la pratique de la rando (dénivelé négatif seulement pour l'enduro par exemple).

Serait-ce risqué d'imaginer une logique métier selon la différence de dénivelé ?

Par exemple en mettant une valeur de bascule à 20m :

Cette valeur de bascule pourrait être paramétrable

camillemonchicourt commented 1 year ago

Moi je préfère un affichage dans la liste simple et cohérent pour tous les objets, mais pourquoi pas permettre un affichage des infos de la fiche plus souple et configurable, voire adaptable en fonction de l'objet.

camillemonchicourt commented 1 year ago

On pourrait imaginer un fonctionnement de ce type :

babastienne commented 11 months ago

Pour permettre de personnaliser les affichages des résultats dans la vue liste, il faudrait mettre en place un mécanisme qui permette à l'utilisateur de sélectionner certains champs à afficher et leur ordre (un peu comme la configuration des fiches détails mais pour les tuiles de résultats). On aimerait pouvoir laisser le choix d'afficher les champs suivants :

Certaines données restent obligatoires :

babastienne commented 11 months ago

En plus, il faudrait pouvoir afficher certaines étiquettes (comment gérer côté GTA ? Côté GTR ?). Plus complexe, à prendre indépendamment.

dtrucs commented 11 months ago

Plus techniquement il faudrait donc créer un fichier /config/resultCard.json (ou autre nom à définir) Et il recevrait les valeurs suivantes :

{
  "themes": {
    "display": true,
    "order": 0,
  },
  "difficulty": {
    "display": true,
    "order": 10,
  },
  "duration": {
    "display": true,
    "order": 20,
  },
  "distance": {
    "display": true,
    "order": 30,
  },
  "elevation": {
    "display": true,
    "order": 40,
  },
  "negativeElevation": {
    "display": false,
    "order": 50,
  },
  "courseType": {
    "display": true,
    "order": 60,
  },
  "networks": {
    "display": true,
    "order": 70,
  },
  "place": {
    "display": true
  }
}

Dont il serait possible de surcharger via /customization/config/resultCard.json

camillemonchicourt commented 11 months ago

Oui c'est ça. Peut-être plutôt nommer elevation en positiveElevation pour être plus clair et cohérent.

place ne me parait pas très clair et explicite. Peut-on le remplacer par municipalities

Et pour les étiquettes, cela pourrait être un fonctionnement similaire, mais avec une option supplémentaire et optionnelle pour pouvoir définir uniquement l'affichage des pictos de certaines étiquettes uniquement :

  "labels": {
    "display": true,
    "order": 80,
    "limit": [1,3]
  },
dtrucs commented 9 months ago

Après reflexions et en reprenant les propositions :

Par conséquent avec la fonctionnalité des includes, j'ajoute en amont une clé trek afin de pouvoir laisser la possibilité d'ajouter des personnalisation des cards des autres types de contenus (par ex includes pour les labels des sites outdoor)

{
 "trek": {
    "location": {
      "display": true,
    },
    "themes": {
      "display": true
    },
    "labels": {
      "display": true,
      "includes": [1,3]
    }
   "informations": ["difficulty", "duration", "distance", "positiveElevation", "negativeElevation", "courseType", "networks"]
  }
}

Valeur par défaut de resultCard.json (rétrocompatibilité)

{
 "trek": {
    "location": {
      "display": true,
    },
    "themes": {
      "display": true
    },
    "labels": {
      "display": true,
    }
   "informations": ["difficulty", "duration", "distance", "positiveElevation"]
  }
}
camillemonchicourt commented 9 months ago

OK ça me semble très bien.