9.7 KiB
Todo List - Module Portal Planning
1. Configuration initiale
-
1.1 Créer la structure de base du module
- Créer le fichier
__manifest__.pyavec les dépendances (planning, portal, timesheet) - Créer les dossiers de base (models, controllers, views, security, static)
- Créer le fichier
__init__.pyà la racine - Observation: La structure de base est déjà en place avec les dépendances nécessaires.
- Créer le fichier
-
1.2 Configurer les fichiers de sécurité
- Créer le fichier
security/portal_planning_security.xmlpour les groupes de sécurité - Créer le fichier
security/ir.model.access.csvpour les droits d'accès - Définir les règles de sécurité pour les utilisateurs du portail
- Observation: Les règles de sécurité de base sont en place, permettant aux utilisateurs du portail d'accéder à leurs propres créneaux de planning.
- Créer le fichier
-
1.3 Configurer les paramètres du module
- Créer le fichier
data/portal_planning_data.xmlpour les paramètres par défaut - Observation: Les paramètres par défaut ont été configurés, incluant les options d'approbation automatique et de génération de feuilles de temps.
- Créer le fichier
2. Extensions de modèles
-
2.1 Étendre le modèle
planning.slot- Ajouter les champs pour la modification via le portail
- Ajouter les champs pour la création via le portail
- Implémenter les méthodes de validation des modifications/créations
- Observation: Le modèle a été étendu avec tous les champs nécessaires et les méthodes pour gérer les modifications et confirmations via le portail.
-
2.2 Étendre le modèle
resource.resource- Ajouter les champs pour l'approbation automatique
- Observation: Le modèle a été étendu pour permettre la configuration de l'approbation automatique au niveau de la ressource.
-
2.3 Étendre le modèle
account.analytic.line(timesheet)- Ajouter les champs pour lier les entrées timesheet aux créneaux de planning
- Observation: Le modèle a été étendu pour lier les feuilles de temps aux créneaux de planning et gérer leur création automatique.
3. Nouveaux modèles
-
3.1 Créer le modèle
portal.planning.request- Définir les champs pour les demandes de planning
- Implémenter les méthodes de validation/refus
- Observation: Un modèle
portal.planning.requesta été créé à la place des modèlesportal.planning.modificationetportal.planning.creationinitialement prévus. Ce modèle gère les demandes de création de créneaux de planning par les utilisateurs du portail.
-
3.2 Créer le modèle
portal.planning.exchange- Définir les champs pour les demandes d'échange
- Implémenter les méthodes de validation/refus
- Observation: Le modèle a été créé avec tous les champs nécessaires et les méthodes pour gérer les demandes d'échange entre créneaux.
4. Contrôleurs
-
4.1 Étendre le contrôleur
portal.CustomerPortal- Implémenter la route
/my/planningpour afficher la liste des demandes de planning - Implémenter la route
/my/planning/<int:planning_id>pour afficher le détail d'une demande - Implémenter la route
/my/planning/createpour créer une nouvelle demande - Implémenter la route
/my/planning/submit/<int:planning_id>pour soumettre une demande - Implémenter la route
/my/planning/cancel/<int:planning_id>pour annuler une demande - Observation: Le contrôleur de base est implémenté pour gérer les demandes de planning, mais il manque les routes pour la gestion directe des créneaux de planning.
- Implémenter la route
-
4.2 Ajouter les routes pour la gestion des créneaux de planning
- Implémenter la route
/my/planning/slot/<int:slot_id>pour afficher un créneau - Implémenter la route
/my/planning/slot/<int:slot_id>/confirmpour confirmer un créneau - Implémenter la route
/my/planning/slot/<int:slot_id>/modifypour modifier un créneau - Implémenter la route
/my/planning/slot/<int:slot_id>/exchangepour échanger un créneau - Observation: Les routes pour la gestion des créneaux ont été implémentées dans le fichier
controllers/planning_slot.py.
- Implémenter la route
-
4.3 Créer le contrôleur pour l'API JSON
- Implémenter l'endpoint
/planning/slot/updatepour mettre à jour un créneau - Implémenter l'endpoint
/planning/slot/confirmpour confirmer un créneau - Implémenter l'endpoint
/planning/slot/exchange/requestpour demander un échange - Observation: Les endpoints JSON ont été implémentés dans le fichier
controllers/api.pypour permettre les interactions AJAX avec les créneaux de planning.
- Implémenter l'endpoint
5. Vues et templates
-
5.1 Créer les templates du portail pour les demandes de planning
- Intégrer le planning dans le portail (menu et breadcrumbs)
- Créer la vue d'ensemble des demandes de planning
- Créer la vue détaillée d'une demande de planning
- Créer le formulaire de création d'une demande
- Observation: Les templates de base pour la gestion des demandes de planning sont en place.
-
5.2 Créer les templates pour la gestion des créneaux de planning
- Créer la vue d'ensemble des créneaux de planning
- Créer la vue détaillée d'un créneau
- Créer le formulaire de modification d'un créneau
- Créer l'interface pour les échanges de créneaux
- Observation: Les templates pour la gestion des créneaux ont été créés dans les fichiers
views/portal_planning_slot_templates.xmletviews/portal_planning_exchange_templates.xml.
-
5.3 Créer les vues backend
- Créer les vues pour le modèle
portal.planning.request - Observation: Les vues backend pour le modèle
portal.planning.requestsont en place.
- Créer les vues pour le modèle
-
5.4 Compléter les vues backend
- Étendre les vues du modèle
planning.slotpour intégrer les fonctionnalités du portail - Créer les vues pour le modèle
portal.planning.exchange - Créer les vues pour le modèle
portal.planning.modification - Observation: Toutes les vues backend ont été créées pour les modèles du module.
- Étendre les vues du modèle
6. Fonctionnalités de confirmation et timesheet
-
6.1 Implémenter la confirmation des créneaux
- Développer la logique de confirmation
- Ajouter les notifications de confirmation
- Observation: La logique de confirmation des créneaux a été implémentée dans le modèle
planning.slot.
-
6.2 Implémenter la génération automatique des timesheets
- Développer la logique de vérification des entrées existantes
- Implémenter la création des entrées pour les périodes non couvertes
- Lier les entrées timesheet aux créneaux de planning
- Observation: La génération automatique des feuilles de temps a été implémentée dans le modèle
planning.slot.
7. Fonctionnalités de modification
- 7.1 Implémenter la modification des créneaux
- Développer la logique de validation des modifications
- Implémenter le processus d'approbation
- Ajouter les notifications de modification
- Observation: La logique de modification des créneaux a été implémentée dans le modèle
planning.slotetportal.planning.modification.
8. Fonctionnalités d'échange
- 8.1 Implémenter l'échange de créneaux
- Développer la logique de demande d'échange
- Implémenter le processus d'approbation
- Ajouter les notifications d'échange
- Observation: La logique d'échange des créneaux a été implémentée dans le modèle
portal.planning.exchange.
9. Interface utilisateur et expérience
-
9.1 Développer les assets frontend
- Créer les fichiers CSS pour le style du planning dans le portail
- Créer les fichiers JavaScript pour les interactions dynamiques
- Observation: Les assets frontend ont été développés pour améliorer l'expérience utilisateur dans le portail.
-
9.2 Implémenter la vue calendrier
- Intégrer une bibliothèque de calendrier (FullCalendar.js)
- Développer les interactions avec le calendrier
- Observation: La vue calendrier a été implémentée avec FullCalendar.js, permettant aux utilisateurs du portail de visualiser leur planning sous forme de calendrier interactif. Un endpoint API
/planning/api/slotsa été créé pour alimenter le calendrier avec les données des créneaux de planning.
10. Tests
-
10.1 Écrire les tests unitaires
- Tests pour les modèles
- Tests pour les contrôleurs
- Observation: Les tests unitaires ont été implémentés pour les principaux modèles du module (
portal.planning.request,portal.planning.exchange,planning.slot). Ces tests vérifient le bon fonctionnement des méthodes et des contraintes de validation.
-
10.2 Écrire les tests d'intégration
- Tests pour les workflows complets
- Tests pour les interactions entre modules
- Observation: Les tests d'intégration ont été implémentés pour vérifier les workflows complets (création, soumission, approbation) et les interactions entre les différents modules (planning, timesheet, mail, portal).
11. Documentation
-
11.1 Écrire la documentation technique
- Documentation des modèles et API
- Documentation des workflows
-
11.2 Écrire la documentation utilisateur
- Guide d'utilisation du portail planning
- Guide d'administration et configuration
12. Déploiement
-
12.1 Préparer le module pour le déploiement
- Vérifier les dépendances
- Tester l'installation sur un environnement propre
-
12.2 Créer les scripts de migration
- Script de migration pour les données existantes