SlideShare une entreprise Scribd logo
Microcom - Meetup Odoo Technique
Tree view
Comment modifier le style des
rangées dans un tree view
Microcom - Meetup Odoo Technique
Avant 9.0
2
Microcom - Meetup Odoo Technique 3
• Un tree view standard.
• L’attribut “colors” dans la balise “tree” avec un genre de dictionnaire: color:expr[,. . .].
• “color” peut être n’importe quel couleur CSS.
• “expr” doit être une expression python qui évalue à vrai ou à faux à partir des champs de
l’enregistrement traitée.
Microcom - Meetup Odoo Technique
Après 9.0
• L’attribut “colors” est fonctionnel, mais est désuet "deprecated" et risque de disparaître.
• Il a été remplacé par “decoration-{name}” ou name peut être:
• bf (caractères gras)
• it (caractères italic)
• couleurs bootstrap:
– danger
– info
– muted
– primary
– success
– warning
• Chaque attribut “decoration-{name}” contient une seule expression, contrairement à l’attribut
“colors”.
4
Microcom - Meetup Odoo Technique 5
Microcom - Meetup Odoo Technique
Le problème?
C’est limité…
6
Microcom - Meetup Odoo Technique
Solution #1
Un petit “hack” vite fait, bien fait.
7
Microcom - Meetup Odoo Technique
La manière dont Odoo traite les “decorations”
• addons/web/static/src/xml/base.xml (~ ligne 431)
8
Microcom - Meetup Odoo Technique
• addons/web/static/src/js/views/list_view.js (~ ligne 189)
9
Qu’est-ce que “compute_decoration_classnames”
Microcom - Meetup Odoo Technique
Qu’est-ce que “this.decoration”
• addons/web/static/src/js/views/list_view.js (~ ligne 226)
10
Microcom - Meetup Odoo Technique
Qu’est-ce que “row_decoration”
• addons/web/static/src/js/views/list_view.js (~ ligne 24)
11
Microcom - Meetup Odoo Technique
Bref
• Si l’expression est évaluée à vrai pour la rangée traitée, Odoo ajoute une classe css ayant le
format: text-{name}
12
Microcom - Meetup Odoo Technique
Idée!
• “Overloader” la classe list_view.js
• Ajouter des éléments dans le tableau “row-decoration”
• Modifier la fonction “compute_decoration_classnames” pour traiter nos nouveaux éléments
• Créer notre propre fichier css pour styliser nos nouvelles classes
13
Microcom - Meetup Odoo Technique
Overloader list_view.js étape 1
• Dans une view de votre module:
14
Microcom - Meetup Odoo Technique
Overloader list_view.js étape 2
• Créer un fichier sous nom_module/static/src/js/mon_fichier.js et “étendre” listView
15
Microcom - Meetup Odoo Technique
Overloader list_view.js étape 3
• Copier la fonction “compute_decoration_classnames” et l’ajuster à nos besoins.
16
Microcom - Meetup Odoo Technique
Overloader list_view.js étape 4
• Copier le tableau “row_decoration” et ajouter nos décorations customs. (ajouter avant le include)
17
Microcom - Meetup Odoo Technique
Overloader list_view.js étape 5
• Copier la fonction “load_list” même si on ne la modifie pas, car on veut qu’elle utilise notre
nouveau tableau “row_decoration”. (ici, la fonction n’est pas en entier, faute d’espace….)
18
Microcom - Meetup Odoo Technique
Créer notre fichier css
• créer un fichier sous nom_module/static/src/css/mon_fichier.css et appliquer un style à nos nouvelles
classes.
19
Microcom - Meetup Odoo Technique
Ajouter notre fichier css à la view
• Ne pas oublier de mettre les paths apropriés à votre projet...
20
Microcom - Meetup Odoo Technique
Voilà
• Vous pouvez maintenant utiliser vos nouveaux attributs dans un tree view.
21
Microcom - Meetup Odoo Technique
Un beau sapin de noël!
22
Microcom - Meetup Odoo Technique
solution #2
• Utiliser le module “web_tree_dynamic_colored_field” de l’OCA.
https://github.com/OCA/web/tree/9.0/web_tree_dynamic_colored_field
• À noter qu’il n’est pas encore porté à la version 9.0 … (en date du 27/05/2016)
• Permet la coloration du texte avec l’attribut “fg-color” et la coloration du background avec
l’attribut “bg-color”
• Ils s’utilisent de la même manière que l’attribut “colors” de la version 8.0 à une différence près:
– Ils s’utilisent dans la balise “field” et non dans la balise “tree”...
• Avantage: On peut colorer seulement une partie d’une rangée (plus de contrôle / granularité)
• Inconvénient: Si on veut colorer toute la rangée, on doit répéter l’attribut dans tous les fields
23
Microcom - Meetup Odoo Technique 24
Voici un exemple d’utilisation
Microcom - Meetup Odoo Technique
Désolé de l’atrocité… je n’avais pas trop d’inspiration...
25
Microcom - Meetup Odoo Technique
Morale de l’histoire
• Quand on a un besoin spécifique: toujours regarder les repos de l’OCA pour voir s’il n’existerait
pas déjà un module qui pourrait répondre à vos besoins.
• Mais, parfois, un petit “hack” est nécessaire pour arriver a un résultat plus personnalisé...
26
Microcom - Meetup Odoo Technique
• Les sources du module sont accessibles sur github:
https://github.com/microcom/Odoo_Basic_AddOns/tree/9.0/custom_treeview_colors
Merci
27

