Bousrhal Mohammed
Bousrhal Mohammed
Bousrhal Mohammed
On a d’abord créé les objets qu’ont déjà des modèles existant sur Odoo,
Nous avons créé l’objet Patient en l’associant le modèle contact.
Notre formulaire est déjà créé, mais seulement dans notre application on doit montrer que
les patients, donc on a ajouté une case à coucher nommée ‘Patient ?’, et on a choisi
‘Basculer’ comme widget.
Nous avons aussi créé un filtre nommé ‘Patient’ pour montrer que les patients, le Domaine
prend comme propriété ‘Patient ?’, si l’enregistrement contient le Patient comme vrai il
s’affichera dans la liste des patients
Nous avons créé l’objet Médecin en l’associant le modèle Employé.
Quand on clique sur Médecin il va nous faire apparaitre tous les employés, donc on a créé un filtre
‘Médecin’.
Le Domaine prend comme propriété Poste occupé, donc si le Poste occupé est ‘Médecin’
comme vrai il s’affichera dans la liste des médecins
Et pour le rendez-vous on l’associé au modèle Calendrier de l’événement.
Pour les participants des rendez-vous ils vont être les patients et les médecins.
On peut paramétrer les options pour savoir combien de fois le patient va venir chez le médecin en
cliquant sur le widget Récurrent.
Pour ajouter les médecins comme participants on a défini le champs ‘many2one’ dans Détails de
l’événements, on choisit Employé comme Propriétés du champ et on a créé un filtre ‘Médecin’.
Le Domaine prend comme propriété Poste occupé, donc on va afficher que les ‘Médecin’ et
les ‘Patients’ dans les participants.
Pour les objets qui n’ont pas des modèles déjà existés sur Odoo, Nous avons les crées à
l’aide des Scripts Python.
Etant donné qu’Odoo est développé principalement en utilisant le langage Python, il est
possible d’utiliser n'importe quel éditeur qui supporte la colorisation syntaxique, comme
IDLE, note++, etc. pour le codage et le test des modules Odoo.
Dans cet article, nous allons utiliser un éditeur puissant qui est largement utilisé par la
communauté des développeurs Odoo qui est Pycharm.
Nous avons Créé un dossier ‘odoo-addons’ pour les nouveaux modules.
Puis on prend une copie de odoo.conf, et on la copie sur le nouveau dossier pour l’utiliser
par la suite.
Configuration Python interpreter :
log_db_level = warning
log_handler = :INFO
log_level = info
logfile =C:\Users\hp\OneDrive\Desktop\odoo-addons\odoo.log
longpolling_port = 8072
max_cron_threads = 2
osv_memory_age_limit = False
osv_memory_count_limit = False
pg_path = C:\Program Files\Odoo 14.0.20220106\PostgreSQL\bin
pidfile =
proxy_mode = False
reportgz = False
screencasts =
screenshots = C:\Users\hp\OneDrive\Desktop\odoo-addons\Temp\odoo_tests
server_wide_modules = base,web
smtp_password = False
smtp_port = 25
smtp_server = localhost
smtp_ssl = False
smtp_user = False
syslog = False
test_enable = False
test_file =
test_tags = None
transient_age_limit = 1.0
translate_modules = ['all']
unaccent = False
upgrade_path =
without_demo = False
workers = None
Les modèles :
Quatre fichiers sont principalement nécessaires pour créer un nouveau module (les fichiers .py
ou .xml peuvent être exclus en fonction des besoins).
__init__.py
Dans le fichier __init__.py, nous devons importer tous les fichiers python que nous allons utiliser.
Supposons que nous ayons un fichier python appelé model.py dans notre module. La première chose
que nous devons faire est d'importer model.py dans le fichier __init__.py.
__manifest__.py
Dans le __manifest__.py, nous devons mentionner le nom du module, le nom de l'auteur, la version,
la description, l'entreprise, la catégorie, etc.
model.py
Dans ce fichier, nous devons concevoir un nouveau modèle pour stocker les valeurs de patient par
exemple, que ce soit patient.patient. En créant un nouveau modèle, une table sera générée dans la
base de données.
Dans le modèle, nous devons déclarer tous les champs que nous allons utiliser dans cette table.
view.xml
Comme nous avons défini tous les champs nécessaires dans le fichier model.py, nous devons
maintenant créer une vue pour cela. Comment l'utilisateur doit-il voir cela, il doit y avoir le champ du
nom ? Une telle chose peut être définie dans le fichier view.xml.
Maintenant, nous avons créé une table dans la base de données, ici nous devons définir comment
elle doit être dans l'interface utilisateur et sous quel menu elle doit être, etc. Dans notre cas, nous
allons créer un nouveau menu appelé config et sous config, nous pouvons créer un sous-menu
appelé symptôme, diagnostic etc.
1- Diagnostic
Le fichier __init__.py
import model
Le fichier __manifest__.py
{
'name': 'Diagnoostic',
'summary': """il contient toutes les diagnostiques des patients""",
'version': '10.0.1.0.0',
'description': """il contient toutes les diagnostiques des patients""",
'author': 'Bousrhal Mohammed',
'company': 'Cabinet Médical Bousrhal',
'category': 'Tools',
'depends': ['base'],
'license': 'AGPL-3',
'data': [
'view.xml',
],
'demo': [],
'installable': True,
'auto_install': False,
}
Le fichier model.py
from odoo import models, fields
class fichiers(models.Model):
diag_name = "diag.diag"
diagnostic_scann= fields.Binary(string='Photo')
Le fichier views.xml
<?xml version="1.0" encoding="UTF-8"?>
<odoo>
<data>
<menuitem id="menu_cabinet" name="Cabinet Médical Bousrhal"/>
<menuitem id="Cabinet" name="Patient" parent="menu_cabinet"
action="action_view_patient"/>
</data>
</odoo>
2- Fichiers
Le fichier __init__.py
import model
Le fichier __manifest__.py
{
'name': 'fichiers',
'summary': """il contient les comptes rendus des analyses ou les images
cray etc...""",
'version': '10.0.1.0.0',
'description': """il contient les comptes rendus des analyses ou les
images cray etc...""",
'author': 'Bousrhal Mohammed',
'company': 'Cabinet Médical Bousrhal',
'category': 'Tools',
'depends': ['base'],
'license': 'AGPL-3',
'data': [
'view.xml',
],
'demo': [],
'installable': True,
'auto_install': False,
}
Le fichier model.py
from odoo import models, fields
class fichiers(models.Model):
doc_name = "doc.doc"
name = fields.Char(string='Name', required=True)
doc_scan = fields.Binary(string='Photo')
Le fichier views.xml
<?xml version="1.0" encoding="UTF-8"?>
<odoo>
<data>
<menuitem id="menu_cabinet" name="Cabinet Médical Bousrhal"/>
<menuitem id="Cabinet" name="Patient" parent="menu_cabinet"
action="action_view_patient"/>
</data>
</odoo>
3- Ordonnance
Le fichier __init__.py
import model
Le fichier __manifest__.py
'name': 'Ordonnance',
'summary': """il contient les ordonnaces de tous les patients """,
'version': '10.0.1.0.0',
'description': """il contient les ordonnaces de tous les patients""",
'author': 'Bousrhal Mohammed',
'company': 'Cabinet Médical Bousrhal',
'category': 'Tools',
'depends': ['base'],
'license': 'AGPL-3',
'data': [
'view.xml',
],
'demo': [],
'installable': True,
'auto_install': False,
Le fichier model.py
from odoo import models, fields
class fichiers(models.Model):
ordonnance_name = "ordonnance.ordonnance"
ordonnance_name = fields.Char(string='Name', required=True)
scann_photo = fields.Binary(string='Photo')
Le fichier views.xml
<?xml version="1.0" encoding="UTF-8"?>
<odoo>
<data>
<menuitem id="menu_cabinet" name="Cabinet Médical Bousrhal"/>
<menuitem id="Cabinet" name="Patient" parent="menu_cabinet"
action="action_view8patient"/>
</data>
</odoo>
4- Symptôme
Le fichier __init__.py
import model
Le fichier __manifest__.py
{
'name': 'Symptomes',
'summary': """il contient les symptomes de chaque maladies""",
'version': '10.0.1.0.0',
'description': """il contient les symptomes de chaque maladies""",
'author': 'Bousrhal Mohammed',
'company': 'Cabinet Médical Bousrhal',
'category': 'Tools',
'depends': ['base'],
'license': 'AGPL-3',
'data': [
'view.xml',
],
'demo': [],
'installable': True,
'auto_install': False,
}
Le fichier model.py
from odoo import models, fields
class fichiers(models.Model):
symp_name = "symp.symp"
name = fields.Char(string='Name', required=True)
Le fichier views.xml
<?xml version="1.0" encoding="UTF-8"?>
<odoo>
<data>
<menuitem id="menu_cabinet" name="Cabinet Médical Bousrhal"/>
<menuitem id="Cabinet" name="Patient" parent="menu_cabinet"
action="action_view_patient"/>
</data>
</odoo>