Odoo 安装全文邮件索引的条件

0, yum install postgresql12-contrib

1, su - postgres

2, psql 

3, /c o12demo 

4, create extension pg_trgm;

5, /c template1

6, create extension pg_trgm;

from odoo.models import BaseModel, AbstractModel from odoo import api from lxml import etree _get_view = AbstractModel.get_view def fnc_button_studio(self): context = self.env.context button_action = context.get("BUTTON_ACTION", False) or context.get("params", {}).get('BUTTON_ACTION', False) if button_action: action = self.env['base.automation'].search([('id', '=', button_action)]) if action: action.with_context(__action_done={})._process(self) AbstractModel.fnc_button_studio = fnc_button_studio @api.model def get_view(self, view_id=None, view_type='form', toolbar=False, submenu=False): res = _get_view(self, view_id=view_id, view_type=view_type, toolbar=toolbar, submenu=submenu) # only use in Studio Edit res['fieldsGet'] = self.env[self._name].fields_get() action_id = self.env.context.get("action", False) or self.env.context.get("action_id", False) or self.env.context.get("params", {}).get("action", False) if 'studio.view.center' in self.env.registry.models and res and action_id: view_ref = self.env.context.get(view_type + "_view_ref", False) ui_view = self.env['ir.ui.view'] model_view = 'studio.view.center' domain = [['id', '=', -1]] if 'view_id' in res: domain = [['view_id', '=', res['view_id']], ['action_id', '=', action_id], ['arch', '!=', False]] elif 'view_id' not in res and view_ref and view_ref.find("odoo_studio") >= 0: domain = [['view_key', '=', view_ref.replace("odoo_studio.", "")]] view_center = self.env[model_view].search(domain, limit=1) # if 'studio.view.center' in self.env.registry.models and res and 'view_id' in res and action_id: # ui_view = self.env['ir.ui.view'] # model_view = 'studio.view.center' # view_center = self.env[model_view].search( # [['view_id', '=', res['view_id']], ['action_id', '=', action_id], ['arch', '!=', False]], limit=1) # old_fields = res['fields'] # only use in Studio # for field_name in old_fields: # old_field = old_fields[field_name] # if 'views' in old_field and len(old_field['views'].keys()): # fields_get = self.env[old_field['relation']].fields_get() # for view in old_field['views'].values(): # view['fieldsGet'] = fields_get res['arch_original'] = res['arch'] if len(view_center): x_arch, x_fields = ui_view.with_context(STUDIO=True).postprocess_and_fields( etree.fromstring(view_center.arch), model=self._name) res['arch'] = x_arch res['fields'] = x_fields res['view_studio_id'] = view_center.id res['view_key'] = view_center.view_key res['arch_original'] = x_arch # only use in Studio for field_name in res['fields']: x_field = res['fields'][field_name] if 'views' in x_field and len(x_field['views'].keys()): fields_get = self.env[x_field['relation']].fields_get() for view in x_field['views'].values(): view['fieldsGet'] = fields_get return res AbstractModel.get_view = get_view
最新发布
09-05
### Odoo安装方法 Odoo 是一种功能强大的开源企业资源计划 (ERP) 软件,支持多种操作系统上的部署方式。以下是几种常见的安装方法及其注意事项。 #### 方法一:通过源码手动安装 在 Linux 上可以通过下载 Odoo 源码并配置环境来完成安装。这种方法适合高级用户或开发者。 - **依赖项安装** 使用 `pip` 工具可以方便地安装所需的 Python 库。执行以下命令以安装所有必需的依赖项: ```bash pip install -r requirements.txt ``` 如果某些依赖无法正常安装,可以根据错误提示逐一解决[^2]。必要时可暂时移除问题依赖,待其他部分成功后再补充回环境中[^1]。 - **启动 Odoo** 创建一个用于启动 Odoo 的脚本文件,并确保其路径已加入到系统的 PATH 中以便随时调用。随后可通过如下指令激活服务: ```bash ./odoo-bin --addons-path=../custom-addons,./addons --db-filter=my_database_name$ ``` #### 方法二:基于 Docker 的快速部署 对于希望简化服务器设置流程的情况,推荐采用 Docker 技术实现自动化构建与运行。 - 准备工作包括拉取官方镜像以及定义必要的网络连接参数: ```dockerfile docker pull odoo:latest # 同时创建数据库实例 docker run -d --name db -e POSTGRES_PASSWORD=yourpassword postgres:alpine docker run -p 8069:8069 --name odoo --link db:db -t odoo ``` 此过程涉及两个独立但相互关联的服务组件——PostgreSQL 和核心应用本身[^4]。 #### 方法三:Linux 平台下的传统包管理工具法 针对 Ubuntu 或 Debian 类发行版而言,还可以利用 apt-get 来获取预编译版本的应用程序包。 ```bash sudo wget -O - https://nightly.odoo.com/odoo.key | sudo apt-key add - echo "deb http://nightly.odoo.com/16.0/nightly/deb/ ./" | sudo tee /etc/apt/sources.list.d/odoo.list sudo apt update && sudo apt install odoo ``` 上述操作完成后即完成了基础框架的初始化阶段;之后便能依照个人需求进一步定制化开发或者扩展插件集成了[^3]。 --- ### 注意事项 无论采取哪种途径实施落地实践过程中都需注意保持良好的权限控制策略以免造成安全隐患;另外考虑到不同平台间可能存在细微差异因此务必参照目标主机的具体情况进行适当调整优化。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值