Odoo - les échafaudages?

j'ai lu ici que vous pouvez scaffold un module en utilisant une commande, de sorte que vous n'aurez pas besoin de créer manuellement des fichiers initiaux. Mais une telle commande ne fonctionne pas sur master (sur Odoo development branch):

./oe scaffold Academy ../my-modules

Parce qu'il n'y a pas de tel fichier appelé oe dans le répertoire openerp. Cette chose a-t-elle changé dans la nouvelle version? Comment puis-je scaffold un module à Odoo?

17
demandé sur wingedsubmariner 2014-06-24 15:43:30

13 réponses

maintenant odoo 10 ou version ultérieure utilisez odoo-bin insted de odoo.py

  1. sur le shell ou le terminal, changez le répertoire dans votre dossier odoo. C'est peut-être dans /opt/odoo, ou peut-être dans /home/odoo:

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

    ./odoo.py scaffold my_new_module ./addons/
    

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

  1. Modifier l' ./addons/my_new_module/__openerp__.py fichier.

    nano ./addons/my_new_module/__openerp__.py
    
  2. modifiez le champ Nom pour définir un nom convivial de votre module (par exemple "nouveau Module D'Andrius"). Changer la description et les champs aussi. Et ajoutez vos modules nécessaires,tels que 'mail', à la liste des dépendances de module dépend.

    'depends': ['base', 'mail'],
    
  3. modifier models.py

    nano ./addons/my_new_module/models.py
    
  4. ajouter du code dans votre my_new_module/models.py dossier, pour 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 ""

(à titre d'exemple, ce code va étendre le 'mail.notification ' et remplacer 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 "Update Module List".

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

pour afficher les Modules, pas seulement les Applications, supprimez la balise "Applications" du filtre de la boîte de recherche, en cliquant sur le petit "x" avant la balise.

22
répondu Chris Coleman 2018-04-20 07:50:12

Vous pouvez utiliser ./odoo-bin échafaudage nom_du_module /odoo/odoo-server/addons/

ou

./odoo-bin échafaudage nom_du_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
répondu Madhur Gupta 2017-07-08 11:21:08

Utiliser odoo.py au lieu de oe:

./path/to/odoo/odoo.py scaffold my-module
3
répondu Daniel Reis 2015-05-01 15:32:59

à Partir de odoo documentation bonne façon de créer un module est la suivante:

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

je vous recommande aussi d'utiliser un chemin d'addons différent pour votre module et de ne pas utiliser odoo / addons, vous pouvez créer un nouveau répertoire où vous voulez et puis ajouter ce répertoire à la configuration d'odoo ou exécuter odoo avec cet addon de lancement

odoo.py --addons-path=[full path to your dir]
1
répondu Dachi Darchiashvili 2016-03-11 08:35:09

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

alors d'abord je change de répertoire:

 cd /opt/odoo

puis à l'exécuter:

 odoo.py scaffold modulename ./addons/

donne l'erreur suivante msg:

 odoo.py command not found

la commande correcte qui fonctionne pour moi est:

 sudo python odoo.py scaffold modulename ./addons/

J'espère que cela vous aidera.

1
répondu Jaf Faizal 2016-06-01 09:30:39

./ "chemin vers odoo.py fichier"/odoo.py échafaudage mon-module ./"chemin d'accès de votre nouvel addon"/

remplacez qoutes par votre chemin

1
répondu 2016-11-08 03:56:12

une autre version

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

import sys

from openerp.cli import scaffold

sf = scaffold.Scaffold()

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

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

Enregistrer le script en haut de votre openerp dossier. 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
répondu sombatsombat 2014-08-24 22:22:00

avez-vous installé comme source ou paquet.

Pour la source que vous devez faire

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

si, à partir de package que vous devez faire

 odoo.py scaffold [module_name] [where_to_put_it]

[where_to_put_it] habituellement votre chemin d'addons, votre chemin d'addons peut varier en fonction de votre méthode d'installation.

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

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

pour la structure des modules référence et pour la construction d'un module.

0
répondu maharshi 2016-08-02 14:37:38

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

python odoo.py scaffold modulename addons-path
0
répondu IronHorseCowboy 2016-09-14 22:15:29

je vous suggère pour la première étape de Git clone odoo. Créez un répertoire/dossier et vous Git clonez odoo sur votre répertoire / dossier. Après cette course, Python odoo.py test d'addons d'échafaudage123. Mettez ou module sur répertoire / dossiers addons pour être sûr, odoo peut être lu votre module.

0
répondu Stefani Johnsson 2017-05-25 02:57:03

Goto Terminal et saisissez la commande suivante:

cd path/to/your/odoo-version/

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

then goto /chemin/vers/votre/odoo-version/addons et de rafraîchissement, vous pouvez voir la "new_module" sera présent.

0
répondu Pravitha V 2017-11-28 03:40:38

si vous utilisez odoo-10 ou 11 alors au lieu d'utiliser ./oe scaffold Academy ../my-modules utilisation : ./odoo-bin scaffold new_module /path/to/your/odoo-version/addons

et si vous utilisez odoo8 c'est à dire openerp8 puis utilisez odoo.py scaffold <module name> <where to put it>

mais assurez-vous d'être à la bonne adresse dans le répertoire. Voir aussi tutoriel ici dans le lien : https://www.odoo.com/documentation/8.0/howtos/backend.html

--Merci

ABhay S

0
répondu Abhay Singh Rathore 2018-07-25 04:14:22

peut-être que ce code aiderait. Enregistrer en tant que moe.py ou ce que vous vouliez.

from openerp.cli import scaffold

sf = scaffold.Scaffold()

#sf.run(["--help"])

sf.run (["--init","Academy","--model","academy","--controller","academy","--web","--theme"])

je suis encore nouveau dans la programmation Python. Si quelqu'un peut améliorer la façon d'envoyer des arguments à run() fonction, ce serait génial.

-2
répondu sombatsombat 2014-08-25 00:45:36