diff --git a/header_search_panel/static/src/search/header_search/components/quick_filter/quick_filter.js b/header_search_panel/static/src/search/header_search/components/quick_filter/quick_filter.js
index d41858434..e19836058 100644
--- a/header_search_panel/static/src/search/header_search/components/quick_filter/quick_filter.js
+++ b/header_search_panel/static/src/search/header_search/components/quick_filter/quick_filter.js
@@ -1,12 +1,11 @@
/** @odoo-module **/
-import { Component, useState, onWillStart } from "@odoo/owl";
+import { Component, onWillStart } from "@odoo/owl";
import { useService } from "@web/core/utils/hooks";
export class QuickFilter extends Component {
setup() {
super.setup();
this.orm = useService("orm");
- this.state = useState({ filters: [] });
this.activeFilterIds = this.env.searchModel.headerSearchInfo.quickFilter[this.props.groupId]?.filters || [];
onWillStart(async () => {
await this.loadFilters();
@@ -17,8 +16,13 @@ export class QuickFilter extends Component {
* 返回过滤器列表
*/
get filters() {
- // 这里直接返回 state,避免在 getter 里做异步
- return this.state.filters;
+ // 通过ID查询过滤器列表
+ const filters = this.env.searchModel.headerSearchInfo.headerQuickFilter[this.props.id].filters || [];
+ filters.forEach((filter, fdx) => {
+ filter.isChecked = this.activeFilterIds.includes(filter.inputId);
+ filter.index = fdx + 1;
+ });
+ return filters;
}
async loadFilters() {
@@ -27,12 +31,11 @@ export class QuickFilter extends Component {
const filters = searchModel.headerSearchInfo.headerQuickFilter[this.props.id]?.filters || [];
for (let [idx, filter] of filters.entries()) {
const domain = this.safeParseDomain(filter.domain);
- const count = await this.orm.searchCount(resModel, domain);
- filter.count = count;
- filter.isChecked = this.activeFilterIds.includes(filter.inputId);
- filter.index = idx + 1;
+ if (filter.show_number) {
+ const count = await this.orm.searchCount(resModel, domain);
+ filter.count = count;
+ }
}
- this.state.filters = filters;
}
/**
* 设置活动的过滤器
diff --git a/yuthon_hr_attendance/models/hr_attendance.py b/yuthon_hr_attendance/models/hr_attendance.py
index b61211249..e25a25d9d 100644
--- a/yuthon_hr_attendance/models/hr_attendance.py
+++ b/yuthon_hr_attendance/models/hr_attendance.py
@@ -59,6 +59,7 @@ class HrAttendance(models.Model):
is_month = fields.Boolean(string="是否为本月数据", compute='_compute_month_status', store=True)
is_last_month = fields.Boolean(string="是否为上月数据", compute='_compute_month_status', store=True)
is_holiday = fields.Boolean(string="是否是假期")
+ correct_result = fields.Text(string="修正原因")
def create_attendance_data_holiday(self):
"""
diff --git a/yuthon_hr_attendance/views/hr_attendance_views.xml b/yuthon_hr_attendance/views/hr_attendance_views.xml
index 7eafacc95..9ecaac926 100644
--- a/yuthon_hr_attendance/views/hr_attendance_views.xml
+++ b/yuthon_hr_attendance/views/hr_attendance_views.xml
@@ -41,7 +41,8 @@
-
+
+
diff --git a/yuthon_hr_attendance/wizard/attendance_correct_wizard.py b/yuthon_hr_attendance/wizard/attendance_correct_wizard.py
index 72e411e63..d0c4944d6 100644
--- a/yuthon_hr_attendance/wizard/attendance_correct_wizard.py
+++ b/yuthon_hr_attendance/wizard/attendance_correct_wizard.py
@@ -13,11 +13,13 @@ class AttendanceCorrectWizard(models.TransientModel):
_description = "考勤修正弹窗"
attendance_id = fields.Many2one('hr.attendance', string="考勤记录")
+ correct_result = fields.Text(string="修正原因")
def confirm(self):
for record in self:
# 准备更新的值
values = {
+ 'correct_result': self.correct_result,
'is_approval': True,
'is_abnormal': False,
'is_no_card': False,
diff --git a/yuthon_hr_attendance/wizard/attendance_correct_wizard.xml b/yuthon_hr_attendance/wizard/attendance_correct_wizard.xml
index 8edd72165..b70a49eaf 100644
--- a/yuthon_hr_attendance/wizard/attendance_correct_wizard.xml
+++ b/yuthon_hr_attendance/wizard/attendance_correct_wizard.xml
@@ -6,6 +6,9 @@