odoo 相关问题

Odoo是一套用Python编写的开源业务应用程序,根据AGPL许可证发布。它被全球370万用户用于管理各种规模的公司。主要的Odoo组件是服务器,270个核心模块(也称为官方模块)和大约15000个社区模块。

Odoo 16 通过 xmlrpc update_field_translations 翻译字段给出错误 \'str\' 对象没有属性 \'get\'

我正在使用 xmlrpc 为我的网站中的某些字段添加翻译。我使用一个函数来执行此操作(update_translation)。我成功翻译了产品名称和类别名称。但是...

回答 1 投票 0

看不到我在自定义 Odoo 模块中所做的更改

我创建了一个名为“custom_purchase_order_report”的新自定义模块。我正在尝试更改/添加采购订单 PDF 报告中生成的文本。 我继承了扩展视图

回答 1 投票 0

如何使用openupgradelib从odoo15更新到odoo16?

当我尝试通过 openupgradelib 将 odoo 从 v15 更新到 v16(在 docker 环境中运行)时,我遇到两个问题: 某些模块(例如帐户)未迁移到新数据库中 一般来说...

回答 1 投票 0

插入Many2many Odoo(前OpenERP)

我正在尝试将值插入到 Odoo(以前的 OpenERP)中的 Many2many 或 One2many 关系表字段中。你知道如何做到这一点吗?

回答 5 投票 0

如何在每次迭代时增加日期

我想要实现的是根据所选的付款频率来预测付款日期。例如,当用户选择每月付款频率时,系统应该能够...

回答 1 投票 0

传入邮件服务器 Office 365 Odoo 14

我无法在 Odoo v14 中连接传入邮件服务器。我不确定我做错了什么。 发送邮件服务器 (SMTP) 已成功建立,没有任何问题。 但是当我尝试通过

回答 1 投票 0

如何使用 JavaScript 监听 Odoo 16 中的事件?

我想使用 JavaScript 监听 Odoo 16 中字段的事件。我尝试了以下代码片段,但出现错误。 这是我的 asset.xml 视图: 我想使用 JavaScript 监听 Odoo 16 中字段的事件。我尝试了以下代码片段,但出现错误。 这是我的 asset.xml 视图: <odoo> <data> <template id="assets_backend" name="circulacion assets" inherit_id="web.assets_backend"> <xpath expr="." position="inside"> <script type="text/javascript" src="/circulacion/static/src/js/assets.js"></script> </xpath> </template> </data> </odoo> 这是我的 JavaScript 文件 循环/静态/src/js/assets.js odoo.define('circulacion.campo_nit', function (require) { "use strict"; var fieldRegistry = require('web.field_registry'); var FieldChar = require('web.basic_fields').InputField; var CampoNit = FieldChar.extend({ events: _.extend({}, FieldChar.prototype.events, { 'keypress': '_onKeyPress', }), _onKeyPress: function (event) { var input = String.fromCharCode(event.which); if (!/[0-9C/F]/.test(input)) { event.preventDefault(); } }, }); fieldRegistry.add('campo_nit', CampoNit); return CampoNit; }); 在我的表单视图中,我使用小部件campo_nit <field name="nit" widget="campo_nit" /> 在manyfest.py中: "depends": ["base",], 'assets': { 'web.assets_backend': [ 'circulacion/static/src/js/assets.js', ] }, # always loaded "data": [ "views/assets.xml", "security/ir.model.access.csv", "views/views.xml", "views/templates.xml", ], 您应该从清单文件中的数据中删除或注释 asset.xml: "data": [ #"views/assets.xml", "security/ir.model.access.csv", "views/views.xml", "views/templates.xml", ],

回答 1 投票 0

在 Openshift 中安装 Odoo 时出错

我正在尝试使用 https://github.com/dreispt/openshift-odoo-quickstart 上提供的说明在 Openshift 中安装 Odoo。当执行最后的推送时,我收到以下错误: 远程:...

回答 1 投票 0

Odoo 15 - 当用户登录时将用户重定向到特定的表单/操作

我想在用户登录时将其重定向到 hr_attendance 模块,我尝试更改用户首选项中的主页操作,但是当我更改该设置时,我的模块菜单无法正常工作......

回答 1 投票 0

Odoo v14 _render_qweb_pdf(渲染编译 AST 时出错)