Contenu connexe

Tendances

Formation Linux - Initiation
Formation Linux - InitiationFormation Linux - Initiation
Formation Linux - Initiation
robertpluss
 
Gestion comptes bancaires Spring boot
Gestion comptes bancaires Spring bootGestion comptes bancaires Spring boot
Gestion comptes bancaires Spring boot
Abdelhakim HADI ALAOUI
 
diagramme des cas d'utilisation
diagramme des cas d'utilisationdiagramme des cas d'utilisation
diagramme des cas d'utilisation
Amir Souissi
 
Support de cours Spring M.youssfi
Support de cours Spring  M.youssfiSupport de cours Spring  M.youssfi
Support de cours Spring M.youssfi
ENSET, Université Hassan II Casablanca
 
Appalications JEE avec Servlet/JSP
Appalications JEE avec Servlet/JSPAppalications JEE avec Servlet/JSP
Appalications JEE avec Servlet/JSP
Youness Boukouchi
 
Presentation bpel
Presentation bpelPresentation bpel
Presentation bpel
Anasse Ej
 
Workshop spring session 2 - La persistance au sein des applications Java
Workshop spring   session 2 - La persistance au sein des applications JavaWorkshop spring   session 2 - La persistance au sein des applications Java
Workshop spring session 2 - La persistance au sein des applications JavaAntoine Rey
 
Examen principal- php - correction
Examen principal- php - correctionExamen principal- php - correction
Examen principal- php - correction
Ines Ouaz
 
Expo diagramme cas d'utilisation
Expo diagramme cas d'utilisationExpo diagramme cas d'utilisation
Expo diagramme cas d'utilisationaminooovich
 
Cours 3 les directives
Cours 3 les directivesCours 3 les directives
Cours 3 les directives
Aymen Sellaouti
 
J'ai fait une app native en React Native
J'ai fait une app native en React NativeJ'ai fait une app native en React Native
J'ai fait une app native en React Native
CocoaHeads France
 
Application de gestion des projets en J2EE (Spring-Hibernate) avec architectu...
Application de gestion des projets en J2EE (Spring-Hibernate) avec architectu...Application de gestion des projets en J2EE (Spring-Hibernate) avec architectu...
Application de gestion des projets en J2EE (Spring-Hibernate) avec architectu...
Saâd Zerhouni
 
