Drupal-FR / site-drupalfr

Main site repository
20 stars 8 forks source link

Récupération traduction.drupal.fr #220

Open FlorentTorregrosa opened 5 years ago

FlorentTorregrosa commented 5 years ago

Bonjour,

Afin de récupérer les fonctionnalités du site traduction.drupal.fr sur drupal.fr et avoir ainsi un site de moins à maintenir :

Voici ci-dessous mon analyse et mes questions. Si les personnes gérant le site peuvent y jeter un oeil pour me dire si c'est bon, si j'ai oublié des fonctionnalités, si de nouvelles sont souhaitées, si des existantes peuvent être retirées.

Lien vers les extensions :

Seul le lien pour Safari pointe sur un fichier dans les sources du site, est-ce qu'il ne pourrait pas y avoir un lien vers une page externe fournissant tout le temps la dernière version ?

Analyse des sources :

Cool qu'il y ait si peu de code custom.

À la racine, il y a un fichier l10n_stats.php, il semble être inutilisé. Si je peux avoir une confirmation.

module glossaire :

Il y a uniquement un glossaire_query_views_export_alter pour ajouter un tri sur la longueur du titre, a priori lors des exports. Est-ce à conserver ?

Fonctionnalité d'import depuis un fichier CSV :

Cela devrait fonctionner avec Feeds D8, mais j'ai vu que le dernier import date d'il y a 7 ans. Est-ce qu'on conserve cette fonctionnalité ?

module l10n_stats :

Page de configuration de l'affichage des statistiques : à voir si on garde.

table custom avec champs type, value, created : à transformer en type d'entité de contenu custom ?

Page des statistiques : full custom, ok. À conserver. Un bon coup de passage en objet avec des services lui fera du bien.

Divers :

Page statut des projets : iframe sur un Google doc, à reprendre niveau éditorial.

Besoin du module https://www.drupal.org/project/views_field_view pour embed des vues (à transformer en affichage embed et non plus page) sur les suggestions (entité commentaire) dans les vues sur les traductions.

Configuration :

Vocabulaires de taxonomie :

Types de contenu :

Types de commentaire :

Pas mal que le glossaire actuellement, c'est 99.99% de config. Au moins ça va faire bien 2 modules séparés, un pour le glossaire, l'autre pour les statistiques.

Il faudra que niveau éditorial voir où est-ce que cette section ira dans le site D8 et comment l'organiser.

FlorentTorregrosa commented 5 years ago

vue export json : à faire en custom car https://www.drupal.org/project/views_datasource n'a pas de version D8, ajouter dans le chemin un filtre contextuel sur la langue du glossaire

En y repensant, avec views data export, on aurait un json plat. On passerait de :

{
  "terms": [
    {
      "term": {
        "title": "see the online handbook entry for ",
        "field_traduction": "consulter la section [titre de la section] du manuel en ligne."
      }
    },
    {
      "term": {
        "title": "customer profile manager",
        "field_traduction": "gestionnaire des profils clients"
      }
    }
  ]
}

à

[
  {
    "title": "see the online handbook entry for ",
    "field_traduction": "consulter la section [titre de la section] du manuel en ligne."
  },
  {
    "title": "customer profile manager",
    "field_traduction": "gestionnaire des profils clients"
  }
]

Si ça dérange pas les mainteneurs des extensions navigateur de faire une nouvelle version, ça évitera du code custom.

simongeorges commented 5 years ago

J'ai très peu de remarque, je pense que toutes tes propositions sont tout à fait pertinentes. Je me dis que ça peut être intéressant de conserver le "domaine" (éventuellement à renommer en "contexte" pour coller à ce qu'utiliser le cœur pour les traductions).

Sinon, tout ce qui peut se raccrocher au standard est une bonne idée, ça fera moins de maintenance :-)

simongeorges commented 5 years ago

(Beau boulot, soit dit en passant)

FlorentTorregrosa commented 5 years ago

Merci pour ton retour :).

C'est partie :)

FlorentTorregrosa commented 5 years ago

Il me faudrait une réponse pour :

Pour le type de contenu bonnes pratiques, finalement je ne pense pas que ça vaille le coup de faire un type de contenu + vue à part. Il y a actuellement 9 bonnes pratiques, elles font quasi toutes une phrase, ça va être une page standard avec des (ou un) paragraphes texte, ça ira largement.

FlorentTorregrosa commented 5 years ago

Pour le vote sur les suggestions, pour l'instant je mets pas la fonctionnalité, les modules de vote sont trop instables. Les gens feront des sous-commentaires.

FlorentTorregrosa commented 5 years ago

Pour la gestions des traductions, views bulk edit ne semble pas bien marcher avec les booléen, la valeur du champ est modifiée, mais dans le retour, on obtient une page blanche. Je laisse comme ça, le problème sera à résoudre dans le module contrib.

FlorentTorregrosa commented 5 years ago

Ok pour le glossaire, reste :

Je mettrai les URLs de préprod lorsque j'aurai redéployer.

Là je vais m'attaquer aux statistiques.

FlorentTorregrosa commented 5 years ago

Note: Pour faire une extraction des statistiques, j'ai fait un export directement depuis mysql en utilisant : SELECT * FROM l10n_stats INTO OUTFILE '/var/lib/mysql-files/stats.csv' FIELDS ENCLOSED BY '"' TERMINATED BY ';' ESCAPED BY '"' LINES TERMINATED BY '\r\n';

Pour lancer la commande j'ai dû faire (car pas assez de droits sur le serveur) un dump, le récupérer en local, me le suis injecter dans un conteneur mysql avec

cat backup.sql | docker exec -i CONTAINER /usr/bin/mysql -u root --password=root DATABASE

(https://gist.github.com/spalladino/6d981f7b33f6e0afe6bb)

SHOW VARIABLES LIKE "secure_file_priv"; : pour montrer dans quel dossier on peut créer le csv.

déplacer dans les points de montage pour récupérer le csv sur ma machine, manipuler un peu le csv pour le préparer à un import migrate.

FlorentTorregrosa commented 5 years ago

Import des anciennes statistiques ok.

Je me demande si je ne vais pas le commenter car il est assez long.

Je verrai demain pour la page avec les graphiques. J'ai bien envie de re-tester https://www.drupal.org/project/charts pour voir s'il peut faire ce qu'on veut avec peut être un peu de code custom. Comme ça ça permettra de gérer avec des vues et donc de faire des filtres exposés, etc.

FlorentTorregrosa commented 5 years ago

Pour la page des stats, je suis parti sur le module charts pour pouvoir utiliser Views. Non pas que le code custom me dérange, mais je voulais qu'il y en ait le moins possible à maintenir et je voulais mettre un peu plus d'interactivité avec les filtres exposés.

Malheureusement après avoir trituré charts dans tous les sens que ce soit dans la config des vues ou le code, je n'ai pas pu obtenir :

Vu que je sens qu'il va falloir reprendre pour le theming, je laisse pour l'instant comme ça et je déploierai en préprod un peu plus tard.

Voir aussi les commentaires https://github.com/Drupal-FR/site-drupalfr/issues/220#issuecomment-495929418 et https://github.com/Drupal-FR/site-drupalfr/issues/220#issuecomment-495901042

FlorentTorregrosa commented 5 years ago

https://drupal8.h337pre.drupalfr.org/glossaire https://drupal8.h337pre.drupalfr.org/ws/fr/glossary.json https://drupal8.h337pre.drupalfr.org/ws/fr/glossary.csv https://drupal8.h337pre.drupalfr.org/ws/br/glossary.json https://drupal8.h337pre.drupalfr.org/ws/br/glossary.csv https://drupal8.h337pre.drupalfr.org/statistiques

FlorentTorregrosa commented 5 years ago

Lors du dernier meetup à Marseille j'ai présenté le module charts et son usage pour les stats de traductions.

Lors de la démo, on se demandait pourquoi sur des plages de dates comme https://drupal8.h337pre.drupalfr.org/statistiques?name=Fran%C3%A7ais&created%5Bmin%5D=-200+days&created%5Bmax%5D=%2B1+day

Il y avait des numéros et non des dates en abscisse. J'ai trouvé l'explication, cela vient des données sources et du fonctionnement de charts.

Il y a plein de stats qui sont du même jour, mais pas de la même heure, sans doute des cron lancés plusieurs fois pour repeupler les stats après que traduction.drupal.fr est été down pendant un certain temps ou pour debug.

Et au niveau du fonctionnement de charts, lorsqu'il y a plusieurs valeurs pour une même abscisse (car les timestamp formatés en Y-m-d donnent la même valeur si c'est juste l'heure et minute qui diffèrent), il se sert de l'id de la ligne de résultat comme abscisse.

Soit il faudra purger les stats, soit on laisse comme ça.

J'ai aussi testé date_popup pour avoir des datepicker, c'est dommage que le module mette un datepicker alors qu'on demande des dates en relatifs et du coup ça marche plus.

Je me suis rappelé que j'étais un peu obligé de passer par des dates relatives où je pouvais facilement mettre une valeur par défaut pour limiter le nombre de stats remontées car pas possible de limiter le nombre de stats affichées tout en triant par date croissante sinon seules les dates les plus récentes ressortiraient.