首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

添加按钮'action_open_quants‘到继承的'product.template’模型- Odoo v8

在Odoo v8中,要将按钮“action_open_quants”添加到继承的“product.template”模型,可以按照以下步骤进行操作:

  1. 创建一个自定义模块(如果还没有)。
  2. 在模块的目录结构中,打开或创建一个名为views.xml的文件。
  3. views.xml文件中,添加以下代码:
代码语言:txt
复制
<record model="ir.ui.view" id="view_product_template_inherit">
    <field name="name">product.template.inherit.view</field>
    <field name="model">product.template</field>
    <field name="inherit_id" ref="product.product_template_only_form_view"/>
    <field name="arch" type="xml">
        <xpath expr="//form" position="attributes">
            <attribute name="create">false</attribute>
        </xpath>
        <xpath expr="//form//sheet//notebook//page[@string='Inventory']" position="after">
            <page string="Quants">
                <field name="quants" widget="one2many_list" context="{'active_test': False}">
                    <tree editable="bottom">
                        <!-- Add your desired fields here -->
                    </tree>
                </field>
            </page>
        </xpath>
    </field>
</record>
  1. views.xml文件中,添加以下代码来定义按钮的行为:
代码语言:txt
复制
<record model="ir.actions.act_window" id="action_open_quants">
    <field name="name">Open Quants</field>
    <field name="res_model">stock.quant</field>
    <field name="view_mode">tree,form</field>
    <field name="view_type">form</field>
    <field name="domain">[('product_id', '=', active_id)]</field>
    <field name="context">{'search_default_product_id': active_id}</field>
    <field name="help" type="html">
        <p class="oe_view_nocontent_create">
            Click to view the quants for this product.
        </p>
    </field>
</record>
  1. views.xml文件中,添加以下代码来将按钮添加到模型中:
代码语言:txt
复制
<record model="ir.ui.view" id="view_product_template_inherit_form">
    <field name="name">product.template.inherit.form.view</field>
    <field name="model">product.template</field>
    <field name="inherit_id" ref="product.product_template_only_form_view"/>
    <field name="arch" type="xml">
        <xpath expr="//form//sheet//notebook//page[@string='Inventory']" position="after">
            <button name="%(action_open_quants)d" string="Open Quants" type="action"/>
        </xpath>
    </field>
</record>
  1. views.xml文件中,添加以下代码来将新的视图和按钮与模型关联起来:
代码语言:txt
复制
<record model="ir.ui.view" id="view_product_template_inherit_form">
    <field name="name">product.template.inherit.form.view</field>
    <field name="model">product.template</field>
    <field name="inherit_id" ref="product.product_template_only_form_view"/>
    <field name="arch" type="xml">
        <xpath expr="//form" position="attributes">
            <attribute name="create">false</attribute>
        </xpath>
        <xpath expr="//form//sheet//notebook//page[@string='Inventory']" position="after">
            <page string="Quants">
                <field name="quants" widget="one2many_list" context="{'active_test': False}">
                    <tree editable="bottom">
                        <!-- Add your desired fields here -->
                    </tree>
                </field>
            </page>
        </xpath>
        <xpath expr="//form//sheet//notebook//page[@string='Inventory']" position="after">
            <button name="%(action_open_quants)d" string="Open Quants" type="action"/>
        </xpath>
    </field>
</record>
  1. 保存并关闭views.xml文件。
  2. 在模块的目录结构中,打开或创建一个名为__openerp__.py的文件。
  3. __openerp__.py文件中,添加以下代码来声明视图和按钮的依赖关系:
代码语言:txt
复制
'data': [
    'views.xml',
],
  1. 保存并关闭__openerp__.py文件。
  2. 在Odoo中重新加载模块,以使更改生效。

现在,你应该能够在继承的“product.template”模型中看到一个名为“Open Quants”的按钮,并且点击该按钮将打开一个包含与该产品相关的quants的视图。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

odoo 给列表视图添加按钮实现数据文件导入

实践环境 Odoo 14.0-20221212 (Community Edition) 代码实现 模块文件组织结构 说明:为了更好表达本文主题,一些和主题无关文件、代码已略去 odoo14\custom...> 说明:,其中estate_customer_tree为下文javascript中定义组件,实现添加自定义按钮...> estate_customer_tree 组件定义 js实现 为列表视图添加自定义上传数据文件按钮 odoo14\custom\estate\static\src\js\estate_customer_tree_upload.js...class属性值 替换estate.CustomerHiddenUploadForm为在对应按钮视图模板中定义隐藏表单模版名称 替换EstateCustomerListView.buttons为对应按钮视图模板中定义按钮模版名称...,上下文节点命名属性将被设置为属性元素值(如果已经存在则替换,如果不存在则添加) 注意:参考官方文档,t-extend这种继承方式为旧继承方式,已废弃,笔者实践了最新继承方式,如下 <?