POO Java Introduction
POO Java IntroductionPOO Java Introduction
POO Java Introduction
Mouna Torjmen
 
Manuel pour les utilisateurs de Zimbra
Manuel pour les utilisateurs de ZimbraManuel pour les utilisateurs de Zimbra
Manuel pour les utilisateurs de Zimbra
Gestion-Ressources Inc.
 
Développement d'un site web jee de e commerce basé sur spring (m.youssfi)
Développement d'un site web jee de e commerce basé sur spring (m.youssfi)Développement d'un site web jee de e commerce basé sur spring (m.youssfi)
Développement d'un site web jee de e commerce basé sur spring (m.youssfi)
ENSET, Université Hassan II Casablanca
 
Application de gestion de transaction d’une banque(PFA 1 ENSIT)
Application de gestion de transaction d’une banque(PFA 1 ENSIT)Application de gestion de transaction d’une banque(PFA 1 ENSIT)
Application de gestion de transaction d’une banque(PFA 1 ENSIT)
litayem bechir
 
Uml Cas Utilisation introduction
Uml Cas Utilisation introductionUml Cas Utilisation introduction
Uml Cas Utilisation introduction
Mireille Blay-Fornarino
 
Formation jpa-hibernate-spring-data
Formation jpa-hibernate-spring-dataFormation jpa-hibernate-spring-data
Formation jpa-hibernate-spring-data
Lhouceine OUHAMZA
 
Support JEE Servlet Jsp MVC M.Youssfi
Support JEE Servlet Jsp MVC M.YoussfiSupport JEE Servlet Jsp MVC M.Youssfi
Support JEE Servlet Jsp MVC M.Youssfi
ENSET, Université Hassan II Casablanca
 
Examen principal - PHP
Examen principal - PHPExamen principal - PHP
Examen principal - PHP
Ines Ouaz
 

Tendances (20)

Formation Linux - Initiation
Formation Linux - InitiationFormation Linux - Initiation
Formation Linux - Initiation
 
Gestion comptes bancaires Spring boot
Gestion comptes bancaires Spring bootGestion comptes bancaires Spring boot
Gestion comptes bancaires Spring boot
 
diagramme des cas d'utilisation
diagramme des cas d'utilisationdiagramme des cas d'utilisation
diagramme des cas d'utilisation
 
Support de cours Spring M.youssfi
Support de cours Spring  M.youssfiSupport de cours Spring  M.youssfi
Support de cours Spring M.youssfi
 
Appalications JEE avec Servlet/JSP
Appalications JEE avec Servlet/JSPAppalications JEE avec Servlet/JSP
Appalications JEE avec Servlet/JSP
 
Presentation bpel
Presentation bpelPresentation bpel
Presentation bpel
 
Workshop spring session 2 - La persistance au sein des applications Java
Workshop spring   session 2 - La persistance au sein des applications JavaWorkshop spring   session 2 - La persistance au sein des applications Java
Workshop spring session 2 - La persistance au sein des applications Java
 
Examen principal- php - correction
Examen principal- php - correctionExamen principal- php - correction
Examen principal- php - correction
 
Expo diagramme cas d'utilisation
Expo diagramme cas d'utilisationExpo diagramme cas d'utilisation
Expo diagramme cas d'utilisation
 
Cours 3 les directives
Cours 3 les directivesCours 3 les directives
Cours 3 les directives
 
J'ai fait une app native en React Native
J'ai fait une app native en React NativeJ'ai fait une app native en React Native
J'ai fait une app native en React Native
 
Application de gestion des projets en J2EE (Spring-Hibernate) avec architectu...
Application de gestion des projets en J2EE (Spring-Hibernate) avec architectu...Application de gestion des projets en J2EE (Spring-Hibernate) avec architectu...
Application de gestion des projets en J2EE (Spring-Hibernate) avec architectu...
 
