我想fields_view_get在做一些函数后动态触发函数.我重写该函数fields_view_get并返回我的结果.仅在第一次调用实际函数时才会影响XML视图.所以我需要刷新视图以影响arch的新值.
有没有办法让odoo视图fields_view_get在第一次调用函数后才能通过函数改变?
我的尝试:
# here fields view get changes the button string from getting arch
# I overrided the fields_view_get on event model and its get affected and works
# perfectly when I click on main menu Event.but not after the records loaded.
@api.multi
def send_mail_event(self):
x = self.event_id.fields_view_get(view_id=None, view_type='form', toolbar=False, submenu=False)
self.send_mail_event_reg_link(test=True)
return x
Run Code Online (Sandbox Code Playgroud) 我试图在一个Odoo表单视图中使一个字段不可见.检查"可以出售"时==>"产品经理"应该是不可见的:
我尝试在产品表单的继承视图中使用属性"invisible"与域:
<record model="ir.ui.view" id="product_template_form_inherit">
<field name="name">product.template.product.form</field>
<field name="model">product.template</field>
<field name="inherit_id" ref="product.product_template_only_form_view" />
<field name="arch" type="xml">
<field name="product_manager" position="attributes">
<attribute name="invisible">[('sale_ok', '=', True)]</attribute>
</field>
</field>
</record>
Run Code Online (Sandbox Code Playgroud)
当字段sale_ok为true时,product_manager字段实际上是隐藏的.但是当字段sale_ok再次变为false时,字段product_manager保持隐藏状态.
我也试过这个:
<field name="product_manager" attrs="{'invisible': [('sale_ok', '=', True)]}"/>
Run Code Online (Sandbox Code Playgroud)
这也不起作用.
我也尝试过其他域名:
[('sale_ok', '==', True)]
[('sale_ok', '!=', False)]
[('sale_ok', '=', 'True')]
Run Code Online (Sandbox Code Playgroud)
不确定这里有什么问题......当(未)检查时如何使它(in)可见?
我最终得到的是以下内容:选中复选框后,表单应立即更改而不保存.必须添加和删除字段.那可能吗?
编辑:
我现在可以用ChesuCR的答案隐藏/取消隐藏产品经理.但是,当我使用"loc_rack"(存储位置==>机架)尝试相同的操作时,它会给出错误:
Field(s) `arch` failed against a constraint: Invalid view definition
Error details:
Element '<field name="loc_rack">' cannot be located in parent view
Run Code Online (Sandbox Code Playgroud)
这是我使用的代码:
<field name="loc_rack" position="replace">
<field name="loc_rack" attrs="{'invisible': …Run Code Online (Sandbox Code Playgroud) 如何将css文件添加到自定义模块以更改xml视图?我发现这篇文章,但解决方案无效.
我想修改模块中的所有元素,例如表单,列表,输入等.
在 Odoo/openerp 文档中,它说“客户端操作”完全在客户端实现,就是这样。他们没有为 Odoo v10 提供任何有关它的示例详细文档。
有谁知道如何实施客户行动及其全部潜力吗?(我们可以通过客户行动来实现的可能性。)
是否可以扩展搜索视图并添加多个搜索框或复选框以方便用户?
现在只有一个搜索框,有些时候用户不希望点击搜索框,然后键入,然后过滤或选择从过滤器plugin.It过滤器自定义过滤器会很快,如果我可以添加复选框.
我想在KanbanView.buttons和KanbanView.Group之间添加一个模板,以便在我查看"project.task"看板视图时在"project.project"模型中显示描述字段.
我想应该有一些地方可以将这些模板附加到看板视图中,但不幸的是,我找不到它.
我做的是
我创建了一个自定义模板layouts.xml
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<templates>
<t t-name="eric-kanban-view">
<div>This is Eric's kanban view</div>
</t>
</templates>
</data>
</openerp>
Run Code Online (Sandbox Code Playgroud)
我想将模板添加到"project.view_task_kanban"以查找上面的看板视图project.xml
<record id="project_task_custom_kanban" model="ir.ui.view">
<field name="inherit_id" ref="project.view_task_kanban"/>
<field name="model">project.task</field>
<field name="arch" type="xml">
<xpath expr="//templates" position="before">
<t t-call="eric-kanban-view"/>
</xpath>
</field>
</record>
Run Code Online (Sandbox Code Playgroud)
openerp .py
# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
{
'name' : 'project_customized',
'version' : '1.1',
'author' : "Eric Lee",
'description': 'eric\'s Project customized module',
'installable' : True, …Run Code Online (Sandbox Code Playgroud) 我的.py文件是
class Suppiler(models.Model):
_inherit = "res.partner"
author= fields.Boolean(string='Author')
Run Code Online (Sandbox Code Playgroud)
和xml文件是
<data>
<record id="add_supplier_view_inherit" model="ir.ui.view">
<field name="name">res.partner.form</field>
<field name="model">res.partner</field>
<!--<field name="priority">100</field>-->
<field name="inherit_id" ref="base.view_partner_form"/>
<field name="arch" type="xml">
<xpath expr="//field[@name='user_id']" position="before">
<field name="author"/>
</xpath>
</field>
</record>
<record id="supplier_action" model="ir.actions.act_window">
<field name="name">inherit_id</field>
<field name="res_model">res.partner</field>
<field name="view_type">form</field>
<field name="view_mode">form</field>
<field name="help" type="html">
<p class="oe_view_nocontent_create">
click here to create new item!
</p>
</field>
</record>
<menuitem name="suppler_menu" id="new_supplier" parent="custom_Top_menu" action="supplier_action"/>
</data>
Run Code Online (Sandbox Code Playgroud)
我懂了
第1行:......伙伴"."picking_warn_msg"as"picking_warn_msg","res_partn ......
作为错误消息,我无法继续我的项目'odoo'根本没有运行
通过单击按钮,用户应该从给定值创建新订单,并直接重定向到新创建订单的表单视图.通过按钮调用以下方法:
@api.one
def method_name(self):
[...]
vals = [...]
new_order = self.env['sale.order'].create(vals)
self.write({ 'state': 'review', })
return {
'type': 'ir.actions.act_window',
'name': 'sale.view_order_form',
'res_model': 'sale.order',
'res_id': new_order.id,
'view_type': 'form',
'view_mode': 'form',
'target' : 'self',
}
Run Code Online (Sandbox Code Playgroud)
可悲的是没有任何反应,我不知道接下来要尝试什么.我试图将目标更改为new或者current名称,但没有任何变化.两者都没有成功.
编辑:看看我对Carlos回答的评论.
我正在使用 odoo 10。我有一个客户视图,在该客户表单视图中,我还在 one2many 树视图(可编辑)中显示与该特定客户关联的所有订单。
我想做的是我想在 one2many 树视图中显示一个按钮,但我想仅根据条件更改该按钮的颜色。
这是我尝试过的,但它不起作用。
<record id="amgl.customer_form" model="ir.ui.view">
<field name="name">Customer</field>
<field name="model">amgl.customer</field>
<field name="arch" type="xml">
<form string="Create New Customer" duplicate="0">
<sheet>
<group colspan="4">
<group>
<field name="is_admin" invisible="1"/>
<field name="is_custodian" invisible="1"/>
<field name="is_vault" invisible="1"/>
<field name="is_o2m" invisible="1"/>
<field name="is_goldstar" invisible="1"/>
<field name="custodian_edit" invisible="1"/>
<field name="first_name"
attrs="{'readonly':['|',('is_vault','=', True),('custodian_edit','=', True),('is_admin','=', False)]}"/>
<field name="last_name"
attrs="{'readonly':['|',('is_vault','=', True),('custodian_edit','=', True),('is_admin','=', False)]}"/>
<field name="account_number"
attrs="{'readonly':['|',('is_vault','=', True),('custodian_edit','=', True),('is_admin','=', False)]}"/>
<field name="gst_account_number" string="GoldStar Account Number"
attrs="{'readonly':['|',('is_vault','=', True),('custodian_edit','=', True),('is_admin','=', False)], 'invisible':[('is_goldstar','=',False)]}"/>
</group>
<group>
<field name="date_opened"
attrs="{'readonly':['|',('is_vault','=', True),('custodian_edit','=', …Run Code Online (Sandbox Code Playgroud)