web-dev-qa-db-fra.com

Odoo - échafaudages?

J'ai lu ici que vous pouvez échafauder un module à l'aide d'une commande, de sorte que vous n'ayez pas besoin de créer manuellement certains fichiers initiaux. Mais une telle commande ne fonctionne pas sur master (sur la branche de développement Odoo):

./oe scaffold Academy ../my-modules

Parce qu'il n'y a pas de fichier de ce type appelé oe dans le répertoire openerp. Est-ce que cette chose a changé dans la dernière version? Comment puis-je échafauder un module dans Odoo?

18
Andrius

Maintenant, odoo 10 ou version ultérieure utilise odoo-bin insted de odoo.py

  1. Sur le shell ou le terminal, changez de répertoire dans votre dossier odoo. Peut-être que c'est en /opt/odoo, ou peut-être en /home/odoo:

    cd /opt/odoo
    
  2. Créez un nouveau module en utilisant le script odoo.py:

    ./odoo.py scaffold my_new_module ./addons/
    

(où my_new_module est le nom de votre nouveau module et ./addons/ le répertoire des addons Odoo)

  1. Editez le fichier ./addons/my_new_module/__openerp__.py. 

    nano ./addons/my_new_module/__openerp__.py
    
  2. Modifiez le champ du nom pour définir un nom convivial pour votre module (par exemple "Nouveau module d'Andrius"). Changer la description et les champs aussi. Et ajoutez les modules dont vous avez besoin, tels que 'mail', à la liste des dépendances de modules.

    'depends': ['base', 'mail'],
    
  3. Modifier des modèles.py

    nano ./addons/my_new_module/models.py
    
  4. Ajoutez du code dans votre fichier my_new_module/models.py, par exemple:

from openerp import models, api

class FooterlessNotification(models.Model)
    _inherit = 'mail.notification'

    @api.model
    def get_signature_footer(self, user_id, res_model=None, res_id=None, context=None, user_signature=True):
        return ""

(Par exemple, ce code étendra le modèle 'mail.notification' et remplacera sa méthode get_signature_footer par une méthode qui renvoie un pied de page vide.)

  1. Installez votre module via les paramètres Odoo.

Pour le trouver, vous devrez peut-être utiliser l'option "Mettre à jour la liste des modules".

Si vous ne trouvez pas non plus l'option "Liste des modules de mise à jour", vous devrez peut-être activer la case à cocher "Caractéristiques techniques" dans les paramètres de votre utilisateur actuel.

Pour afficher les modules, pas seulement les applications, supprimez la balise "Applications" du filtre de la zone de recherche en cliquant sur le petit "x" situé avant la balise.

22
Chris Coleman

Vous pouvez utiliser ./ odoo-bin scaffold nom_module/odoo/odoo-server/addons /

ou

./odoo-bin échafaudage nom_module/odoo/odoo-server/custom_addons /

Ici custom_addons est votre répertoire dans odoo-server/ 

cmd dans Odoo10:

./odoo-bin scaffold <module_name> <destination path where you want to create> 
4
Madhur Gupta

Utilisez odoo.py au lieu de oe:

./path/to/odoo/odoo.py scaffold my-module
3
Daniel Reis

J'ai installé ODOO 9 dans AWS dans le répertoire/opt/odoo.

Donc je commence par changer de répertoire:

 cd /opt/odoo

puis exécuté:

 odoo.py scaffold modulename ./addons/

donne le message d'erreur suivant:

 odoo.py command not found

la commande correcte qui fonctionne pour moi est la suivante:

 Sudo python odoo.py scaffold modulename ./addons/

J'espère que cela t'aides.

1
Jaf Faizal

De la documentation odoo, voici comment créer un module:

odoo.py scaffold [name of module] [desired path of module]

Aussi, je vous recommande d'utiliser un chemin d'accès différent pour votre module et de ne pas utiliser odoo/addons, vous pouvez créer un nouveau répertoire où vous le souhaitez, puis ajouter ce répertoire à la configuration d'odoo ou exécuter odoo avec cet addon depuis son lancement.

odoo.py --addons-path=[full path to your dir]
1

./"path vers le fichier odoo.py "/odoo.py scaffold my-module ./"path pour votre nouveau complément" /

remplace qoutes par votre chemin

1
user7561216

Voici ma réponse

cd path/to/odoo/odoo-server/

puis

./odoo-bin scaffold new_module_name /path/to/custom/addons

maintenant, vérifiez/path/to/custom/addons, vous verrez un nouveau module où vous pourrez commencer à vous ajouter des choses.

0
Rajnish

Avez-vous installé en tant que source ou package.

Pour la source que vous devez faire

./odoo.py scaffold [module_name] [where_to_put_it]

si vous devez faire un paquet 

 odoo.py scaffold [module_name] [where_to_put_it]

[where_to_put_it] est généralement le chemin de votre addons, celui-ci peut varier en fonction de votre méthode d'installation.

Il n’est pas nécessaire de créer le module dans le dossier des addons. Mais il est recommandé de le faire.Vous pouvez ajouter le nouveau chemin des addons en

odoo.py --addons-path=[where_to_put_it]

Pour la structure de module référence et pour construire un module.

0
maharshi

Allez au terminal et entrez la commande suivante:

cd path/to/your/odoo-version/

./odoo-bin scaffold new_module /path/to/your/odoo-version/addons

Ensuite, allez à/path/to/your/odoo-version/addons et rafraîchissez-vous, vous pouvez voir que le "nouveau_module" sera présent.

0
Pravitha V

Je vous suggère pour la première étape de Git Clone Odoo. Créez un répertoire/dossier et Git clone odoo sur votre répertoire/dossier. Après cela, testez les addons d’échafaudage odoo.py de Python. Mettez ou module sur addons répertoire/dossier pour vous assurer, odoo peut être lu votre module.

0
Stefani Johnsson

Une autre version

\###### begin ########

import sys

from openerp.cli import scaffold

sf = scaffold.Scaffold()

sf.run (sys.argv[1:])

\####### end #########

Enregistrez le script en haut dans votre dossier openerp. Puis exécutez avec:

$ python (your-script-name) --help

ou:

$ python (the-script-name) --init Academy --dest my-modules --model academy --controller academy --web --theme
0
sombatsombat

Si vous utilisez odoo-10 ou 11, utilisez plutôt ./oe scaffold Academy ../my-modules , Utilisez: ./odoo-bin scaffold new_module /path/to/your/odoo-version/addons

et si vous utilisez odoo8 c.-à-d. openerp8, utilisez odoo.py scaffold <module name> <where to put it>

mais assurez-vous que vous êtes au bon endroit dans le répertoire. Recherchez également le didacticiel ici dans le lien: https://www.odoo.com/documentation/8.0/howtos/backend .html

--Merci

ABhay S

0
Abhay Singh Rathore

Dans certains cas, il est nécessaire de transmettre le fichier python Odoo à l'application Python pour l'exécuter.

python odoo.py scaffold modulename addons-path
0
IronHorseCowboy