POO Java Introduction
POO Java IntroductionPOO Java Introduction
POO Java Introduction
 
Manuel pour les utilisateurs de Zimbra
Manuel pour les utilisateurs de ZimbraManuel pour les utilisateurs de Zimbra
Manuel pour les utilisateurs de Zimbra
 
Développement d'un site web jee de e commerce basé sur spring (m.youssfi)
Développement d'un site web jee de e commerce basé sur spring (m.youssfi)Développement d'un site web jee de e commerce basé sur spring (m.youssfi)
Développement d'un site web jee de e commerce basé sur spring (m.youssfi)
 
Application de gestion de transaction d’une banque(PFA 1 ENSIT)
Application de gestion de transaction d’une banque(PFA 1 ENSIT)Application de gestion de transaction d’une banque(PFA 1 ENSIT)
Application de gestion de transaction d’une banque(PFA 1 ENSIT)
 
Uml Cas Utilisation introduction
Uml Cas Utilisation introductionUml Cas Utilisation introduction
Uml Cas Utilisation introduction
 
Formation jpa-hibernate-spring-data
Formation jpa-hibernate-spring-dataFormation jpa-hibernate-spring-data
Formation jpa-hibernate-spring-data
 
Support JEE Servlet Jsp MVC M.Youssfi
Support JEE Servlet Jsp MVC M.YoussfiSupport JEE Servlet Jsp MVC M.Youssfi
Support JEE Servlet Jsp MVC M.Youssfi
 
Examen principal - PHP
Examen principal - PHPExamen principal - PHP
Examen principal - PHP
 

En vedette

Colorer la vue Kanban dans Odoo v9.0
Colorer la vue Kanban dans Odoo v9.0Colorer la vue Kanban dans Odoo v9.0
Colorer la vue Kanban dans Odoo v9.0
Microcom Informatique Inc.
 
Paie Algérienne odoo
Paie Algérienne odooPaie Algérienne odoo
Paie Algérienne odoo
Yacine Bensidhoum
 
Paramétrage et développement spécifique des modules odoo(OpenERP) Partie 1
Paramétrage et développement spécifique des modules odoo(OpenERP) Partie 1Paramétrage et développement spécifique des modules odoo(OpenERP) Partie 1
Paramétrage et développement spécifique des modules odoo(OpenERP) Partie 1
Addi Ait-Mlouk
 
Dynamics Day 2013 Microsoft Dynamics NAV Tips and Tricks 45 in 45
Dynamics Day 2013 Microsoft Dynamics NAV Tips and Tricks 45 in 45Dynamics Day 2013 Microsoft Dynamics NAV Tips and Tricks 45 in 45
Dynamics Day 2013 Microsoft Dynamics NAV Tips and Tricks 45 in 45
Intergen
 
Paramétrage et développement spécifique des modules odoo (OpenERP) Partie 1
Paramétrage et développement spécifique des modules odoo (OpenERP) Partie 1Paramétrage et développement spécifique des modules odoo (OpenERP) Partie 1
Paramétrage et développement spécifique des modules odoo (OpenERP) Partie 1
Addi Ait-Mlouk
 
Microsoft Dynamics NAV Training
Microsoft Dynamics NAV TrainingMicrosoft Dynamics NAV Training
Microsoft Dynamics NAV Training
RAMESH KUMAR S
 
Odoo (OpenERP) - Creating a module
Odoo (OpenERP) - Creating a moduleOdoo (OpenERP) - Creating a module
Odoo (OpenERP) - Creating a module
Tarun Behal
 
L’approvisionnement et La gestion des Stocks dans OpenERP
L’approvisionnement et La gestion des Stocks dans OpenERPL’approvisionnement et La gestion des Stocks dans OpenERP
L’approvisionnement et La gestion des Stocks dans OpenERP
ENSAM Casablanca
 

En vedette (8)

Colorer la vue Kanban dans Odoo v9.0
Colorer la vue Kanban dans Odoo v9.0Colorer la vue Kanban dans Odoo v9.0
Colorer la vue Kanban dans Odoo v9.0
 
Paie Algérienne odoo
Paie Algérienne odooPaie Algérienne odoo
Paie Algérienne odoo
 
Paramétrage et développement spécifique des modules odoo(OpenERP) Partie 1
Paramétrage et développement spécifique des modules odoo(OpenERP) Partie 1Paramétrage et développement spécifique des modules odoo(OpenERP) Partie 1
Paramétrage et développement spécifique des modules odoo(OpenERP) Partie 1
 
Dynamics Day 2013 Microsoft Dynamics NAV Tips and Tricks 45 in 45
Dynamics Day 2013 Microsoft Dynamics NAV Tips and Tricks 45 in 45Dynamics Day 2013 Microsoft Dynamics NAV Tips and Tricks 45 in 45
Dynamics Day 2013 Microsoft Dynamics NAV Tips and Tricks 45 in 45
 
Paramétrage et développement spécifique des modules odoo (OpenERP) Partie 1
Paramétrage et développement spécifique des modules odoo (OpenERP) Partie 1Paramétrage et développement spécifique des modules odoo (OpenERP) Partie 1
Paramétrage et développement spécifique des modules odoo (OpenERP) Partie 1
 
Microsoft Dynamics NAV Training
Microsoft Dynamics NAV TrainingMicrosoft Dynamics NAV Training
Microsoft Dynamics NAV Training
 
Odoo (OpenERP) - Creating a module
Odoo (OpenERP) - Creating a moduleOdoo (OpenERP) - Creating a module
Odoo (OpenERP) - Creating a module
 
L’approvisionnement et La gestion des Stocks dans OpenERP
L’approvisionnement et La gestion des Stocks dans OpenERPL’approvisionnement et La gestion des Stocks dans OpenERP
L’approvisionnement et La gestion des Stocks dans OpenERP
 

Similaire à Comment modifier le style des Tree View dans Odoo.

Mappingobjetrelationnel[1]
Mappingobjetrelationnel[1]Mappingobjetrelationnel[1]
Mappingobjetrelationnel[1]linasafaa
 
Comment évaluer la qualité d'un site web selon les techniques d'intégration w...
Comment évaluer la qualité d'un site web selon les techniques d'intégration w...Comment évaluer la qualité d'un site web selon les techniques d'intégration w...
Comment évaluer la qualité d'un site web selon les techniques d'intégration w...
Renoir Boulanger
 
Devoxx France 2013: CSS, more or Less - http://www.devoxx.com/display/FR13/CS...
Devoxx France 2013: CSS, more or Less - http://www.devoxx.com/display/FR13/CS...Devoxx France 2013: CSS, more or Less - http://www.devoxx.com/display/FR13/CS...
Devoxx France 2013: CSS, more or Less - http://www.devoxx.com/display/FR13/CS...
VISEO
 
Microsoft business-intelligence
Microsoft business-intelligenceMicrosoft business-intelligence
Microsoft business-intelligence
BENJID Mohamed
 
Réussir une montée en charge avec MongoDB
Réussir une montée en charge avec MongoDBRéussir une montée en charge avec MongoDB
Réussir une montée en charge avec MongoDB
MongoDB
 
Css.more.or.less
Css.more.or.lessCss.more.or.less
Css.more.or.less
VISEO
 
Tout savoir sur l'éditeur de site WordPress
Tout savoir sur l'éditeur de site WordPressTout savoir sur l'éditeur de site WordPress
Tout savoir sur l'éditeur de site WordPress
Alexandre Buffet
 
Revit TUTO IUT
Revit TUTO IUTRevit TUTO IUT
Revit TUTO IUT
ali lemssefer
 
