Files
gzth/soong_workflow/models/soong_note.py
T

48 lines
1.8 KiB
Python

# -*- coding: utf-8 -*-
from odoo import api, fields, models, _
from datetime import datetime
import pytz
class SoongNote(models.Model):
_name = 'soong.note'
name = fields.Char(string="审批意见")
sequence = fields.Char(string='序号', store=True)
note_setting_id = fields.Many2one('soong.note.setting', string="意见类型")
create_note = fields.Text(string="创建信息", readonly=True)
write_note = fields.Text(string="修改信息", readonly=True)
use_info = fields.Text(string="使用信息", readonly=True)
def _get_tz_now(self):
"""返回东八区当前时间字符串"""
tz = pytz.timezone('Asia/Shanghai')
return datetime.now(pytz.utc).astimezone(tz).strftime('%Y-%m-%d %H:%M:%S')
@api.model_create_multi
def create(self, vals_list):
now = self._get_tz_now()
user_name = self.env.user.name
for vals in vals_list:
note_name = vals.get('name', '')
line = f"{user_name} {now} {note_name}"
vals['create_note'] = line
vals['write_note'] = line
return super().create(vals_list)
def write(self, vals):
now = self._get_tz_now()
user_name = self.env.user.name
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
super(SoongNote, rec).write(vals_copy)
return True
# type = fields.Selection([('agree', '同意'), ('return', '退回'), ('refuse', '拒绝'), ('super', '督办')],
# string="意见类型")
# return_type = fields.Char(string="退回类型")