Odoo 13 如何安装自定义模块

Posted

技术标签:

【中文标题】Odoo 13 如何安装自定义模块【英文标题】:Odoo 13 How Install Custom Module 【发布时间】:2020-08-14 19:23:59 【问题描述】:

从一开始我就一直在使用 Odoo。这可能是世界上记录最差的软件之一。我试过在他们的论坛上问这个问题,但在你拥有 x 数量的业力之前,你不能发帖,而你似乎只有在通过他们购买课程时才能获得。

我已经按照 Ubuntu 源的安装教程通过https://www.odoo.com/documentation/13.0/setup/install.html#id7 到 T.

我设法启动了干净的香草版本并进入了超级用户模式,顺便说一句,它也被疯狂地隐藏在如何启用它上。然后进入实际设置需要您至少安装一个应用程序。这对我来说完全没有意义。

无论如何,我最终找到了如何完成上述基本操作的点。现在我想按照您自己的教程创建一个自定义模块:https://www.odoo.com/documentation/13.0/howtos/backend.html#。

我使用脚手架命令来启动模块的快速创建。到目前为止,一切都很好。但是当我真的想把它加载到 Odoo 中时,一切似乎都崩溃了。我已经搜索了几个小时,最终在各种来源上得到了相同的说明:转到应用程序 > 更新应用程序列表并刷新。什么都没发生。绝对没有。我删除任何过滤器并搜索自定义模块的名称,但它不存在。

我完全是空的,完全被困住了。缺乏文档和可以找到的少数文档似乎甚至无法正常工作。

所以在我永远放弃 Odoo 之前:如何创建模块并将其添加到 Odoo?!

在你问之前,我已经尝试了所有我能想到的:

-从头开始,干净安装超过 5 次

-我什至完全擦除了 UBUNTU 并从头开始重新启动

-我尝试搭建脚手架,重新启动 Odoo,手动添加,将插件的路由修改到配置中,在不同的目录中创建了我的客户模块,以不同的方式命名,填写清单,绝对没有任何效果。

如果有人可以在这里帮助我,我将不胜感激,但我不抱太大希望。当谈到 Odoo 时,我的拉丁文和耐心已经到了尽头。

【参考方案1】:

1) 从 odoo 商店下载一个免费模块(确保自定义模块没有问题)

2) 将包含清单文件的文件夹复制到 .conf 文件中定义的 addons 文件夹

3) 进入设置并激活开发者模式(您必须是管理员)

4) 进入应用程序,激活开发者模式后,您可以更新应用程序列表(左上角第四个按钮)

5) 现在只需搜索你的模块并安装它

【讨论】:

【参考方案2】:

Odoo 安装过程可能会有所不同,这取决于您是否决定使用 git,或者例如 apt 包。

第 1 部分) 我以这种方式在 Ubuntu Server 20 中安装了 Odoo 13:

sudo apt update
sudo apt upgrade
wget https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.5/wkhtmltox_0.12.5-1.bionic_amd64.deb
sudo apt install ./wkhtmltox_0.12.5-1.bionic_amd64.deb
wget -O - https://nightly.odoo.com/odoo.key | sudo apt-key add -

echo "deb http://nightly.odoo.com/13.0/nightly/deb/ ./" | sudo tee /etc/apt/sources.list.d/odoo.list

sudo apt update
sudo apt install odoo

sudo service odoo status
sudo systemctl enable --now odoo

(这样odoo进程可以自主启动)

第 2 部分) Odoo 的配置文件在这里:

sudo nano /etc/odoo/odoo.conf

当你看到Odoo运行的日志时,以这种方式为例:

sudo tail -f  /var/log/odoo/odoo-server.log

您可以看到正在使用的目录是什么,在本例中是日志报告:

[...] INFO ? odoo: addons paths: ['/usr/lib/python3/dist-packages/odoo/addons', '/var/lib/odoo/.local/share/Odoo/addons/13.0'] 

默认情况下,Odoo 服务器从 dist-packages 目录获取默认插件。其他路径由您决定,但请记住文件夹权限的重要性。

[Odoo 内部配置:]

;addons_path = /usr/lib/python3/dist-packages/odoo/addons
addons_path = /var/lib/odoo/.local/share/Odoo/addons/13.0

第 3 部分)文件夹的权限

现在,将默认目录的插件文件夹的“权限号”与您添加的插件进行比较。 如果你进入 /usr/lib/python3/dist-packages/odoo 然后你写:

stat -c %a addons/

您可以看到权限,在本例中为 755

如果你写:ls -lath你也可以看到插件文件夹的所有者信息,在这种情况下是root:root

现在,将这些信息与路径中的其他插件文件夹进行比较:

/var/lib/odoo/.local/share/Odoo/

如果有任何差异,可以使用命令进行调整:

sudo chown -R root:root  /var/lib/odoo/.local/share/Odoo/

注意:这取决于您的机器中的用户以及有权启动 Odoo 服务的用户。

sudo service odoo restart

另外,当我更改文件夹中的权限时,我注意到日志中出现“Permission denied”错误

PermissionError: [Errno 13] Permission denied: '/var/lib/odoo/.local/share/Odoo/sessions/xxxx' 

因此,在 Odoo 使用的以下文件夹中拥有正确的权限也很重要:

插件 会话 文件存储

Part 4)测试一个插件文件夹,注意插件分组

我已经测试了这个配置,购买了一个 OCA 插件的 git checkout,我在里面运行了这个简单的脚本:/var/lib/odoo/.local/share/Odoo/addons/13.0

mkdir account-analytic
cd account-analytic
git init
git remote add origin https://github.com/OCA/account-analytic.git
git pull origin 13.0

而且我已经意识到模块帐户分析,因为它是一组模块,所以不能像我预期的那样工作。 在 account-analytic 中有以下模块:

account_analytic_parent analytic_base_department account_analytic_required analytic_tag_dimension mrp_analytic oca_dependencies.txt 采购_mto_analytic product_analytic purchase_analytic setup stock_analytic

所以,如果我搜索例如:analytic_base_department

什么也没找到,但是如果我将模块移到组外,在前面的一条路径中,然后我重新启动服务器并更新应用程序列表,那么神奇的事情就会发生:

sudo mv analytic_base_department ../
sudo service odoo restart

如果您的自定义模块尊重您构建模块时建议的 hyrarchy,也会发生同样的情况:清单、视图、模块、控制器等。

请记住,Odoo 的隐藏问题之一是了解服务的文件夹权限并很好地实现它们。

【讨论】:

以上是关于Odoo 13 如何安装自定义模块的主要内容,如果未能解决你的问题,请参考以下文章

odoo自定义模块的安装动作

odoo怎么添加本地自定义模块

odoo首页添加自定义模块,修改代码后报错,请问各路大神啥情况

Odoo8在TreeView左上角增加自定义按钮以及通过继承生成自定义的View_Mode

如何确定“ValueError:元素不能位于父视图中”的原因? - Odoo 10.0e企业

如何继承第三方模块的控制器来定制Odoo 12?