我正在尝试创建一个 cron,当产品数量几乎为 0 时发送库存警报 我正在尝试创建一个 cron,当产品数量几乎为 0 时发送库存警报 <record id="ir_cron_mort_crm" model="ir.cron"> <field name="name">Product Quantity Alert</field> <field name="model_id" ref="model_stock_quant"/> <field name="state">code</field> <field name="code">model.send_alert_email()</field> <field name="user_id" ref="base.user_admin"/> <field name="interval_number">1</field> <field name="interval_type">days</field> <field name="numbercall">-1</field> <field name="priority">0</field> <field name="active" eval="True"/> </record> 我正在使用此代码 from odoo import models, fields, api import base64 class StockQuant(models.Model): _inherit = 'stock.quant' alert_qty = fields.Float(string='Alert Quantity', store=True) def send_alert_email(self): # Retrieve the PDF report template print("innnnnn") report_template_id = self.env.ref('y_slnee_test.report_stock_alert')._render_qweb_pdf(self.id) print('report---',report_template_id) # Encode the PDF data in base64 format data_record = base64.b64encode(report_template_id[0]) print('data-----',data_record) # Attachment data ir_values = { 'name': "Report", 'type': 'binary', 'datas': data_record, 'store_fname': 'data_record', 'mimetype': 'application/x-pdf', } data_id = self.env['ir.attachment'].sudo().create(ir_values) print('created data ?----', data_id) template = self.env.ref('y_slnee_test.report_stock_reorder_report_template_id') print('email template------', template) # Associate the created attachment with the email template template.attachment_ids = [(6, 0, [data_id.id])] print('attached file---',template.attachment_ids) email_values = {'email_to': '[email protected]', 'email_from': '[email protected]'} template.sudo().send_mail(1, email_values=email_values, force_send=True) # Remove the attachment from the email template template.attachment_ids = [(3, data_id.id)] return True class StaticProducts(models.AbstractModel): _name = "report.y_slnee_test.report_stock_reorder_report_template" @api.model def _get_report_values(self, docids, data=None): report_data = [] product_ids = self.env['stock.quant'].search([]) for rec in product_ids: if rec.alert_qty: alert_qty = rec.available_quantity - rec.alert_qty if alert_qty < 0: values = {'product': rec.product_id.name or '', 'location': rec.location_id.name or '', 'available': rec.available_quantity or '', 'alert': alert_qty or ''} print(values) report_data.append(values) print(report_data) return { 'docs': report_data, } 当我手动运行 cron 且报告中没有任何内容(只有表标题)时,它正在运行 但当我有价值观时 {'product': 'BROTHER Toner-Kit (TN-2410)', 'location': 'Vendors', 'available': -58.0, 'alert': -68.0} {'product': 'Tintenpatrone schwarz (K-EPS-C13T34714010XL)', 'location': 'Vendors', 'available': -35.0, 'alert': -45.0} 我收到此错误: ValueError: <class 'odoo.addons.base.models.qweb.QWebException'>: "Error to render compiling AST" while evaluating 'model.send_alert_email()' 我确定问题出在这一行: report_template_id = self.env.ref('y_slnee_test.report_stock_alert')._render_qweb_pdf(self.id) 你能帮我吗? XML: <template id="report_stock_reorder_report_template"> <t t-call="web.html_container"> <t t-call="web.basic_layout"> <div class="page"> <div> <style> table, th, td { border: 1px solid black; border-collapse: collapse; } </style> <table class="table table-sm o_main_table"> <thead> <tr> <t t-set="colspan" t-value="4"/> <th class="text-right">Article</th> <th class="text-right">Emplacement</th> <th class="text-right">Qty Alert</th> <th class="text-right">Qty Disponible</th> <th class="text-right">(Qty Disponible - Qty d’Alert)</th> </tr> </thead> <tbody> <t t-if="docs" t-foreach="docs" t-as="l"> <tr> <td> <span t-if ="l.product" t-esc="l.product"/> </td> <td> <span t-if ="l.location" t-esc="l.location"/> </td> <td> <span t-if ="l.available" t-esc="l.available"/> </td> <td> <span t-if ="l.alert" t-esc="l.alert"/> </td> </tr> </t> </tbody> </table> </div> </div> </t> </t> </template> <!-- Definition of the report --> <record id="report_stock_alert" model="ir.actions.report"> <field name="name">Stock Alert Quantity</field> <field name="model">stock.quant</field> <field name="report_type">qweb-pdf</field> <field name="report_name">y_slnee_test.report_stock_reorder_report_template</field> <field name="report_file">y_slnee_test.report_stock_reorder_report_template</field> </record> 我尝试打印每一步来调试代码,我确定问题出在这一行: report_template_id = self.env.ref('y_slnee_test.report_stock_alert')._render_qweb_pdf(self.id) 我不知道如何解决 预览模块的链接,很简单 https://drive.google.com/file/d/1cXJ4DEIox-1LlhKgoDTkmh8xxmm-XQyM/view?usp=sharing

回答 1 投票 0

Odoo 15 如何限制创建的用户查看发票?

