Source

REX 2011 @PilotSystems&Libération / cockpit.rst

Cockpit

Cockpit, une application d’e-mailing (envoi massif de newsletters en ligne, statistiques, gestion des désabonnements, ouvertures de mails, erreurs, etc.) développée par Pilot Systems et utilisant la technologie Django. CaaS (Cockpit as a Service) compte parmi ses clients l’AFDAS, la fondation Casques Rouges, l’INSIA ou encore France Premium et Libéfood.

Je suis intervenu sur Cockpit dans le cadre de l'internationalisation de l'application. J'ai implémenté le système de traduction et réalisé la traduction anglaise.

Dans le cadre de cette mission, j'ai eu l'occasion de découvrir une construction du langage extra-ordinaire: le monkeypatch. Le monkeypatch n'est pas compliqué à comprendre, c'est l'opération qu'il réalise qui peut-être complexe. Le module d'administration a été monkeypatché pour supporter l'ordonnancement des éléments du menu selon un critère défini par le programmeur. Cette opération provoquait un bug. Ce dernier provoque l'évaluation de la chaine de caractères avant que le contexte de langue soit défini et les éléments du menu apparaissaient dans la langue par défaut. La solution a été d'utilisée un proxy d'évaluation paresseuse.

Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.