Visual Basic 9.0 – Visual Studio 2008 Quoi De Neuf 2.0
Visual Basic 9.0 – Visual Studio 2008 Quoi De Neuf 2.0Visual Basic 9.0 – Visual Studio 2008 Quoi De Neuf 2.0
Visual Basic 9.0 – Visual Studio 2008 Quoi De Neuf 2.0Gregory Renard
 
Réussir son projet Drupal
Réussir son projet DrupalRéussir son projet Drupal
Réussir son projet Drupal
Adyax
 
OOP & Design Pattern - Algiers Developers Meetup August 2015
OOP & Design Pattern - Algiers Developers Meetup August 2015OOP & Design Pattern - Algiers Developers Meetup August 2015
OOP & Design Pattern - Algiers Developers Meetup August 2015
Tarik Zakaria Benmerar
 
OOP and Design Patterns
OOP and Design PatternsOOP and Design Patterns
OOP and Design Patterns
Algiers Tech Meetup
 
CSS 3
CSS 3CSS 3
Initiation à Bootstrap
Initiation à BootstrapInitiation à Bootstrap
Initiation à Bootstrap
Abdoulaye Dieng
 
Drupal 7 - Fondamentaux et ateliers
Drupal 7 - Fondamentaux et ateliersDrupal 7 - Fondamentaux et ateliers
Drupal 7 - Fondamentaux et ateliers
Frédéric Simonet
 
Cours_1 - HTML5 et JS.ppt
Cours_1 - HTML5 et JS.pptCours_1 - HTML5 et JS.ppt
Cours_1 - HTML5 et JS.ppt
RihabBENLAMINE
 
Presentation mkframework software craftsmanship a l'afup
Presentation mkframework software craftsmanship a l'afupPresentation mkframework software craftsmanship a l'afup
Presentation mkframework software craftsmanship a l'afup
Michael Bertocchi
 
09 - creez-propres-modules-ansible-autimatisation
09 - creez-propres-modules-ansible-autimatisation09 - creez-propres-modules-ansible-autimatisation
09 - creez-propres-modules-ansible-autimatisation
bibouechristian
 
Module development Patterns de Création.pptx
Module development Patterns de Création.pptxModule development Patterns de Création.pptx
Module development Patterns de Création.pptx
arapilatico
 

Similaire à Comment modifier le style des Tree View dans Odoo. (20)

Mappingobjetrelationnel[1]
Mappingobjetrelationnel[1]Mappingobjetrelationnel[1]
Mappingobjetrelationnel[1]
 
Comment évaluer la qualité d'un site web selon les techniques d'intégration w...
Comment évaluer la qualité d'un site web selon les techniques d'intégration w...Comment évaluer la qualité d'un site web selon les techniques d'intégration w...
Comment évaluer la qualité d'un site web selon les techniques d'intégration w...
 
Devoxx France 2013: CSS, more or Less - http://www.devoxx.com/display/FR13/CS...
Devoxx France 2013: CSS, more or Less - http://www.devoxx.com/display/FR13/CS...Devoxx France 2013: CSS, more or Less - http://www.devoxx.com/display/FR13/CS...
Devoxx France 2013: CSS, more or Less - http://www.devoxx.com/display/FR13/CS...
 
Microsoft business-intelligence
Microsoft business-intelligenceMicrosoft business-intelligence
Microsoft business-intelligence
 
Réussir une montée en charge avec MongoDB
Réussir une montée en charge avec MongoDBRéussir une montée en charge avec MongoDB
Réussir une montée en charge avec MongoDB
 
Css.more.or.less
Css.more.or.lessCss.more.or.less
Css.more.or.less
 
Tout savoir sur l'éditeur de site WordPress
Tout savoir sur l'éditeur de site WordPressTout savoir sur l'éditeur de site WordPress
Tout savoir sur l'éditeur de site WordPress
 
Revit TUTO IUT
Revit TUTO IUTRevit TUTO IUT
Revit TUTO IUT
 