我创建了一条记录规则,我希望只有创建发票的用户才能查看它。我创建了记录规则,并将其应用到正确的模块。 ['|', ('create_uid', '=', user.id), ('

回答 1 投票 0

隐藏编辑按钮Odoo15

如何根据情况隐藏编辑按钮? 例如:如果约翰创建了数据,则没有人可以更改它。所以隐藏编辑按钮.. 如何根据情况隐藏编辑按钮? 例如:如果约翰创建了数据,则没有人可以更改它。所以隐藏编辑按钮.. <record id="hideEdit_rule" model="ir.rule"> <field name="name">Hide Edit </field> <field name="model_id" ref="model_hospital_patient" /> <field name="domain_force">[('user', '=', 'john')]</field> <field name="groups" eval="[(4, ref('om_hospital.hospital_management_pratisyen_doctor'))]"/> <field name="perm_read" eval="True"/> <field name="perm_write" eval="False"/> <field name="perm_create" eval="True"/> <field name="perm_unlink" eval="True"/> </record> 我已经尝试过这段代码,如果创建的用户是 john,编辑为 false.. 它不起作用。 记录规则是记录必须满足才能允许操作(创建、读取、更新或删除)的条件。 当用户尝试读取、创建或删除hospital.patient记录时,将检查上述记录规则。要检查创建记录的用户,请使用左侧的 create_uid 并使用上下文值 user 获取当前用户记录。 要检查当前用户是否创建了记录,请使用以下域: <field name="domain_force">[('create_uid', '=', user.id)]</field> 它不能用于隐藏 Edit 按钮,因为调用 write 方法后会检查访问规则 有一个 OCA 模块(Web 访问规则按钮),如果用户无法根据记录访问规则编辑当前记录,该模块会禁用表单视图上的 Edit 按钮。 用途: 使用 Odoo 时,即使用户没有编辑记录的权限,也会显示“编辑”按钮。用户可以编辑记录,但无法保存其更改。现在,用户将无法单击“编辑”按钮。 现在该模块可用于版本 14.0,但是如果您按如下方式更新清单文件,它应该可以工作。 评论以下行: "views/web_access_rule_buttons.xml", 添加以下条目: "assets": {'web.assets_backend': ['web_access_rule_buttons/static/src/js/form_controller.js'],}, 尝试使用以下记录规则: <record id="hideEdit_rule" model="ir.rule"> <field name="name">Hide Edit</field> <field name="model_id" ref="model_hospital_patient"/> <field name="domain_force">[('create_uid', '=', user.id)]</field> <field name="groups" eval="[(4, ref('om_hospital.hospital_management_pratisyen_doctor'))]"/> <field name="perm_write" eval="True"/> </record> 您可以覆盖 fields_view_get 方法并根据条件禁用编辑。 @api.model def fields_view_get(self, view_id=None, view_type='form', toolbar=False, submenu=False): res = super(<MODEL NAME>, self).fields_view_get(view_id=view_id, view_type=view_type, toolbar=toolbar, submenu=submenu) if view_type == 'form' and <ADD YOUR CONDITION HERE>: root = etree.fromstring(res['arch']) root.set('edit', 'false') res['arch'] = etree.tostring(root) else: pass return res Siddharth Tarpada 的答案是正确的并且适用于 Odoo v15。 不要忘记,对于 etree,你还需要: 从 lxml 导入 etree

回答 3 投票 0

继承crm.crm_case_form_view_oppor时出现Odoo ParseError

我想成为 CRM 模块的中间人,所以我认为继承了它: 我想成为 CRM 模块的中间人,所以我继承了它: <odoo> <data> <record id="view_custom_crm_lead_form" model="ir.ui.view"> <field name="name">custom.crm.lead.form</field> <field name="model">crm.lead</field> <field name="inherit_id" ref="crm.crm_case_form_view_oppor"/> <field name="arch" type="xml"> <!-- --> </field> </record> </data> </odoo> 模型和配置文件都很好,因为每当我删除这一行“”一切正常,但有了它我得到一个“ParseError” raise ParseError('while parsing %s:%s, somewhere inside\n%s' % ( odoo.tools.convert.ParseError: while parsing file:/d:/odoo/dev/general_it/views/sales_view.xml:4, somewhere inside <record id="view_custom_crm_lead_form" model="ir.ui.view"> <field name="name">custom.crm.lead.form</field> <field name="model">crm.lead</field> <field name="inherit_id" ref="crm.crm_case_form_view_oppor"/> <field name="arch" type="xml"> <form string="Purchase Receipt"> <group> <field name="name"/> </group> </form> </field> </record> 您的 xml 中使用的父视图是错误的: “crm_case_form_view_oppor”不存在。现有视图是:crm_lead_view_form。 此外,您应该使用 xpath 来扩展父视图,并使用具有以下值的 position 属性: inside 或 after: <record id="view_custom_crm_lead_form" model="ir.ui.view"> <field name="name">custom.crm.lead.form</field> <field name="model">crm.lead</field> <field name="inherit_id" ref="crm.crm_lead_view_form"/> <field name="arch" type="xml"> <xpath expr="//form/sheet/group[1]" position="inside"> <group> <field name="name"/> </group> </form> </field> </record>

回答 1 投票 0

如何使用 OWL 组件打开搜索对话框?

我正在尝试打开一个搜索对话框,类似于使用 OWL 在 Many2one 字段小部件上单击“搜索更多...”时发生的情况。我知道这必须用 Javascript 来完成。 这里...

回答 1 投票 0

从 odoo 的 pdf_viewer 小部件中删除下载按钮

我正在尝试禁用 Odoo (Pdf_viewer) 附件预览小部件中的下载按钮,如下面的代码所示: 我正在尝试禁用位于 Odoo (Pdf_viewer) 附件预览小部件中的下载按钮,如下面的代码所示: <field name="preview" attrs="{'readonly': [('preview', '=', True)]}" widget="pdf_viewer" /> PS:我尝试将该字段设置为只读,但仍然为读者提供整个文件。 我得到了一位朋友的帮助,建议更改包含此按钮模板的 JS 文件,但我不知道执行此操作的步骤! 谢谢您的帮助。 您可以覆盖 _disableButtons 函数并隐藏下载按钮。 示例: var basic_fields = require('web.basic_fields'); basic_fields.FieldPdfViewer.include({ _disableButtons: function (iframe) { $(iframe).contents().find('button#download').hide(); // $(iframe).contents().find('button#secondaryDownload').hide(); this._super(iframe); }, }); 如果您需要使用上下文属性控制下载按钮的可见性,请尝试以下代码: var basic_fields = require('web.basic_fields'); var Context = require('web.Context'); basic_fields.FieldPdfViewer.include({ _disableButtons: function (iframe) { var self = this; if (self.attrs.context) { var context = new Context(self.attrs.context).eval(); if(!context.download) { $(iframe).contents().find('button#download').hide(); // $(iframe).contents().find('button#secondaryDownload').hide(); } } this._super(iframe); }, }); 编辑: 创建一个包含以下内容的 XML 文件,并将其添加到清单文件中的 data 条目中: <?xml version="1.0" encoding="utf-8"?> <odoo> <data> <template id="assets_backend" inherit_id="web.assets_backend" name="assets_backend"> <xpath expr="." position="inside"> <script type="text/javascript" src="/module_name/static/src/js/pdf_viewser.js"></script> </xpath> </template> </data> </odoo> 在pdf_viewser.js下创建static/src/js并添加上面的代码: odoo.define('module_name.PDFViewer', function (require) { "use strict"; var basic_fields = require('web.basic_fields'); basic_fields.FieldPdfViewer.include({ _disableButtons: function (iframe) { $(iframe).contents().find('button#download').hide(); // $(iframe).contents().find('button#secondaryDownload').hide(); this._super(iframe); }, }); }); 这些步骤列于在资源包中添加文件部分。有关更多详细信息,请查看资产管理文档。 您好,这适用于 Odoo 15 吗?

回答 2 投票 0

Odoo KeyError:“套接字”

我正在尝试将几个工作人员添加到 odoo.conf 文件中,一旦我这样做,我遇到了以下问题。 文件“/opt/odoo/addons/bus/websocket.py”,第 817 行,在 open_connection 中 网络...

回答 1 投票 0

如何在odoo 12中隐藏系统托盘菜单项

Odoo 主视图中有一个标题菜单,我想隐藏它以仅向 odoo 中的某个组显示它,到目前为止我将按钮定位在这个路径 odoo/addons/mail/static/src 中/xml/systray.xml 嗬...

回答 3 投票 0

在 Odoo 中扩展 pydantic v2 模型

Odoo 16,Pydantic v2,可扩展-pydantic 1.1.0 使用案例: 带有 pydantic 模型的主模块 MainModel 一个(或多个)附加模块依赖于主模块并使用新的 fi 扩展 MainModel...

回答 1 投票 0

Odoo websocket 问题

我的日志中不断出现此问题。我看到了一些关于可能是什么问题以及如何解决它的参考资料,但没有运气解决它。 日志: 2023-05-08 15:41:42,422 1130561 信息直播

回答 1 投票 0

如何配置 Odoo 基本 URL

有没有什么方法可以配置 Odoo 基本 URL “https://SOME_URL/web...” 到 “https://SOME_URL/PROJECT_NAME/web...”? 可以通过“Odoo.conf”本身完成还是

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.