前两天的博客里写了一下如何添加归档操作减少服务器的压力,但是没有增添归档标识,和官方的有点差异,今天来添加这个web视图。
一行代码即可:添加后如图所示:(还能修改颜色,以及内容)
代码:在from表单的sheet下添加就行:【title】与【bg_color】可更改
<widget name="web_ribbon" title="Archived" bg_color="bg-danger"
attrs="{'invisible':[('active','=',True)]}"/>
更改一下【title】与【bg_color】试一试:bg_color:(bg-danger红色 bg-success绿色)
<widget name="web_ribbon" title="已成功存档" bg_color="bg-success"
attrs="{'invisible':[('active','=',True)]}"/>
粘贴一下mykid的完整代码,以便我以后还能找的到:
from odoo import fields, models, api, _
class mykid(models.Model):
_name = "mykid.mykid"
_description = "mykid模块"
_rec_name = "mysale_name"
lines_id = fields.Many2one('mysale.lines', string="lines_id")
mysale_gender = fields.Char()
value = fields.Char()
# related = 'mysale_name.mysale_gender'
mysale_name = fields.Many2one('mysale.mysale', string="用户姓名")
value2 = fields.Integer(compute='_compute_value2')
active = fields.Boolean(string="Active", default=True)
# active是关键属性
def action_mykid(self):
return {
'type': 'ir.actions.act_window',
'name': 'mysale_tree',
'res_model': 'mysale.mysale',
'view_mode': 'tree,form',
'domain': [('name', '=', self.mysale_name.name)],
'target': 'current',
}
def _compute_value2(self):
for rec in self:
value2 = self.env['mysale.mysale'].search_count([('name', '=', rec.mysale_name.name)])
self.value2 = value2
# 默认获取函数
@api.model
def default_get(self, fields_list):
res = super(mykid, self).default_get(fields_list)
print('res', res)
res['value'] = 'test_value'
return res
@api.onchange('mysale_name')
def onchange_product_name(self):
if self.mysale_name:
if self.mysale_name.gender:
self.mysale_gender = self.mysale_name.gender
else:
self.mysale_gender = ''
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<record model="ir.actions.act_window" id="mykid_action_window">
<field name="name">mykid 视图</field>
<field name="res_model">mykid.mykid</field>
<field name="view_mode">tree,form,kanban</field>
</record>
<record model="ir.ui.view" id="mykid_list_tree">
<field name="name">mykid_tree</field>
<field name="model">mykid.mykid</field>
<field name="arch" type="xml">
<tree sample="1">
<field name="mysale_name" optional="show"/>
<field name="mysale_gender" optional="show"/>
<field name="value" optional="hide"/>
<field name="value2" optional="hide"/>
</tree>
</field>
</record>
<!-- 自定义mykid视图 -->
<record id="mykid_kanban" model="ir.ui.view">
<field name="name">mykid kanban</field>
<field name="model">mykid.mykid</field>
<field name="arch" type="xml">
<kanban sample="1">
<field name="mysale_name"/>
<field name="mysale_gender"/>
<field name="value"/>
<field name="value2"/>
<templates>
<t t-name="kanban-box">
<div class="oe_kanban_global_click">
<div class="o_kanban_image">
<img t-att-src="kanban_image('im_livechat.channel', 'image_128')"
class="img-fluid" alt="Channel"/>
</div>
<ul>
<li>mysale_name:
<field name="mysale_name"/>
</li>
<li>mysale_gender:
<field name="mysale_gender"/>
</li>
<li>value:
<field name="value"/>
</li>
</ul>
</div>
</t>
</templates>
</kanban>
</field>
</record>
<record model="ir.ui.view" id="mykid_list_form">
<field name="name">mykid_form</field>
<field name="model">mykid.mykid</field>
<field name="arch" type="xml">
<form>
<sheet>
<widget name="web_ribbon" title="已成功存档" bg_color="bg-success"
attrs="{'invisible':[('active','=',True)]}"/>
<div class="oe_button_box" name="button_box">
<button name="action_mykid" class="o_stat_button" icon="fa-calendar" type="object">
<div class="o_stat_info">
<field name="value2" class="o_stat_value"/>
<span class="o_stat_text">Test</span>
</div>
</button>
</div>
<group class="top">
<group class="left">
<field name="mysale_name" string="用户姓名"/>
<field name="mysale_gender" string="用户性别" readonly="1" force_save="1"/>
<field name="active" invisible='1'/>
</group>
<group class="right">
<field name="value" string="test_1"/>
<field name="value2" string="test_count" readonly="1"/>
</group>
</group>
<notebook>
<page string="my notebook" name="mysale_notebook">
<group>
<field name="mysale_name"/>
</group>
</page>
<page string="my notebook2" name="mykid">
<tree editable="bottom">
<field name="mysale_name"/>
</tree>
</page>
</notebook>
</sheet>
</form>
</field>
</record>
<!-- 写一个search 搜索条件 -->
<record model="ir.ui.view" id="mykid_search">
<field name="name">mykid_search</field>
<field name="model">mykid.mykid</field>
<field name="arch" type="xml">
<search string="search_mykid">
<field name="mysale_name"/>
<field name="value"/>
<separator/>
<filter string="Archived" name="inactive" domain="[('active','=',False)]"/>
</search>
</field>
</record>
<menuitem id="menu_1_list2"
name="mykid"
parent="menu_1_list"
action="mykid_action_window"
sequence="20"/>
</odoo>