[Python/Django] patch pour le logiciel de traduction Pootle


#1

Publié originellement sur: https://participer.framasoft.org/pythondjango-patch-pour-le-logiciel-de-traduction-pootle/
Nous voudrions lancer un service de traduction collaborative en ligne basé sur le logiciel Pootle.

Il ne manque qu’une fonctionnalité à Pootle pour que nous puissions l’ouvrir à tous : la création de projets par des personnes non admin de l’instance logiciel.

Nous cherchons donc une personne à l’aise avec Python et Django pour modifier Pootle afin de coder cette fonctionnalité.

Le code de Pootle est disponible sur https://github.com/translate/pootle.

Cahier des charges :

créer un niveau de droits autorisant la création de projets
  • dès lors qu'une personne possède ce niveau de droits, un lien « créer un projet » sera affiché en haut à droite de son login
  • ce lien conduira à une page proposant un formulaire pour créer un projet (voir ici pour les champs nécessaires. Le formulaire peut évidemment se présenter de façon plus pratique/esthétique).
  • lorsque le formulaire est soumis, le projet est créé, en ajoutant automatiquement le droit "peut administrer un projet de traduction" à la personne qui a créé le projet, pour ce projet uniquement. Ensuite la personne est idéalement redirigée vers la page du projet. Si cela n'est pas possible (compliqué, impossible ou toute autre raison), il faudra lui renvoyer un message confirmant la création du projet ainsi qu'un lien vers la page du projet.
  • bien évidemment, toute l'interface devra utiliser le système d'internationalisation de Pootle

Prérequis :

  • Connaissance de Python
  • Connaissance de Django
  • Nous voudrions que ce patch soit par la suite proposé au projet Pootle, donc, idéalement, le code de cet ajout devra respecter le style du code de Pootle.

#2

Bonjour Pouhiou ( et framasky pour son tweet de rappel),

Je me plongerais dans les fichiers du git ce week end au mieux et dérouillerais mes connaissances en Python pour tenter une ébauche de ce que précise le cahier des charges. En cas de besoin je ferais un appel à l’aide sur ce sujet.

Bon week end aux colibris :wink:


#3

Merci @shikaruko ! Dis nous aussi si tu as des avancées/blocages :wink:


#4

Je progresse plus doucement qu’je ne pensais, le temps qu’il faut pour se plonger dans le cambouis x) J’ai déjà pu me créer mes proches schémas pour visualiser un peu mieux, j’entame le plus concret d’ici quelques jours au mieux :wink:


#5

Pas de soucis, faut que ça reste un plaisir pour toi, c’est le plus important.
Si jamais tu as besoin d’aide, n’hésites pas à nous dire sur quoi et on essaiera de trouver du monde. Pareil si à un moment tu as envie d’un regard extérieur sur tes avancées :wink:

Bref, @Framasky et moi, on est là !


#6

C’est un plaisir de se dérouiller sur du concret et j’ai pas de crainte, au moindre souci majeur je toquerais à la porte surtout de framasky pour le côté technique bien sûr et à toi pouhiou pour secouer la commu’ en quête d’avis extérieur :wink:


#7

@shikaruko Si jamais tu veux te dérouiller sur un truc concret plus facile, on a un autre truc en django à bidouiller, qui devrait être très simple à faire (pour qui connaît Django of course, moi je suis plutôt Perl et Mojolicious :stuck_out_tongue:)


#8

@Framasky
C’est à voir, je progresse tout doucement sur ce patch de fonctionnalités (pas suffisamment pour en montrer grand chose). Après au cas où quelqu’un de plus dégourdi se sent de reprendre la chose plus aisément, je peux basculer sur quelque chose de plus ‘facile’. J’ai des nuits d’insomniaques à occuper de toute façon :wink:


#9

Bonjour,

Je pense pouvoir regarder çà rapidement (dans la semaine). Je vous ferais mon retour au plus tard en fin de semaine si mes loulous me laissent un peu de temps :stuck_out_tongue:

@shikaruko : on peut peut-être continuer ce que tu as fait, qu’est ce que t’en penses ?

@Framasky : C’est quoi le projet django plus simple dont tu parles ?

Christophe


#10

Bonjour,

