繁体   English   中英

Odoo 13 如何安装自定义模块

[英]Odoo 13 How Install Custom Module

从一开始我就一直在与 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 中时,一切似乎都崩溃了。 我已经搜索了几个小时,最终在各种来源上得到了相同的说明:Go 到应用程序 > 更新应用程序列表并刷新。 什么都没发生。 绝对没有。 我删除任何过滤器并搜索自定义模块的名称,但它不存在。

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

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

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

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

-我什至完全擦除了 UBUNTU 并从头开始

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

如果有人可以在这里帮助我,我将不胜感激,但我并没有寄予厚望。 当谈到 Odoo 时,我的拉丁语和耐心已经到了尽头。

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

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

3) Go 设置并激活开发者模式(你必须是管理员)

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

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

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

第 1 部分)我以这种方式在 Ubuntu 服务器 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 conf内部:]

;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 中的 go 并且你写:

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

此外,当我更改文件夹中的权限时,我在日志中注意到“权限被拒绝”错误

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

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

  • 插件
  • 会话
  • 文件存储

在此处输入图像描述

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

我已经测试了这个配置,购买了一个 OCA 插件的git 结账,我在里面运行了这个简单的脚本: /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 的隐藏问题之一是了解服务的文件夹权限并很好地实现它们。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM