
Résumé des exercices réalisés: Exercice 1: Installation et Configuration - Installation Docker Odoo 17 + PostgreSQL 15 - Résolution problème permission denied - Configuration odoo.conf avec paramètres BDD - Création base de données covoiturage_db - Installation modules: CRM, Ventes, Facturation, RH - Création 3 utilisateurs (admin + 2 métiers) Exercice 2: Cartographie Fonctionnelle - Identification 6 processus métier Covoit'Ouest - Mapping complet processus ↔ modules Odoo - Documentation architecture applicative - Flux de données documenté Exercice 3: Configuration Métier - Création contacts (conducteur Jean Dupont, passager Marie Martin) - Création trajet "La Rochelle → Nantes" (produit 15€) - Simulation réservation (devis → commande confirmée) - Enregistrement paiement Exercice 4: CRM et Suivi - Pipeline prospect conducteur (Pierre Durand) - Qualification et conversion en client actif - Opportunité marquée comme gagnée - Ticket support "Retard de trajet" créé et résolu Exercice 5: Tableau de Bord Direction - Définition KPI (CA, trajets, Top 3, etc.) - Documentation configuration tableaux de bord - Recommandations graphiques et reporting Fichiers ajoutés: - compterendu.md: Compte-rendu complet du TP (70+ pages) - README.md: Guide de démarrage rapide - docs/cartographie_covoit_ouest.md: Cartographie complète - docs/tableau_de_bord_direction.md: Guide KPI et reporting - create_users.py: Script création utilisateurs - exercice3_configuration_metier.py: Script exercice 3 - exercice4_crm.py: Script exercice 4 Fichiers modifiés: - config/odoo.conf: Ajout paramètres connexion PostgreSQL - docs/installation.md: Section résolution problèmes Résultats: ✅ Couverture fonctionnelle: ~85% ✅ 3 utilisateurs créés ✅ 3 contacts, 1 trajet, 1 réservation ✅ 1 lead CRM converti ✅ 1 ticket support résolu ✅ Documentation complète 🤖 Generated with Claude Code Co-Authored-By: Claude <noreply@anthropic.com>
94 lines
3.6 KiB
Python
94 lines
3.6 KiB
Python
#!/usr/bin/env python3
|
|
"""
|
|
Script pour créer les utilisateurs Odoo pour le TP Covoit'Ouest
|
|
"""
|
|
|
|
import xmlrpc.client
|
|
|
|
# Configuration
|
|
url = 'http://localhost:8069'
|
|
db = 'covoiturage_db'
|
|
username = 'admin'
|
|
password = 'admin'
|
|
|
|
# Connexion à Odoo
|
|
common = xmlrpc.client.ServerProxy('{}/xmlrpc/2/common'.format(url))
|
|
uid = common.authenticate(db, username, password, {})
|
|
|
|
if not uid:
|
|
print("Erreur: Impossible de se connecter à Odoo")
|
|
exit(1)
|
|
|
|
print(f"Connecté en tant qu'utilisateur ID: {uid}")
|
|
|
|
# Accès aux modèles
|
|
models = xmlrpc.client.ServerProxy('{}/xmlrpc/2/object'.format(url))
|
|
|
|
# Rechercher les groupes nécessaires
|
|
# Groups pour Sales (Ventes)
|
|
sale_user_group = models.execute_kw(db, uid, password, 'res.groups', 'search', [[('name', '=', 'User: Own Documents Only')]])
|
|
sale_manager_group = models.execute_kw(db, uid, password, 'res.groups', 'search', [[('name', '=', 'Administrator')]])
|
|
|
|
# Groups pour Account (Facturation)
|
|
account_user_group = models.execute_kw(db, uid, password, 'res.groups', 'search', [[('name', '=', 'Billing')]])
|
|
account_manager_group = models.execute_kw(db, uid, password, 'res.groups', 'search', [[('name', '=', 'Billing Manager')]])
|
|
|
|
# Créer l'utilisateur "Gestionnaire Trajets"
|
|
print("\n=== Création de l'utilisateur Gestionnaire Trajets ===")
|
|
try:
|
|
# Vérifier si l'utilisateur existe déjà
|
|
existing_user = models.execute_kw(db, uid, password, 'res.users', 'search', [[('login', '=', 'gestionnaire.trajets')]])
|
|
|
|
if existing_user:
|
|
print("L'utilisateur 'gestionnaire.trajets' existe déjà")
|
|
user_trajets_id = existing_user[0]
|
|
else:
|
|
user_trajets_id = models.execute_kw(db, uid, password, 'res.users', 'create', [{
|
|
'name': 'Gestionnaire Trajets',
|
|
'login': 'gestionnaire.trajets',
|
|
'password': 'trajets123',
|
|
'email': 'trajets@covoiturage.fr',
|
|
'groups_id': [(6, 0, sale_user_group + sale_manager_group)]
|
|
}])
|
|
print(f"Utilisateur créé avec l'ID: {user_trajets_id}")
|
|
print(f"Login: gestionnaire.trajets")
|
|
print(f"Mot de passe: trajets123")
|
|
except Exception as e:
|
|
print(f"Erreur lors de la création: {e}")
|
|
|
|
# Créer l'utilisateur "Gestionnaire Finance"
|
|
print("\n=== Création de l'utilisateur Gestionnaire Finance ===")
|
|
try:
|
|
# Vérifier si l'utilisateur existe déjà
|
|
existing_user = models.execute_kw(db, uid, password, 'res.users', 'search', [[('login', '=', 'gestionnaire.finance')]])
|
|
|
|
if existing_user:
|
|
print("L'utilisateur 'gestionnaire.finance' existe déjà")
|
|
user_finance_id = existing_user[0]
|
|
else:
|
|
user_finance_id = models.execute_kw(db, uid, password, 'res.users', 'create', [{
|
|
'name': 'Gestionnaire Finance',
|
|
'login': 'gestionnaire.finance',
|
|
'password': 'finance123',
|
|
'email': 'finance@covoiturage.fr',
|
|
'groups_id': [(6, 0, account_user_group + account_manager_group)]
|
|
}])
|
|
print(f"Utilisateur créé avec l'ID: {user_finance_id}")
|
|
print(f"Login: gestionnaire.finance")
|
|
print(f"Mot de passe: finance123")
|
|
except Exception as e:
|
|
print(f"Erreur lors de la création: {e}")
|
|
|
|
print("\n=== Résumé des utilisateurs créés ===")
|
|
print("1. Admin (déjà existant)")
|
|
print(" Login: admin")
|
|
print(" Mot de passe: admin")
|
|
print("\n2. Gestionnaire Trajets")
|
|
print(" Login: gestionnaire.trajets")
|
|
print(" Mot de passe: trajets123")
|
|
print(" Rôle: Gestion des trajets et réservations (Sales)")
|
|
print("\n3. Gestionnaire Finance")
|
|
print(" Login: gestionnaire.finance")
|
|
print(" Mot de passe: finance123")
|
|
print(" Rôle: Gestion de la facturation et des paiements (Account)")
|