Visual Basic 9.0 – Visual Studio 2008 Quoi De Neuf 2.0
Visual Basic 9.0 – Visual Studio 2008 Quoi De Neuf 2.0Visual Basic 9.0 – Visual Studio 2008 Quoi De Neuf 2.0
Visual Basic 9.0 – Visual Studio 2008 Quoi De Neuf 2.0
 
Réussir son projet Drupal
Réussir son projet DrupalRéussir son projet Drupal
Réussir son projet Drupal
 
OOP & Design Pattern - Algiers Developers Meetup August 2015
OOP & Design Pattern - Algiers Developers Meetup August 2015OOP & Design Pattern - Algiers Developers Meetup August 2015
OOP & Design Pattern - Algiers Developers Meetup August 2015
 
OOP and Design Patterns
OOP and Design PatternsOOP and Design Patterns
OOP and Design Patterns
 
CSS 3
CSS 3CSS 3
CSS 3
 
Initiation à Bootstrap
Initiation à BootstrapInitiation à Bootstrap
Initiation à Bootstrap
 
Drupal 7 - Fondamentaux et ateliers
Drupal 7 - Fondamentaux et ateliersDrupal 7 - Fondamentaux et ateliers
Drupal 7 - Fondamentaux et ateliers
 
Cours_1 - HTML5 et JS.ppt
Cours_1 - HTML5 et JS.pptCours_1 - HTML5 et JS.ppt
Cours_1 - HTML5 et JS.ppt
 
Presentation mkframework software craftsmanship a l'afup
Presentation mkframework software craftsmanship a l'afupPresentation mkframework software craftsmanship a l'afup
Presentation mkframework software craftsmanship a l'afup
 
09 - creez-propres-modules-ansible-autimatisation
09 - creez-propres-modules-ansible-autimatisation09 - creez-propres-modules-ansible-autimatisation
09 - creez-propres-modules-ansible-autimatisation
 
47750479 cours-c
47750479 cours-c47750479 cours-c
47750479 cours-c
 
Module development Patterns de Création.pptx
Module development Patterns de Création.pptxModule development Patterns de Création.pptx
Module development Patterns de Création.pptx
 

