Accéder au contenu principal

Documentation technique du POS Odoo: versions 10 à 13




Hello world!

Dans cet article, je vous montre brièvement comment prendre en main rapidement l’API JS d’Odoo des versions 10 à 13 notamment pour modifier le module POS. Je vais compléter cet article au fur et à mesure et parlerai de l'architecture des composants JS du POS, les composants (Widgets) eux même, les interactions entre les composants et la communication avec le back-end.

⚠ Attention! Avant de développer une fonctionnalité, je vous recommande de chercher si cette dernière n'a pas été implémentée par la communauté. Vous pouvez chercher ici:


Commençons avec un peu de pratique


Nous allons mettre sur pied un module qui bloque ou désactive un bouton dans le POS Odoo. Il s'agit du bouton qui permet d'appliquer la remise au niveau du point de vente que voici (encadré en rouge):



Nous allons appeler ce module pos_disable_discount et voici son architecture:

odoo-custom/
    pos_disable_discount/
         static/
             src/
                js/
                  disable_discount_btn.js
         views/
             templates.xml
         __init__.py
         __manifest__.py

1. On définit le contenu du fichier __manifest__.py


{
    'name': 'POS disable discount',
    'category': 'Point of Sale',
    'version': '1.0.0',
    'depends': ['point_of_sale'],
    'data': [
        'views/templates.xml',
    ],
    'installable': True,
    'auto_install': False,
    'application': True,
}

2. Après avoir créé le fichier disable_discount_btn.js dans le dossier /static/js il faut le charger dans le fichier templates.xml


<?xml version="1.0" encoding="UTF-8"?>
<odoo>
    <data>
        <template id="assets" inherit_id="point_of_sale.assets">
            <xpath expr="." position="inside">
                <script type="text/javascript" src="/pos_disable_discount/static/src/js/disable_discount_btn.js"/>
            </xpath>
        </template>
    </data>
</odoo>


3. Définir le module dans disable_discount_btn.js


odoo.define('disable_discount_btn', function(require){
    'use strict';
})

4. Importer le widget natif que nous allons modifier


Le bouton que nous allons désactiver se trouve au niveau du widget screens.NumpadWidget et c'est pourquoi nous allons l'importer le module screens

odoo.define('disable_discount_btn', function(require){
    'use strict';

    var screens = require('point_of_sale.screens');

})

5. Nous pouvons maintenant apporter nos changements dans la fonction renderElement() afin qu'elles soient appliquer au chargement du Widget


screens.NumpadWidget.include({

        renderElement: function(){
            this._super();
            this.$el.find('.mode-button[data-mode="discount"]').prop('disabled', true);
        }

});

Pour en savoir plus, vous pouvez vous rendre sur ce document: https://odoo-development.readthedocs.io/en/latest/dev/pos/

Posts les plus consultés de ce blog

Apprendre python: par où commencer?

Je reçois beaucoup de messages de la part de jeunes gens qui veulent débuter en programmation. Ils sont tous intéressés par le langage Python et voudraient savoir par où commencer . Si t'es l'un d'eux, je te dis dans cet article par où commencer, le minimum qu'il faut savoir et ce qui t'attends, le tout basé sur ma modeste expérience. Alors, qu'est ce qu'il faut savoir concrètement avant de commencer? Je ne vais pas te dire que Python a été créé par Guido en 1991, bla bla bla bla. Ces infos, tout le monde en parle et tu peux les retrouver toutes sur cette page Wikipedia . T'as certainement entendu quelqu'un te dire que Python est un langage hyper facile, mais je te dis que c'est faux! Certes il est très facile à prendre en main et formidable pour apprendre les bases de la programmation. Mais lorsqu'il s'agit d'implémenter de vrais projets, il faut tout un tas de connaissances précises par exemple sur les  collections , itertools , thr

Présentation d'un module Odoo de gestion de bibliothèque: comment développer un tel module?

Hello! Aujourd'hui nous allons continuer notre apprentissage d'Odoo en passant par la phase pratique. Nous allons ensemble développer un module de gestion de bibliothèque et donc le code source sera disponible sur un serveur Git. Le module que nous mettrons en place fera intervenir les modules de gestion de stocks, achats et ventes . Nous implémenterons entre autres des modèles et vues personnalisés, des rapports et des workflows . Bref, ce module vous donnera toutes les techniques et méthodes dont vous aurez besoin pour devenir un développeur Odoo chevronné.

Comment créer, sauvegarder, supprimer et restaurer une base de donnée Odoo

Hello! Aujourd'hui je vais vous montrer comment manipuler votre base de données Odoo. Il s'agira principalement de la création, sauvegarde, suppression et restauration à travers l'interface d'Odoo . Je ne manquerai également pas de vous briefer un tout petit peu sur PostgreSQL.