odoo开发问题
odoo
odoo明细行字段值显示不全问题
在对应字段的field中加入style属性如下:
style="white-space: pre-wrap"
odoo明细行字段隐藏
在对应字段的field中加入attrs属性如下:
attrs="{'column_invisible': [('parent.state', 'in', ('draft', 'sales'))]}"
parent.state既是主表的状态字段
odoo明细行排序
在对应tree中加入以下属性
default_order='字段 desc 字段 asc'
odoo设置明细行字段宽度
在模块/static/src/css路径下创建css文件
.o_list_table th[data-name="要改的字段名"] {
min-width: 50px !important;
width: 50px !important;
}
在模块/static/src/xml路径下创建xml文件导入css,再将该xml注册到manifest
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<template id="assets_backend" name="production_plan_assets_backend" inherit_id="web.assets_backend">
<xpath expr="." position="inside">
<link rel="stylesheet" type="text/css" href="/production_plan/static/src/css/width.css"/>
</xpath>
</template>
</odoo>
Many2one字段自定义tree视图
1、单独写好自定义tree视图。
2、需要在Many2one 字段视图上context , 指向你需要的视图id
context="{'tree_view_ref': '模块名称.自定义视图的id'}"
odoo中js/javascript的继承扩展
1.重写某方法
odoo.define('sales_extend.QtFormRenderer', function (require) {
"use strict";
var FormRenderer = require('web.FormRenderer');
FormRenderer.include({
_renderOuterGroup: function (node) {
var self = this;
var $result = $('<div/>', {class: 'o_group'});
var nbCols = parseInt(node.attrs.col, 10) || this.OUTER_GROUP_COL;
var colSize = Math.max(1, Math.round(12 / nbCols));
if (node.attrs.string) {
var $sep = $('<div/>', {class: 'o_horizontal_separator'}).text(node.attrs.string);
$result.append($sep);
}
$result.append(_.map(node.children, function (child) {
if (child.tag === 'newline') {
return $('<br/>');
}
var $child = self._renderNode(child);
$child.addClass('o_group_col_' + (colSize * (parseInt(child.attrs.colspan, 10) || 1)));
if (self.$el.hasClass('o_sale_order')) {
$child.addClass('qt_three_columns'); // 此处添加qt_three_columns 属性
}
return $child;
}));
this._handleAttributes($result, node);
this._registerModifiers(node, this.state, $result);
return $result;
},
});
return FormRenderer;
});
2.xml将js文件导入,再将xml注册到manifest
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<template id="assets_backend" name="sales_extend_assets_backend" inherit_id="web.assets_backend">
<xpath expr="." position="inside">
<script type="text/javascript" src="/sales_extend/static/src/js/three_columns.js"/>
</xpath>
</template>
</odoo>
全局修改odoo页面属性或字段属性
1.使用f12检查找到要修改的属性class
2.在static/src/css下新建css文件,类似这样修改即可
.o_form_view .o_group .o_group_col_6{
display: inline-block;
width: 33%; !important;
vertical-align: top;
}