添加功能

This commit is contained in:
zhouzhou
2024-11-15 15:08:57 +08:00
parent 484b66f939
commit 886537fc1c
+19 -7
View File
@@ -2,6 +2,7 @@
from odoo import api, fields, models, _
from odoo.exceptions import UserError, ValidationError
from datetime import datetime
import re
class YuthonJobLv(models.Model):
@@ -32,16 +33,27 @@ class YuthonJobLv(models.Model):
assignment_subsidy = fields.Float(string="作业环境补贴", group_operator=None)
temporary_performance = fields.Float(string="临时绩效补贴", group_operator=None)
@api.model
def read_group(self, domain, fields, groupby, offset=0, limit=None, orderby=False, lazy=True):
res = super(YuthonJobLv, self).read_group(domain, fields, groupby, offset=offset, limit=limit, orderby=orderby,
lazy=lazy)
if 'lv' in groupby:
try:
res.sort(
key=lambda x: int(self.search([('lv', '=', x['lv'])], limit=1).sequence or 0) if x.get('lv') else 0)
except (ValueError, AttributeError):
# 处理 sequence 字段不是数字或不存在的情况
res.sort(key=lambda x: x.get('lv') or '') # 按 lv 值排序,如果 lv 不存在则使用空字符串
def sort_by_sequence_number(item):
lv = item.get('lv')
if lv:
rec = self.search([('lv', '=', lv)], limit=1)
if rec and rec.sequence:
match = re.findall(r'\d+', rec.sequence)
if match:
number_str = "".join(match)
try:
number = int(number_str)
return (not number_str.startswith('0'), number)
except ValueError:
return (False, 0)
return (False, 0) # 首位非0的放前面
res.sort(key=sort_by_sequence_number)
return res