Your browser does not seem to support JavaScript. As a result, your viewing experience will be diminished, and you have been placed in read-only mode.
Please download a browser that supports JavaScript, or enable it if it's disabled (i.e. NoScript).
比如有个Automated Action Rules,自动化动作,可以比较简单的实现当某表被修改时执行某函数。是不是能直接写在某模块代码里面,安装之后就可以实现自动化?
可以的通过模块实现,原理就是通过XML来写入Automated Action Rules的记录,同其他模块的data.xml没什么区别。
顺便问问,一般当A表变动时自动对B表进行某处理这种操作是怎么实现的?
Automated Action Rules定义在A上,如果然后动作方式用代码。
完整的日志是怎样的?
@braidtim 很好的问题 🙂 。 在服务器端python里定义《B object A字段》 的domain,她定义于数据库水平层级(最底层)。换句话说,python端的domain有效于所有使用《B object A字段》的view。而在view中定义的domain,只对该view有效。 如果你不需要数据库端给该字段预过滤,就可以考虑直接写在view中(这个是我个人看法)
有点像required定义于python端和view端的意思, 在python端是表示not null于DB级别,即使代码层create,write也不许该字段为False。而在view端required只是要求在界面该字段中必须填入些内容,对于数据库的约束没有一点影响。
一般不同name做外键,可能会有重复;
一般是在One2many 的表里建一个Many2one字段,
例如:ocp_worker_id = fields.Many2one('xxx')
然后用 ocp_worker_id 做外键
@BraidTim 重新改list view 对应的xml 模板,
框架里用的都是:web/static/src/xml/base.xml 里面的:
tr t-name="ListView.row"
或者自己写widget,具体参考附件上传的widget
@reyouth 在同模块中css加上优先级高的selector来override元素的默认宽度,如 selectorX { Width : xxxx%; } , •tree视图为<table><thead><tr><td>结构,但要注意selectorX别改了其他视图或其他元素 可以在tree视图中加上自定义的class: XML: <tree string="Sales Orders" class="mySales" .../>,效果: <div class="oe_list o_list_view oe_view mySales"><table class="oe_list_content"> CSS: xxx yyy mySales td [mmm="nnn"] { width: %%; }, 这样保证只影响sales 列表视图
calendar时区就是你当前登陆用户时区
@Felix_Cheng 非常感谢 您能抽取宝贵时间来回答,有这个思路我就知道了。太感谢了!!
@萧云飞 谢谢啦. [(4,id)]也可以的.你说的写入顺序具体是指什么?
例子上可以参考:
odoo form view pic url widget
https://renjie.me/2016/09/10/odoo-form-view-pic-url-widget/
最好先贴代码,便于别人快速定位问题