Comment modifier le style des Tree View dans Odoo.

  • 1. Microcom - Meetup Odoo Technique Tree view Comment modifier le style des rangées dans un tree view
  • 2. Microcom - Meetup Odoo Technique Avant 9.0 2
  • 3. Microcom - Meetup Odoo Technique 3 • Un tree view standard. • L’attribut “colors” dans la balise “tree” avec un genre de dictionnaire: color:expr[,. . .]. • “color” peut être n’importe quel couleur CSS. • “expr” doit être une expression python qui évalue à vrai ou à faux à partir des champs de l’enregistrement traitée.
  • 4. Microcom - Meetup Odoo Technique Après 9.0 • L’attribut “colors” est fonctionnel, mais est désuet "deprecated" et risque de disparaître. • Il a été remplacé par “decoration-{name}” ou name peut être: • bf (caractères gras) • it (caractères italic) • couleurs bootstrap: – danger – info – muted – primary – success – warning • Chaque attribut “decoration-{name}” contient une seule expression, contrairement à l’attribut “colors”. 4
  • 5. Microcom - Meetup Odoo Technique 5
  • 6. Microcom - Meetup Odoo Technique Le problème? C’est limité… 6
  • 7. Microcom - Meetup Odoo Technique Solution #1 Un petit “hack” vite fait, bien fait. 7
  • 8. Microcom - Meetup Odoo Technique La manière dont Odoo traite les “decorations” • addons/web/static/src/xml/base.xml (~ ligne 431) 8
  • 9. Microcom - Meetup Odoo Technique • addons/web/static/src/js/views/list_view.js (~ ligne 189) 9 Qu’est-ce que “compute_decoration_classnames”
  • 10. Microcom - Meetup Odoo Technique Qu’est-ce que “this.decoration” • addons/web/static/src/js/views/list_view.js (~ ligne 226) 10
  • 11. Microcom - Meetup Odoo Technique Qu’est-ce que “row_decoration” • addons/web/static/src/js/views/list_view.js (~ ligne 24) 11
  • 12. Microcom - Meetup Odoo Technique Bref • Si l’expression est évaluée à vrai pour la rangée traitée, Odoo ajoute une classe css ayant le format: text-{name} 12
  • 13. Microcom - Meetup Odoo Technique Idée! • “Overloader” la classe list_view.js • Ajouter des éléments dans le tableau “row-decoration” • Modifier la fonction “compute_decoration_classnames” pour traiter nos nouveaux éléments • Créer notre propre fichier css pour styliser nos nouvelles classes 13
  • 14. Microcom - Meetup Odoo Technique Overloader list_view.js étape 1 • Dans une view de votre module: 14
  • 15. Microcom - Meetup Odoo Technique Overloader list_view.js étape 2 • Créer un fichier sous nom_module/static/src/js/mon_fichier.js et “étendre” listView 15
  • 16. Microcom - Meetup Odoo Technique Overloader list_view.js étape 3 • Copier la fonction “compute_decoration_classnames” et l’ajuster à nos besoins. 16
  • 17. Microcom - Meetup Odoo Technique Overloader list_view.js étape 4 • Copier le tableau “row_decoration” et ajouter nos décorations customs. (ajouter avant le include) 17
  • 18. Microcom - Meetup Odoo Technique Overloader list_view.js étape 5 • Copier la fonction “load_list” même si on ne la modifie pas, car on veut qu’elle utilise notre nouveau tableau “row_decoration”. (ici, la fonction n’est pas en entier, faute d’espace….) 18
  • 19. Microcom - Meetup Odoo Technique Créer notre fichier css • créer un fichier sous nom_module/static/src/css/mon_fichier.css et appliquer un style à nos nouvelles classes. 19
  • 20. Microcom - Meetup Odoo Technique Ajouter notre fichier css à la view • Ne pas oublier de mettre les paths apropriés à votre projet... 20
  • 21. Microcom - Meetup Odoo Technique Voilà • Vous pouvez maintenant utiliser vos nouveaux attributs dans un tree view. 21
  • 22. Microcom - Meetup Odoo Technique Un beau sapin de noël! 22
  • 23. Microcom - Meetup Odoo Technique solution #2 • Utiliser le module “web_tree_dynamic_colored_field” de l’OCA. https://github.com/OCA/web/tree/9.0/web_tree_dynamic_colored_field • À noter qu’il n’est pas encore porté à la version 9.0 … (en date du 27/05/2016) • Permet la coloration du texte avec l’attribut “fg-color” et la coloration du background avec l’attribut “bg-color” • Ils s’utilisent de la même manière que l’attribut “colors” de la version 8.0 à une différence près: – Ils s’utilisent dans la balise “field” et non dans la balise “tree”... • Avantage: On peut colorer seulement une partie d’une rangée (plus de contrôle / granularité) • Inconvénient: Si on veut colorer toute la rangée, on doit répéter l’attribut dans tous les fields 23
  • 24. Microcom - Meetup Odoo Technique 24 Voici un exemple d’utilisation
  • 25. Microcom - Meetup Odoo Technique Désolé de l’atrocité… je n’avais pas trop d’inspiration... 25
  • 26. Microcom - Meetup Odoo Technique Morale de l’histoire • Quand on a un besoin spécifique: toujours regarder les repos de l’OCA pour voir s’il n’existerait pas déjà un module qui pourrait répondre à vos besoins. • Mais, parfois, un petit “hack” est nécessaire pour arriver a un résultat plus personnalisé... 26
  • 27. Microcom - Meetup Odoo Technique • Les sources du module sont accessibles sur github: https://github.com/microcom/Odoo_Basic_AddOns/tree/9.0/custom_treeview_colors Merci 27