3.5K30

odoo wizard界面显示带复选框列表及勾选数据获取

实践环境 Odoo 14.0-20221212 (Community Edition) 需求描述 如下图(非实际项目界面截图,仅用于介绍本文主题),打开记录详情页(form视图),点击某个按钮(图中"...选取ffers"按钮),弹出一个向导(wizard)界面,并将详情页中内联tree视图("Offers" Tab页)列表记录展示向导界面,且要支持复选框,用于选取目标记录,然执行目标操作。...向导只是一个继承TransientModel而非model模型。...以上参数同下文saveSelectionsToSessionStorage 参数可同时共存 如果需要将action绑定指定模型指定视图Action,可以在ir.actions.act_window定义中添加...access_demo_wizard_model,access_demo_wizard_model,model_demo_wizard,base.group_user,1,1,1,1 注意:wizard模型也是需要添加模型访问权限配置

5.3K60
  • odoo 权限管理学习总结

    用户组和用户组关系:用户组可以被用户组继承(伪继承),当继承某个用户组时,本组用户也会自动加入继承用户组。...--定义用户组继承自哪些组,也就是说该用户组也拥有这些继承权限--> Users & Groups -> Users用户详情页Access Rights按钮查看。...注意:通过为当前视图中目标字段添加groups属性实现权限控制仅作用于当前视图,如果希望当前视图模型(Model)所有视图中,对该字段实现统一权限控制话,需要在模型定义中,为目标字段添加groups...(参考网络资料,未实践验证) 按钮权限(按钮级别) 类似字段权限控制,仅需在在对应视图中,为目标按钮元素,添加groups属性即可。

    10.1K20

    odoo 开发入门教程系列-模块交互

    模块交互 在上一章中,我们使用继承来修改模块行为。在我们房地产场景中,我们希望更进一步,能够为客户生成发票。...练习--创建链接模块 创建依赖estate 和account estate_account 空壳模块,创建以后安装该模块。你可能会注意,Invoicing 应用也被安装了。...我们希望为estate.property模型添加功能,即我们希望在出售房产时添加一些额外逻辑。 第一步,我们需要扩点击“Sold”按钮时调用操作。...为此,我们需要在estate_account模块中为创建一个模型继承estate.property模型。...不幸是,没有一种简单方法可以知道如何在Odoo中创建任何给定对象。大多数时候,有必要查看其模型,以找到所需字段并提供适当值。 学习一个好方法是看看其他模块是如何完成你想做事情

    1.7K10

    odoo 开发入门教程系列-继承(Inheritance)

    为此,我们需要向res.users模型添加一个字段,并调整其视图以显示它。 Odoo提供了两种继承机制来以模块化方式扩展现有模型。...第一继承机制允许模块通过以下方式修改在另一个模块中定义模型行为: 向模型添加字段 覆盖模型中字段定义 给模型添加约束 给模型添加方法 重写模型现有方法 第二种继承机制...odoo中,第一种机制最常用。在我们例子中,我们希望向现有模型添加一个字段,这意味着我们将使用第一种机制。...练习--添加字段用户模型 添加一下字段res.users: Field Type property_ids One2many inverse of salesman_id to estate.property...练习--添加字段用户视图 添加property_ids字段 base.view_users_form 中新建notebook页 提示: 可以在 这里找到继承用户视图示例。

    2.2K20

    odoo 为form表单视图添加chatter功能

    实践环境 Odoo 14.0-20221212 (Community Edition) 需求描述 如图,给表单新增一个类似聊天窗口,当记录一些表单活动(本例为自动记录当前记录状态变化) 需求实现 模型定义...odoo14\custom\estate\models\estate_property.py 需要继承mail.thread模型,并为需要追踪字段设置tracking属性,并设置属性值为真值 #!...estate.property' _description = 'estate property table' _inherit = ['mail.thread'] # 必须继承模型...,该模型类型为models.AbstractModel,其定义文件为 odoo14\odoo\addons\mail\models\mail_thread.py,其字段命名均以message_开头...,类型为models.AbstractModel,定义在文件 odoo14\odoo\addons\mail\models\mail_activity.py,其字段命名均以activity_,对应模型定义中

    75420

    odoo context上下文用法总结

    _context is {'key1': True, 'key2': True} 需要注意是,上下文是和记录集绑定,修改后上下文并不会在其它记录集中共享 应用场景示例 用于action,为关联视图添加默认搜索...用于搜索视图,添加分组查询条件 视图设计 说明:'group_by': '分组字段名称' 用于视图对象按钮,传递数据给模型方法 模型设计 #!...> 说明:context属性值中字典键值如果为模型中定义字段名称,则该字段名称必须以元素形式,出现在模型对应视图(即不能是内联视图,比如内联Tree列表)中,否则会出现类似错误提示...为可编辑列表视图字段搜索添加查询过滤条件](odoo 为可编辑列表视图字段搜索添加查询过滤条件.md) 用于记录集,传递数据给模型方法 模型设计 #!

    2.1K20

    Odoo开发指北 01 初识Odoo

    继承开发 Odoo提供了大量现成模块给我们使用,但是某些情况下,我们需要制定符合自己需求功能模块。Odoo开发一条黄金准则是——不要修改现有的模块,以免改动后代码与原有模块产生混淆。...因此,odoo提供了继承机制,我们可以选择一个基础模块,然后继承它,在它基础上进行修改、扩展,生成自己模块。...然后使用自己模块:把自己模块路径设置odoo中,重启odoo让其搜索自定义模块,即可通过odoo进行安装。...类,定义出模型类会自动与Odoo提供ORM接口匹配,也就是说这些模型类会自动存入sql中。...脚手架 odoo-bin scaffold 命令新建了我们 aaa 应用 …/odoo-bin scaffold aaa 模块开发流程 分析模块模型,得出模型所需字段有哪些,然后定义模型类——

    2.4K30

    odoo 开发入门教程系列-约束(Constraints)

    约束(Constraints) 上一章介绍了向模型添加一些业务逻辑能力。我们现在可以将按钮链接到业务代码,但如何防止用户输入错误数据?...例如,在我们房地产模块中,没有什么可以阻止用户设置负预期价格。 odoo提供了两种设置自动验证恒定式方法:Python约束 and SQL约束。...SQL 参考:与此主题相关文档可以查看 Models 和PostgreSQL文档 我们通过模型属性_sql_constraints来定义SQL约束,该属性被赋值为一个包含三元组(name, sql_definition..., ] 练习--添加SQL约束 添加以下约束对应模型: 房产预期价格必须为正数 房产售价必须为正数 报价必须为正数 房产标签名称和类型名称必须唯一 使用-u estate选项重新启动服务器以查看结果...Python约束 添加售价不能低于预期价格90%约束 提示: 报价生效前,保持售价为0。

    1.5K20

    odoo 开发入门教程系列-模型和基本字段

    模型和基本字段 在上一章末尾,我们创建一个odoo模块。然而,此时它仍然是一个空壳,不允许我们存储任何数据。...ORM 层是odoo一个关键组件。该层避免了手动写入大部分SQL并提供可扩展性和安全服务. 业务对象被定义为继承于 ModelPython类。可以通过在定义中设置属性来配置model。...api, SUPERUSER_ID 练习 创建estate_property表最小化模型odoo14/custom/estate/models/estate_property.py 中定义model...有两大类领域字段:‘简单’字段--直接存储在模型表中原子值,形如Boolean, Float, Char, Text, Date 和Selection, ‘关系型’ 字段--连接相同或者不同模型记录...给模型表estate_property添加字段 添加以下字段表中 Field Type name Char description Text postcode Char date_availability

    2.3K30

    odoo ORM API学习总结兼orm学习教程

    用于多继承模块共享抽象父类,不会在数据库中创建模型表 系统为每个数据库自动实例化每个模型一次。...取决于字段属性,添加一个默认公司domain class odoo.fields.One2many[源代码] One2many字段值为 comodel_name中所有满足条件记录结果集,而目标模型...取决于字段属性,添加一个默认公司条件 limit (int) – 读取时用可选限制 注意:odoo不会在当前模型对应表中为One2many,Many2many类型属性建立对应表字段,但会为Many2one...and extension) Odoo提供三种不同机制,以模块化方式扩展模型: 从现有模型创建新模型,向副本中添加新信息,但保留原始模块 扩展其他模块中定义模型,替换以前版本 将模型一些字段委派给它包含记录...经典继承 当同时使用_inherit和 _name 属性时,Odoo使用现有模型(通过_inherit提供)作为base创建新模型

    13.4K10

    odoo 开发入门教程系列-基本视图

    在上一章中已经看到,odoo能够为给定模型生成默认视图。实际上,默认视图对于业务应用程序来说是不可接受。相反,我们至少应该以逻辑方式组织各个字段。 视图是在带有操作和菜单XML文件中定义。...> 注意:暂时不要添加示例中 editable="bottom"属性 说明: 自定义列表名称 模型名称,即...筛选器必须具有以下属性之一: domain:将给定domain添加到当前搜索 dontext:添加一些context当前搜索,使用group_by按给定字段名称对结果分组。...在odoo中,domain对记录上条件进行编码:domain是用于选择模型记录子集条件列表。每个条件都是一个包含字段名、运算符和值三元组。...模型定义一个搜索视图 添加过滤和分组 添加以下内容之前创建就搜索视图 一个显示avaliable地产过滤器,也就说,state应该为 “New“ 或者“Offer Received”。

    3.3K40

    Odoo 菜单定义和修改学习总结

    odoo菜单定义和修改学习总结 环境 odoo-14.0.post20221212.tar 定义菜单 方式1: groups 逗号分隔res.groups模型外部ID序列,形如groups="group_account_user,group_account_manager...这种修改方式之所以特殊,是因为它不修改原有菜单定义,而是通过重新定义菜单来修改,可以简单类比为“继承”,具体做法如下: 定义一个新菜单,将其id属性值设置为原有菜单所在模块名称及其...,添加子菜单(如果需要的话),添加方式可以参考上文所述,需要注意是,不管采用哪种方式,原有菜单子菜单依然存在,并显示为新定义菜单子菜单 隐藏原有菜单子菜单(如果需要的话) 定义一个<record...将其model设置为"ir.ui.menu" 添加子元素 ,其中eval=False则表示隐藏,eval=True表示显示

    1.4K10

    odoo 开发入门教程系列-一些用户界面

    上一章,我们通过CSV文件添加了数据。当需要添加数据格式简单时,用CSV格式还是很方便,当数据格式更复杂时(比如视图架构或者一个邮件模板),我们使用XML格式。...动作可以通过三种方式触发 : 点击菜单项目(链接接到指定动作) 点击视图按钮(如果与action关联) 对象上下文action 本章仅涵盖第一种情况。...,直接从action获取,即为action属性值 练习 添加菜单 在合适目录(本例中为odoo14/custom/estate/models/views)创建 estate_menus.xml 文件...我们看到一些属性,如required=True,会影响数据库中表模式。其他属性也将影响视图或提供默认值。 练习 -- 添加一些属性字段。...当需要相关行为时,需要在模型中定义这些保留字段。 练习 -- 添加active字段 添加一个 active 字段estate.property 模型

    2.9K30

    odoo 开发入门教程系列-计算字段和变更(Computed Fields And Onchanges)

    计算字段和变更(Computed Fields And Onchanges) 模型之间关系是任何Odoo模块关键组成部分。它们对于任何业务案例建模都是必要。...添加字段表单视图,正如本章目标中展示那样 对于关系型字段,可以使用通过字段路径作为依赖项: description = fields.Char(compute="_compute_description...练习--计算最佳报价 添加best_price字段estate.property。...练习--为报价计算一个有效期 添加以下字段 estate.property.offer 模型: Field Type Default validity Integer 7 date_deadline...始终首选computed field,因为它们也是在表单视图上下文之外触发。永远不要使用onchange将业务逻辑添加模型中。

    3.1K30

    odoo 为可编辑列表视图字段搜索添加查询过滤条件

    实践环境 Odoo 14.0-20221212 (Community Edition) 需求描述 如下图,列表网仓记录详情页面(form视图),编辑内联视图中货主记录,为货主和仓库字段搜索,添加过滤条件...,具体如下: 添加、编辑货主时,下拉列表中只展示选取和当网仓记录所属公司关联货主,点击搜索更多,仅展示和当前网仓记录所属公司关联货主 添加、编辑货主时,下拉列表中只展示选取和当网仓记录关联仓库(...“仓库” Tab页中添加仓库),点击搜索更多,仅展示和当前网仓记录关联仓库。...模型设计 说明:为了更好体现本文主题,部分非关键代码已省略,即做了适当模型简化处理 # 网仓 class OmsNetwork(models.Model): _name = 'oms.network...--此处代码已省略--> 添加过滤条件代码实现 修改视图,给视图添加context <?xml version="1.0" encoding="UTF-8" ?

    1.1K30
    领券