Quelqu’un est déjà sur le coups ou ça vaut la peine que je jette un œil ?
Y-a-t’il déjà eu un début de développement ou de conception ?

Si personne ce manifeste, je vais sûrement y jeter un oeil prochainement.


#11

Je cède volontiers la poursuite de ce projet à @RignonNoel et @Django_Creation selon leurs motivations, ayant sous estimé le temps dont je dispose en ce moment pour me consacrer (trop de projets en simultané). Au cas où j’y pense durant le week-end, la bribe de conception fait de mon côté sera posté sur le forum. Libre à vous de repartir de zéro sur une base probablement plus ‘saine’


#12

Salut @RignonNoel, plus on est de fous, plus on rit :stuck_out_tongue:

J’ai pas encore trop eu le temps de regarder de mon coté.

Christophe


#13

@Django_Creation : je sais plus quel était l’autre projet :sweat: Je crois me souvenir que @pyg m’avait dit qu’en fait c’était en Tryton.

Désolé pour le délai de réponse, comme d’hab, j’ai 15 truc sur le feu en même temps :pensive:


#14

Bonjour,
Si le projet est toujours en cours, je veux bien aider j’ai des connaissances en python mais django je connais que de nom, mais je vois comment il fonctionne.
Jean.


#15

@Django_Creation J’ai retrouvé ! Il s’agirait de faire un patch pour Mediadrop pour qu’il intègre des ballises Oembed.

Mediadrop est le logiciel derrière Framatube et Oembed permet à certains logiciels d’intégrer une vidéo rien qu’avec son lien vers la page de la vidéo. Par exemple, quand on poste un lien youtube dans diaspora, il intègre la vidéo youtube dans une iframe lors de la visualisation du post. S’il y avait ça dans Mediadrop, ce serait top!


#16

Bonjour,

je me manifeste un peu tard mais plus on est de fous, plus on avance c’est bien connu. Quelqu’un pourrait-il dire où en est le projet et qui travaille sur quoi.
En attente de vos retours.
A très bientôt.


#17

Bonjour à tous,

J’ai réalisé un développement permettant d’ajouter 2 fonctionnalités :
-1 ajouter un projet pour toute personne connectée. Le créateur du projet acquière alors les droits ‘administrate’ sur ce projet
-2 éditer un projet pour toute personne qui a la permission ‘administrate’ sur un projet. Ce n’était pas une fonctionnalité demandé mais j’ai pensé que cela était nécessaire.

Je vous invite a regarder l’ensemble des modifications réalisées ici.

L’activation de ces fonctionnalités se fait dans les fichiers de configuration. Par défaut les 2 fonctionnalités ne sont pas activées ce qui permet de conserver le comportement actuel de pootle par défaut (en cas de pull request).
Je ne suis pas un expert Django ni Pootle donc il est bien possible que je n’ait pas respecté tous les standards. Idéalement, je suppose qu’il faudrait ajouter des fonctions de tests pour garantir que les fonctionnalités ne seront pas dégradées par de futurs commits (en cas de pull request). Enfin, je n’ai pas géré la traduction des 2 mots “Add project” et “Edit” dans les autres langues, même si j’ai vu que l’application n’était que partiellement internationalisée.

Suivent ci dessous quelques illustrations.
En espérant que cela aide,
Ainslie

Bouton ajouté à coté du pseudo :

Avec le formulaire associé (je me rends compte que le commentaire n’est pas approprié -> à corriger) :

Pour éditer un projet quand on dispose des droits :

Et le formulaire :


#18

C’est génial ! Merci beaucoup !

Je testerai ton patch la semaine prochaine.

Good job ! :thumbsup:


#19

Cool, tiens moi au courant !


#20

Juste un mot pour te dire un grand MERCI !

J’ai discuté avec @framasky (qui est actuellement sous l’eau vu que notre infra et Framacalc lui font des blagues), et si j’ai bien compris la suite c’est :

  • Tester ton patch

  • (eventuellement) faire des retours, etc.

  • le proposer à l’équipe de pootle afin qu’il soit maintenu

Et une fois que tout ceci sera fait, on pourrait alors (et grâce à toi) proposer un Pootle en Frama-Service (et ça ce serait la classe !)

Alors il reste encore un peu de la route (qui est longue) mais on est sur la bonne voie (qui est Libre ;))