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?
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
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)
Editez le fichier ./addons/my_new_module/__openerp__.py.
nano ./addons/my_new_module/__openerp__.py
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'],
Modifier des modèles.py
nano ./addons/my_new_module/models.py
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.)
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.
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>
Utilisez odoo.py
au lieu de oe
:
./path/to/odoo/odoo.py scaffold my-module
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.
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]
./"path vers le fichier odoo.py "/odoo.py scaffold my-module ./"path pour votre nouveau complément" /
remplace qoutes par votre chemin
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.
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.
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.
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.
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
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
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