常用意见
This commit is contained in:
@@ -13,6 +13,7 @@ class SoongNote(models.Model):
|
||||
create_note = fields.Text(string="创建信息", readonly=True)
|
||||
write_note = fields.Text(string="修改信息", readonly=True)
|
||||
use_info = fields.Text(string="使用信息", readonly=True)
|
||||
use_count = fields.Integer(string="使用次数", default=0, readonly=True)
|
||||
|
||||
def _get_tz_now(self):
|
||||
"""返回东八区当前时间字符串"""
|
||||
@@ -28,20 +29,51 @@ class SoongNote(models.Model):
|
||||
line = f"{user_name} {now} {note_name}"
|
||||
vals['create_note'] = line
|
||||
vals['write_note'] = line
|
||||
vals['use_count'] = 1
|
||||
return super().create(vals_list)
|
||||
|
||||
def write(self, vals):
|
||||
now = self._get_tz_now()
|
||||
user_name = self.env.user.name
|
||||
_TRACK_FIELDS = {'create_note', 'write_note', 'use_info'}
|
||||
for rec in self:
|
||||
note_name = vals.get('name', rec.name or '')
|
||||
line = f"{user_name} {now} {note_name}"
|
||||
old = rec.write_note or ''
|
||||
vals_copy = dict(vals)
|
||||
vals_copy['write_note'] = (old + '\n' + line) if old else line
|
||||
# 有信息字段变化时追加 write_note 并计数
|
||||
if 'name' in vals or not (_TRACK_FIELDS & set(vals)):
|
||||
note_name = vals.get('name', rec.name or '')
|
||||
line = f"{user_name} {now} {note_name}"
|
||||
old = rec.write_note or ''
|
||||
vals_copy['write_note'] = (old + '\n' + line) if old else line
|
||||
# 统计本次写入中有多少跟踪字段发生变化
|
||||
changed = len(_TRACK_FIELDS & set(vals_copy))
|
||||
if changed > 0:
|
||||
vals_copy['use_count'] = (rec.use_count or 0) + changed
|
||||
super(SoongNote, rec).write(vals_copy)
|
||||
return True
|
||||
|
||||
def action_open_form(self):
|
||||
"""详情按钮:以 target=new 方式打开 form"""
|
||||
self.ensure_one()
|
||||
return {
|
||||
'type': 'ir.actions.act_window',
|
||||
'name': '审批意见详情',
|
||||
'res_model': 'soong.note',
|
||||
'res_id': self.id,
|
||||
'view_mode': 'form',
|
||||
'target': 'new',
|
||||
}
|
||||
|
||||
def action_reset(self):
|
||||
"""重置按钮:清空使用次数、创建信息、修改信息、使用信息"""
|
||||
for rec in self:
|
||||
super(SoongNote, rec).write({
|
||||
'use_count': 0,
|
||||
'create_note': False,
|
||||
'write_note': False,
|
||||
'use_info': False,
|
||||
})
|
||||
return True
|
||||
|
||||
# type = fields.Selection([('agree', '同意'), ('return', '退回'), ('refuse', '拒绝'), ('super', '督办')],
|
||||
# string="意见类型")
|
||||
# return_type = fields.Char(string="退回类型")
|
||||
|
||||
@@ -1,5 +1,27 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<odoo>
|
||||
<record id="soong_note_form" model="ir.ui.view">
|
||||
<field name="name">soong.note.form</field>
|
||||
<field name="model">soong.note</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="审批意见详情">
|
||||
<sheet>
|
||||
<group>
|
||||
<field name="sequence"/>
|
||||
<field name="name"/>
|
||||
<field name="note_setting_id"/>
|
||||
<field name="use_count"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="create_note" readonly="1"/>
|
||||
<field name="write_note" readonly="1"/>
|
||||
<field name="use_info" readonly="1"/>
|
||||
</group>
|
||||
</sheet>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="soong_note_tree" model="ir.ui.view">
|
||||
<field name="name">soong.note.tree</field>
|
||||
<field name="model">soong.note</field>
|
||||
@@ -8,9 +30,8 @@
|
||||
<field name="sequence" widget="handle"/>
|
||||
<field name="name" required="1"/>
|
||||
<field name="note_setting_id"/>
|
||||
<field name="create_note" readonly="1"/>
|
||||
<field name="write_note" readonly="1"/>
|
||||
<field name="use_info" readonly="1"/>
|
||||
<field name="use_count"/>
|
||||
<button name="action_open_form" string="详情" type="object" icon="fa-info-circle" class="btn btn-blue"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
@@ -21,4 +42,13 @@
|
||||
<field name="view_mode">tree</field>
|
||||
</record>
|
||||
|
||||
<record id="action_soong_note_reset" model="ir.actions.server">
|
||||
<field name="name">重置信息字段</field>
|
||||
<field name="model_id" ref="soong_workflow.model_soong_note"/>
|
||||
<field name="binding_model_id" ref="soong_workflow.model_soong_note"/>
|
||||
<field name="binding_view_types">list</field>
|
||||
<field name="state">code</field>
|
||||
<field name="code">records.action_reset()</field>
|
||||
</record>
|
||||
|
||||
</odoo>
|
||||
|
||||
Reference in New Issue
Block a user