Makina Blog
EasyERP, la saisie de tâches "maison"
Ou comment résoudre vos problèmes par vous-même
Cet article fait partie de notre calendrier de l'Avent 2014 dans lequel on vous a parlé de nos Makina Days, EasyERP a été créé dans le cadre de ces jours spéciaux.
Le problème
Même si chez Makina, nous sommes tous plus ou moins experts en open-source, nous ne pouvons maitriser la totalité des outils open-source existant dans l'ecosystème libre. Or, pour la saisie de tâches et le pointage, nous reposons sur OpenERP, outil libre pour la gestion de ressources en entreprise.
Cet outil est complet, et cela va de pair avec "complexe", voici par exemple la méthode pour aller pointer sur une tâche :
- Se connecter
- Aller dans les projets
- Editer la tâche
- Ajouter un enregistrement
- Saisir cet enregistrement
5 actions, pour la saisie d'une tâche, en soi, c'est pas si compliqué. Là où ça se corse, c'est lorsque l'on pointe plusieurs fois dans un seule journée sur des tâches différentes, il faut alors répéter depuis l'étape 2 pour autant de tâches que nécessaire.
Pour le pointage de congé, on a recensé à peu près les mêmes étapes, sauf qu'il faut créer une entrée par jour de congé et de même pour les (mauvais) employés qui pointent tout en fin de mois seulement, cette procédure peut donc prendre jusqu'à une demi-heure pour tout le mois, un calvaire donc.
D'autre part, il n'y a aucun moyen simple d'avoir une vue globale de nos pointages sur le mois entier à part celle-ci :
La solution
L'idée ici n'est pas de critiquer OpenERP, je suis sûr que des experts sauraient configurer l'outil pour améliorer l'utilisation au quotidien, via des raccourcis ou autres. Au contraire, OpenERP fournit une très bonne API en XML-RPC afin de le contrôler d'une autre application. Hors, des applications, on sait faire ! Nous avons donc choisi de créer un service pour pointer avec Django, qui faciliterait l'utilisation et la visualisation des pointages, avec en prime une possibilité de pointer sur son mobile.
L'application se base sur la bibliothèque oerplib pour dialoguer avec le back-office/arrière-guichet d'OpenERP, et présenter les données en front via Bootstrap et quelques plugins pour la saisie et l'affichage : daterangepicker, calendar, select2.
La visualisation
La visualisation se fait sous forme de calendrier, avec pour chaque jour, un carré vert si le jour est pointé totalement, rond jaune s'il est incomplet, un résumé de ce qui reste à pointer en bas à gauche, la possibilité de faire défiler les mois.
Le clic sur un jour affiche le détail des tâches pointées ce jour :
La saisie
La saisie peut se faire directement via une popup en cliquant sur un jour vide ou incomplet :
Ou bien via une page dédiée, permettant la saisie sur des périodes, idéal pour les congés, les régies et les formations :
Conclusion
En déportant cette fonctionnalité dans notre propre application, cela nous permet d'avoir le contrôle total de notre expérience utilisateur et coller à nos besoins les plus spécifiques.
Ce projet a donné naissance à de nombreuses idées notamment pour nos administrateurs qui peuvent à présent visualiser des rapports détaillés sur la performance et le statut de l'entreprise.
Les API, c'est la vie.
Actualités en lien
Utiliser des fonctions PostgreSQL dans des contraintes Django
Cet article vous présente comment utiliser les fonctions et les check constraints
PostgreSQL en tant que contrainte sur vos modèles Django.
Comment migrer vers une version récente de Django ?
Que ce soit pour avoir les dernières fonctionnalités ou les correctifs de sécurité, rester sur une version récente de Django est important pour la pérennité de son projet.
Le projet Agrégateur : fusionner des bases de données Geotrek
Le partage et la diffusion des données font partie des problématiques historiques au cœur du projet Geotrek.