From 2e365c671acef2bc211f883302104b626bcbdda9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E9=B9=8F=E5=AE=87?= Date: Tue, 13 Jan 2026 17:48:53 +0800 Subject: [PATCH 1/9] =?UTF-8?q?=E7=89=B9=E7=BA=A7=E6=94=B9=E7=89=B9?= =?UTF-8?q?=E6=80=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- room/views/room_booking_views.xml | 2 +- soong_workflow/views/soong_workflow_inspector_views.xml | 2 +- yuthon_holiday/views/hr_leave_batch.xml | 2 +- yuthon_holiday/views/yuthon_breastfeed_leave_views.xml | 2 +- yuthon_holiday/views/yuthon_fixes_approval_views.xml | 2 +- yuthon_hr_attendance/views/back_approval.xml | 2 +- yuthon_hr_attendance/views/card_approval.xml | 2 +- yuthon_hr_attendance/views/duty_approval.xml | 2 +- yuthon_hr_attendance/views/expatriation_approval.xml | 2 +- yuthon_hr_attendance/views/go_approval.xml | 2 +- yuthon_hr_attendance/views/leave_approval.xml | 2 +- yuthon_hr_attendance/views/meal_approval.xml | 2 +- yuthon_hr_attendance/views/overtime_approval.xml | 2 +- yuthon_hr_attendance/views/remove_holiday_approval.xml | 2 +- .../views/yuthon_abnormal_approval_views.xml | 2 +- .../views/yuthon_adjustments_approval_views.xml | 2 +- .../views/yuthon_customer_approval_views.xml | 2 +- .../views/yuthon_shift_approval_views.xml | 2 +- .../views/yuthon_special_approval_views.xml | 2 +- .../views/contract_review_approval_views.xml | 2 +- .../views/property_reimbursement_form_views.xml | 2 +- .../views/yuthon_appointment_approval_views.xml | 2 +- .../views/yuthon_department_change_viwes.xml | 2 +- .../views/yuthon_employee_add_views.xml | 2 +- .../views/yuthon_interview_approval_views.xml | 2 +- .../views/yuthon_leaving_approval_views.xml | 2 +- .../views/yuthon_message_login_views.xml | 2 +- .../views/yuthon_onboard_approval_views.xml | 2 +- .../views/yuthon_pre_examination_views.xml | 2 +- .../views/yuthon_prepare_approval_views.xml | 2 +- .../views/yuthon_reassignment_approval_views.xml | 2 +- .../views/yuthon_recruitment_approval_views.xml | 2 +- .../views/yuthon_regularization_approval_views.xml | 2 +- .../views/yuthon_renewal_approval_views.xml | 2 +- .../views/yuthon_retired_approval_views.xml | 2 +- .../views/yuthon_reward_approval_views.xml | 2 +- .../views/yuthon_service_approval_views.xml | 2 +- .../views/yuthon_social_files_approval_view.xml | 2 +- .../views/yuthon_transfer_approval_views.xml | 2 +- yuthon_issue/views/issue_approval_views.xml | 2 +- yuthon_issue/views/issue_library_views.xml | 8 ++++---- yuthon_issue/views/issue_meeting_minutes_views.xml | 2 +- yuthon_lessee_service/views/property_report_repair.xml | 2 +- yuthon_maintain/views/processing_order_approval_views.xml | 2 +- yuthon_maintain/views/property_device_repair_views.xml | 2 +- yuthon_maintain/views/property_report_repair.xml | 2 +- yuthon_notice/views/yuthon_notice_views.xml | 2 +- yuthon_official/views/yuthon_cross_departmental_views.xml | 2 +- yuthon_official/views/yuthon_file_processing_views.xml | 2 +- .../views/yuthon_official_incoming_labor_views.xml | 2 +- .../views/yuthon_official_incoming_normal_views.xml | 2 +- .../views/yuthon_official_incoming_party_views.xml | 2 +- yuthon_official/views/yuthon_official_labor_views.xml | 2 +- yuthon_official/views/yuthon_official_party_views.xml | 2 +- yuthon_official/views/yuthon_official_views.xml | 2 +- yuthon_property_approval/views/payment_process_viwes.xml | 2 +- .../views/perperty_claim_approval_views.xml | 2 +- .../views/property_accounting_approval_views.xml | 2 +- .../views/property_accounts_approval_views.xml | 2 +- .../views/property_approval_views.xml | 2 +- .../views/property_bills_payable_views.xml | 2 +- .../views/property_borrowing_approval_views.xml | 2 +- yuthon_property_approval/views/property_capacity.xml | 2 +- .../views/property_construction_approval_views.xml | 2 +- .../views/property_current_approval_views.xml | 2 +- .../views/property_delegated_agent_views.xml | 2 +- .../views/property_design_approval_views.xml | 2 +- yuthon_property_approval/views/property_eligibility.xml | 2 +- .../views/property_engineering_approval_views.xml | 2 +- .../views/property_handover_views.xml | 2 +- .../views/property_intention_views.xml | 2 +- .../views/property_lease_extension.xml | 2 +- yuthon_property_approval/views/property_lease_renewal.xml | 2 +- yuthon_property_approval/views/property_management.xml | 2 +- .../views/property_management_fee.xml | 2 +- .../views/property_meeting_approval_views.xml | 2 +- .../views/property_merge_approval_views.xml | 2 +- .../views/property_offline_registration.xml | 2 +- .../views/property_penalty_proportion.xml | 2 +- .../views/property_penalty_relief.xml | 2 +- .../views/property_project_approval_views.xml | 2 +- yuthon_property_approval/views/property_record_views.xml | 2 +- yuthon_property_approval/views/property_rent_relief.xml | 2 +- .../views/property_rental_conditions.xml | 2 +- .../views/property_service_approval_views.xml | 2 +- .../views/property_split_approval_views.xml | 2 +- yuthon_trade/views/parking_fee_approval_views.xml | 2 +- yuthon_trade/views/trade_project_approval_views.xml | 2 +- yuthon_trade/views/trade_reward_approval_views.xml | 2 +- yuthon_trade/views/yuthon_business_approval_viwes.xml | 2 +- yuthon_trade/views/yuthon_care_condolences_views.xml | 2 +- yuthon_trade/views/yuthon_contract_addition_views.xml | 2 +- yuthon_trade/views/yuthon_message_approval_views.xml | 2 +- yuthon_trade/views/yuthon_mutual_approval_views.xml | 2 +- yuthon_trade/views/yuthon_seals_approval_views.xml | 2 +- yuthon_trade/views/yuthon_social_transfer.xml | 2 +- yuthon_trade/views/yuthon_task_approval_views.xml | 2 +- yuthon_trade/views/yuthon_trade_premium.xml | 2 +- yuthon_trade/views/yuthon_work_condolences_views.xml | 2 +- 99 files changed, 102 insertions(+), 102 deletions(-) diff --git a/room/views/room_booking_views.xml b/room/views/room_booking_views.xml index 67cce59ff..ad4c71ef1 100644 --- a/room/views/room_booking_views.xml +++ b/room/views/room_booking_views.xml @@ -141,7 +141,7 @@ invisible="urgency_level != 'normal'"/> - diff --git a/soong_workflow/views/soong_workflow_inspector_views.xml b/soong_workflow/views/soong_workflow_inspector_views.xml index 3f2b2bd7c..6f4ef83da 100644 --- a/soong_workflow/views/soong_workflow_inspector_views.xml +++ b/soong_workflow/views/soong_workflow_inspector_views.xml @@ -23,7 +23,7 @@ invisible="urgency_level != 'normal'"/> - diff --git a/yuthon_holiday/views/hr_leave_batch.xml b/yuthon_holiday/views/hr_leave_batch.xml index 785f57890..5d9b68de4 100644 --- a/yuthon_holiday/views/hr_leave_batch.xml +++ b/yuthon_holiday/views/hr_leave_batch.xml @@ -30,7 +30,7 @@ invisible="urgency_level != 'normal'"/> - diff --git a/yuthon_holiday/views/yuthon_breastfeed_leave_views.xml b/yuthon_holiday/views/yuthon_breastfeed_leave_views.xml index 3cadb567d..86eaff653 100644 --- a/yuthon_holiday/views/yuthon_breastfeed_leave_views.xml +++ b/yuthon_holiday/views/yuthon_breastfeed_leave_views.xml @@ -22,7 +22,7 @@ invisible="urgency_level != 'normal'"/> - diff --git a/yuthon_holiday/views/yuthon_fixes_approval_views.xml b/yuthon_holiday/views/yuthon_fixes_approval_views.xml index 30ddc8827..6fc81dc5d 100644 --- a/yuthon_holiday/views/yuthon_fixes_approval_views.xml +++ b/yuthon_holiday/views/yuthon_fixes_approval_views.xml @@ -20,7 +20,7 @@ invisible="urgency_level != 'normal'"/> - diff --git a/yuthon_hr_attendance/views/back_approval.xml b/yuthon_hr_attendance/views/back_approval.xml index 1912d1245..f2ef3960c 100644 --- a/yuthon_hr_attendance/views/back_approval.xml +++ b/yuthon_hr_attendance/views/back_approval.xml @@ -21,7 +21,7 @@ invisible="urgency_level != 'normal'"/> - diff --git a/yuthon_hr_attendance/views/card_approval.xml b/yuthon_hr_attendance/views/card_approval.xml index d1872014b..c6bc85c5e 100644 --- a/yuthon_hr_attendance/views/card_approval.xml +++ b/yuthon_hr_attendance/views/card_approval.xml @@ -25,7 +25,7 @@ invisible="urgency_level != 'normal'"/> - diff --git a/yuthon_hr_attendance/views/duty_approval.xml b/yuthon_hr_attendance/views/duty_approval.xml index e963668eb..9d3b8dc90 100644 --- a/yuthon_hr_attendance/views/duty_approval.xml +++ b/yuthon_hr_attendance/views/duty_approval.xml @@ -19,7 +19,7 @@ invisible="urgency_level != 'normal'"/> - diff --git a/yuthon_hr_attendance/views/expatriation_approval.xml b/yuthon_hr_attendance/views/expatriation_approval.xml index 968e94d80..93c8116c1 100644 --- a/yuthon_hr_attendance/views/expatriation_approval.xml +++ b/yuthon_hr_attendance/views/expatriation_approval.xml @@ -21,7 +21,7 @@ invisible="urgency_level != 'normal'"/> - diff --git a/yuthon_hr_attendance/views/go_approval.xml b/yuthon_hr_attendance/views/go_approval.xml index 82ba1f253..cc911b7f0 100644 --- a/yuthon_hr_attendance/views/go_approval.xml +++ b/yuthon_hr_attendance/views/go_approval.xml @@ -22,7 +22,7 @@ invisible="urgency_level != 'normal'"/> - diff --git a/yuthon_hr_attendance/views/leave_approval.xml b/yuthon_hr_attendance/views/leave_approval.xml index d16bc8363..2c3888aee 100644 --- a/yuthon_hr_attendance/views/leave_approval.xml +++ b/yuthon_hr_attendance/views/leave_approval.xml @@ -29,7 +29,7 @@ invisible="urgency_level != 'normal'"/> - diff --git a/yuthon_hr_attendance/views/meal_approval.xml b/yuthon_hr_attendance/views/meal_approval.xml index 7c7357e71..aea10daf3 100644 --- a/yuthon_hr_attendance/views/meal_approval.xml +++ b/yuthon_hr_attendance/views/meal_approval.xml @@ -20,7 +20,7 @@ invisible="urgency_level != 'normal'"/> - diff --git a/yuthon_hr_attendance/views/overtime_approval.xml b/yuthon_hr_attendance/views/overtime_approval.xml index be8b8741d..43a23976d 100644 --- a/yuthon_hr_attendance/views/overtime_approval.xml +++ b/yuthon_hr_attendance/views/overtime_approval.xml @@ -24,7 +24,7 @@ invisible="urgency_level != 'normal'"/> - diff --git a/yuthon_hr_attendance/views/remove_holiday_approval.xml b/yuthon_hr_attendance/views/remove_holiday_approval.xml index 7358e5483..7146fac86 100644 --- a/yuthon_hr_attendance/views/remove_holiday_approval.xml +++ b/yuthon_hr_attendance/views/remove_holiday_approval.xml @@ -24,7 +24,7 @@ invisible="urgency_level != 'normal'"/> - diff --git a/yuthon_hr_attendance/views/yuthon_abnormal_approval_views.xml b/yuthon_hr_attendance/views/yuthon_abnormal_approval_views.xml index 6fc578ecf..59a93933f 100644 --- a/yuthon_hr_attendance/views/yuthon_abnormal_approval_views.xml +++ b/yuthon_hr_attendance/views/yuthon_abnormal_approval_views.xml @@ -21,7 +21,7 @@ invisible="urgency_level != 'normal'"/> - diff --git a/yuthon_hr_attendance/views/yuthon_adjustments_approval_views.xml b/yuthon_hr_attendance/views/yuthon_adjustments_approval_views.xml index a9e04448c..c15c8050d 100644 --- a/yuthon_hr_attendance/views/yuthon_adjustments_approval_views.xml +++ b/yuthon_hr_attendance/views/yuthon_adjustments_approval_views.xml @@ -21,7 +21,7 @@ invisible="urgency_level != 'normal'"/> - diff --git a/yuthon_hr_attendance/views/yuthon_customer_approval_views.xml b/yuthon_hr_attendance/views/yuthon_customer_approval_views.xml index 8c12ae755..3b4361673 100644 --- a/yuthon_hr_attendance/views/yuthon_customer_approval_views.xml +++ b/yuthon_hr_attendance/views/yuthon_customer_approval_views.xml @@ -20,7 +20,7 @@ invisible="urgency_level != 'normal'"/> - diff --git a/yuthon_hr_attendance/views/yuthon_shift_approval_views.xml b/yuthon_hr_attendance/views/yuthon_shift_approval_views.xml index 4ba973976..99dadb989 100644 --- a/yuthon_hr_attendance/views/yuthon_shift_approval_views.xml +++ b/yuthon_hr_attendance/views/yuthon_shift_approval_views.xml @@ -24,7 +24,7 @@ invisible="urgency_level != 'normal'"/> - diff --git a/yuthon_hr_attendance/views/yuthon_special_approval_views.xml b/yuthon_hr_attendance/views/yuthon_special_approval_views.xml index 8f9695c29..fb0c430e7 100644 --- a/yuthon_hr_attendance/views/yuthon_special_approval_views.xml +++ b/yuthon_hr_attendance/views/yuthon_special_approval_views.xml @@ -24,7 +24,7 @@ invisible="urgency_level != 'normal'"/> - diff --git a/yuthon_hr_employee_approval/views/contract_review_approval_views.xml b/yuthon_hr_employee_approval/views/contract_review_approval_views.xml index eb3ab551c..d346df31c 100644 --- a/yuthon_hr_employee_approval/views/contract_review_approval_views.xml +++ b/yuthon_hr_employee_approval/views/contract_review_approval_views.xml @@ -27,7 +27,7 @@ invisible="urgency_level != 'normal'"/> - diff --git a/yuthon_hr_employee_approval/views/property_reimbursement_form_views.xml b/yuthon_hr_employee_approval/views/property_reimbursement_form_views.xml index 597057d81..780ebd266 100644 --- a/yuthon_hr_employee_approval/views/property_reimbursement_form_views.xml +++ b/yuthon_hr_employee_approval/views/property_reimbursement_form_views.xml @@ -20,7 +20,7 @@ invisible="urgency_level != 'normal'"/> - diff --git a/yuthon_hr_employee_approval/views/yuthon_appointment_approval_views.xml b/yuthon_hr_employee_approval/views/yuthon_appointment_approval_views.xml index 6f0c19880..49f291d2d 100644 --- a/yuthon_hr_employee_approval/views/yuthon_appointment_approval_views.xml +++ b/yuthon_hr_employee_approval/views/yuthon_appointment_approval_views.xml @@ -24,7 +24,7 @@ invisible="urgency_level != 'normal'"/> - diff --git a/yuthon_hr_employee_approval/views/yuthon_department_change_viwes.xml b/yuthon_hr_employee_approval/views/yuthon_department_change_viwes.xml index 956ea5565..c24886b8a 100644 --- a/yuthon_hr_employee_approval/views/yuthon_department_change_viwes.xml +++ b/yuthon_hr_employee_approval/views/yuthon_department_change_viwes.xml @@ -23,7 +23,7 @@ invisible="urgency_level != 'normal'"/> - diff --git a/yuthon_hr_employee_approval/views/yuthon_employee_add_views.xml b/yuthon_hr_employee_approval/views/yuthon_employee_add_views.xml index d649edb26..4080f14ab 100644 --- a/yuthon_hr_employee_approval/views/yuthon_employee_add_views.xml +++ b/yuthon_hr_employee_approval/views/yuthon_employee_add_views.xml @@ -20,7 +20,7 @@ invisible="urgency_level != 'normal'"/> - diff --git a/yuthon_hr_employee_approval/views/yuthon_interview_approval_views.xml b/yuthon_hr_employee_approval/views/yuthon_interview_approval_views.xml index d16ab58c7..9c9d5337a 100644 --- a/yuthon_hr_employee_approval/views/yuthon_interview_approval_views.xml +++ b/yuthon_hr_employee_approval/views/yuthon_interview_approval_views.xml @@ -26,7 +26,7 @@ invisible="urgency_level != 'normal'"/> - diff --git a/yuthon_hr_employee_approval/views/yuthon_leaving_approval_views.xml b/yuthon_hr_employee_approval/views/yuthon_leaving_approval_views.xml index 3cdff96d3..e37e8278a 100644 --- a/yuthon_hr_employee_approval/views/yuthon_leaving_approval_views.xml +++ b/yuthon_hr_employee_approval/views/yuthon_leaving_approval_views.xml @@ -27,7 +27,7 @@ invisible="urgency_level != 'normal'"/> - diff --git a/yuthon_hr_employee_approval/views/yuthon_message_login_views.xml b/yuthon_hr_employee_approval/views/yuthon_message_login_views.xml index f7de9a13a..cde0fe5c3 100644 --- a/yuthon_hr_employee_approval/views/yuthon_message_login_views.xml +++ b/yuthon_hr_employee_approval/views/yuthon_message_login_views.xml @@ -26,7 +26,7 @@ invisible="urgency_level != 'normal'"/> - diff --git a/yuthon_hr_employee_approval/views/yuthon_onboard_approval_views.xml b/yuthon_hr_employee_approval/views/yuthon_onboard_approval_views.xml index 5af48dd76..52c58c4b8 100644 --- a/yuthon_hr_employee_approval/views/yuthon_onboard_approval_views.xml +++ b/yuthon_hr_employee_approval/views/yuthon_onboard_approval_views.xml @@ -26,7 +26,7 @@ invisible="urgency_level != 'normal'"/> - diff --git a/yuthon_hr_employee_approval/views/yuthon_pre_examination_views.xml b/yuthon_hr_employee_approval/views/yuthon_pre_examination_views.xml index 375ab0efb..fc9a5d220 100644 --- a/yuthon_hr_employee_approval/views/yuthon_pre_examination_views.xml +++ b/yuthon_hr_employee_approval/views/yuthon_pre_examination_views.xml @@ -21,7 +21,7 @@ invisible="urgency_level != 'normal'"/> - diff --git a/yuthon_hr_employee_approval/views/yuthon_prepare_approval_views.xml b/yuthon_hr_employee_approval/views/yuthon_prepare_approval_views.xml index e20d23b60..1bfb350cf 100644 --- a/yuthon_hr_employee_approval/views/yuthon_prepare_approval_views.xml +++ b/yuthon_hr_employee_approval/views/yuthon_prepare_approval_views.xml @@ -21,7 +21,7 @@ invisible="urgency_level != 'normal'"/> - diff --git a/yuthon_hr_employee_approval/views/yuthon_reassignment_approval_views.xml b/yuthon_hr_employee_approval/views/yuthon_reassignment_approval_views.xml index fd4841702..04fc6dbd3 100644 --- a/yuthon_hr_employee_approval/views/yuthon_reassignment_approval_views.xml +++ b/yuthon_hr_employee_approval/views/yuthon_reassignment_approval_views.xml @@ -26,7 +26,7 @@ invisible="urgency_level != 'normal'"/> - diff --git a/yuthon_hr_employee_approval/views/yuthon_recruitment_approval_views.xml b/yuthon_hr_employee_approval/views/yuthon_recruitment_approval_views.xml index a555482c6..f795f6796 100644 --- a/yuthon_hr_employee_approval/views/yuthon_recruitment_approval_views.xml +++ b/yuthon_hr_employee_approval/views/yuthon_recruitment_approval_views.xml @@ -24,7 +24,7 @@ invisible="urgency_level != 'normal'"/> - diff --git a/yuthon_hr_employee_approval/views/yuthon_regularization_approval_views.xml b/yuthon_hr_employee_approval/views/yuthon_regularization_approval_views.xml index 0f648c3d0..18b371614 100644 --- a/yuthon_hr_employee_approval/views/yuthon_regularization_approval_views.xml +++ b/yuthon_hr_employee_approval/views/yuthon_regularization_approval_views.xml @@ -22,7 +22,7 @@ invisible="urgency_level != 'normal'"/> - diff --git a/yuthon_hr_employee_approval/views/yuthon_renewal_approval_views.xml b/yuthon_hr_employee_approval/views/yuthon_renewal_approval_views.xml index 40b67e724..5b43511d6 100644 --- a/yuthon_hr_employee_approval/views/yuthon_renewal_approval_views.xml +++ b/yuthon_hr_employee_approval/views/yuthon_renewal_approval_views.xml @@ -21,7 +21,7 @@ invisible="urgency_level != 'normal'"/> - diff --git a/yuthon_hr_employee_approval/views/yuthon_retired_approval_views.xml b/yuthon_hr_employee_approval/views/yuthon_retired_approval_views.xml index 3330b2eb4..074096552 100644 --- a/yuthon_hr_employee_approval/views/yuthon_retired_approval_views.xml +++ b/yuthon_hr_employee_approval/views/yuthon_retired_approval_views.xml @@ -22,7 +22,7 @@ invisible="urgency_level != 'normal'"/> - diff --git a/yuthon_hr_employee_approval/views/yuthon_reward_approval_views.xml b/yuthon_hr_employee_approval/views/yuthon_reward_approval_views.xml index 8b443fbf3..d58ffdcf7 100644 --- a/yuthon_hr_employee_approval/views/yuthon_reward_approval_views.xml +++ b/yuthon_hr_employee_approval/views/yuthon_reward_approval_views.xml @@ -23,7 +23,7 @@ invisible="urgency_level != 'normal'"/> - diff --git a/yuthon_hr_employee_approval/views/yuthon_service_approval_views.xml b/yuthon_hr_employee_approval/views/yuthon_service_approval_views.xml index a63fd49b8..8d30863a8 100644 --- a/yuthon_hr_employee_approval/views/yuthon_service_approval_views.xml +++ b/yuthon_hr_employee_approval/views/yuthon_service_approval_views.xml @@ -23,7 +23,7 @@ invisible="urgency_level != 'normal'"/> - diff --git a/yuthon_hr_employee_approval/views/yuthon_social_files_approval_view.xml b/yuthon_hr_employee_approval/views/yuthon_social_files_approval_view.xml index 293b12ec4..d5dfe1c55 100644 --- a/yuthon_hr_employee_approval/views/yuthon_social_files_approval_view.xml +++ b/yuthon_hr_employee_approval/views/yuthon_social_files_approval_view.xml @@ -37,7 +37,7 @@ invisible="urgency_level != 'normal'"/> - diff --git a/yuthon_hr_employee_approval/views/yuthon_transfer_approval_views.xml b/yuthon_hr_employee_approval/views/yuthon_transfer_approval_views.xml index 639013102..f052adabd 100644 --- a/yuthon_hr_employee_approval/views/yuthon_transfer_approval_views.xml +++ b/yuthon_hr_employee_approval/views/yuthon_transfer_approval_views.xml @@ -24,7 +24,7 @@ invisible="urgency_level != 'normal'"/> - diff --git a/yuthon_issue/views/issue_approval_views.xml b/yuthon_issue/views/issue_approval_views.xml index b0d11aaef..cd55ff76b 100644 --- a/yuthon_issue/views/issue_approval_views.xml +++ b/yuthon_issue/views/issue_approval_views.xml @@ -24,7 +24,7 @@ invisible="urgency_level != 'normal'"/> - diff --git a/yuthon_issue/views/issue_library_views.xml b/yuthon_issue/views/issue_library_views.xml index 4871558ca..13133e895 100644 --- a/yuthon_issue/views/issue_library_views.xml +++ b/yuthon_issue/views/issue_library_views.xml @@ -129,7 +129,7 @@ invisible="urgency_level != 'normal'"/> - @@ -333,7 +333,7 @@ invisible="urgency_level != 'normal'"/> - @@ -490,7 +490,7 @@ invisible="urgency_level != 'normal'"/> - @@ -635,7 +635,7 @@ invisible="urgency_level != 'normal'"/> - diff --git a/yuthon_issue/views/issue_meeting_minutes_views.xml b/yuthon_issue/views/issue_meeting_minutes_views.xml index c4418d4ac..d0cc00de0 100644 --- a/yuthon_issue/views/issue_meeting_minutes_views.xml +++ b/yuthon_issue/views/issue_meeting_minutes_views.xml @@ -22,7 +22,7 @@ invisible="urgency_level != 'normal'"/> - diff --git a/yuthon_lessee_service/views/property_report_repair.xml b/yuthon_lessee_service/views/property_report_repair.xml index 2e548fb29..f6ebcaa1f 100644 --- a/yuthon_lessee_service/views/property_report_repair.xml +++ b/yuthon_lessee_service/views/property_report_repair.xml @@ -21,7 +21,7 @@ invisible="urgency_level != 'normal'"/> - diff --git a/yuthon_maintain/views/processing_order_approval_views.xml b/yuthon_maintain/views/processing_order_approval_views.xml index bd87980b5..54355e5ff 100644 --- a/yuthon_maintain/views/processing_order_approval_views.xml +++ b/yuthon_maintain/views/processing_order_approval_views.xml @@ -26,7 +26,7 @@ invisible="urgency_level != 'normal'"/> - diff --git a/yuthon_maintain/views/property_device_repair_views.xml b/yuthon_maintain/views/property_device_repair_views.xml index 43d3dc357..8d0bc927e 100644 --- a/yuthon_maintain/views/property_device_repair_views.xml +++ b/yuthon_maintain/views/property_device_repair_views.xml @@ -26,7 +26,7 @@ invisible="urgency_level != 'normal'"/> - diff --git a/yuthon_maintain/views/property_report_repair.xml b/yuthon_maintain/views/property_report_repair.xml index 53ea13d0d..4240e4ba2 100644 --- a/yuthon_maintain/views/property_report_repair.xml +++ b/yuthon_maintain/views/property_report_repair.xml @@ -26,7 +26,7 @@ invisible="urgency_level != 'normal'"/> - diff --git a/yuthon_notice/views/yuthon_notice_views.xml b/yuthon_notice/views/yuthon_notice_views.xml index f760ae790..50305a7cb 100644 --- a/yuthon_notice/views/yuthon_notice_views.xml +++ b/yuthon_notice/views/yuthon_notice_views.xml @@ -34,7 +34,7 @@ invisible="urgency_level != 'normal'"/> - diff --git a/yuthon_official/views/yuthon_cross_departmental_views.xml b/yuthon_official/views/yuthon_cross_departmental_views.xml index 7603bcdf8..a8eed1e61 100644 --- a/yuthon_official/views/yuthon_cross_departmental_views.xml +++ b/yuthon_official/views/yuthon_cross_departmental_views.xml @@ -20,7 +20,7 @@ invisible="urgency_level != 'normal'"/> - diff --git a/yuthon_official/views/yuthon_file_processing_views.xml b/yuthon_official/views/yuthon_file_processing_views.xml index 66b7fa3cc..c1aea3db9 100644 --- a/yuthon_official/views/yuthon_file_processing_views.xml +++ b/yuthon_official/views/yuthon_file_processing_views.xml @@ -26,7 +26,7 @@ invisible="urgency_level != 'normal'"/> - diff --git a/yuthon_official/views/yuthon_official_incoming_labor_views.xml b/yuthon_official/views/yuthon_official_incoming_labor_views.xml index 4d59a5fc0..ef4dc8684 100644 --- a/yuthon_official/views/yuthon_official_incoming_labor_views.xml +++ b/yuthon_official/views/yuthon_official_incoming_labor_views.xml @@ -26,7 +26,7 @@ invisible="urgency_level != 'normal'"/> - diff --git a/yuthon_official/views/yuthon_official_incoming_normal_views.xml b/yuthon_official/views/yuthon_official_incoming_normal_views.xml index 3479da46b..b1ebcfcae 100644 --- a/yuthon_official/views/yuthon_official_incoming_normal_views.xml +++ b/yuthon_official/views/yuthon_official_incoming_normal_views.xml @@ -21,7 +21,7 @@ invisible="urgency_level != 'normal'"/> - diff --git a/yuthon_official/views/yuthon_official_incoming_party_views.xml b/yuthon_official/views/yuthon_official_incoming_party_views.xml index 72de3c845..6e94e67c5 100644 --- a/yuthon_official/views/yuthon_official_incoming_party_views.xml +++ b/yuthon_official/views/yuthon_official_incoming_party_views.xml @@ -25,7 +25,7 @@ invisible="urgency_level != 'normal'"/> - diff --git a/yuthon_official/views/yuthon_official_labor_views.xml b/yuthon_official/views/yuthon_official_labor_views.xml index b7ce3126a..0099a4396 100644 --- a/yuthon_official/views/yuthon_official_labor_views.xml +++ b/yuthon_official/views/yuthon_official_labor_views.xml @@ -23,7 +23,7 @@ invisible="urgency_level != 'normal'"/> - diff --git a/yuthon_official/views/yuthon_official_party_views.xml b/yuthon_official/views/yuthon_official_party_views.xml index cafd4738b..54805c6be 100644 --- a/yuthon_official/views/yuthon_official_party_views.xml +++ b/yuthon_official/views/yuthon_official_party_views.xml @@ -26,7 +26,7 @@ invisible="urgency_level != 'normal'"/> - diff --git a/yuthon_official/views/yuthon_official_views.xml b/yuthon_official/views/yuthon_official_views.xml index c1d3185f5..89245e416 100644 --- a/yuthon_official/views/yuthon_official_views.xml +++ b/yuthon_official/views/yuthon_official_views.xml @@ -33,7 +33,7 @@ invisible="urgency_level != 'normal'"/> - diff --git a/yuthon_property_approval/views/payment_process_viwes.xml b/yuthon_property_approval/views/payment_process_viwes.xml index 0717976a7..504c76abd 100644 --- a/yuthon_property_approval/views/payment_process_viwes.xml +++ b/yuthon_property_approval/views/payment_process_viwes.xml @@ -21,7 +21,7 @@ invisible="urgency_level != 'normal'"/> - diff --git a/yuthon_property_approval/views/perperty_claim_approval_views.xml b/yuthon_property_approval/views/perperty_claim_approval_views.xml index d78c25d69..bbbb9c5d8 100644 --- a/yuthon_property_approval/views/perperty_claim_approval_views.xml +++ b/yuthon_property_approval/views/perperty_claim_approval_views.xml @@ -21,7 +21,7 @@ invisible="urgency_level != 'normal'"/> - diff --git a/yuthon_property_approval/views/property_accounting_approval_views.xml b/yuthon_property_approval/views/property_accounting_approval_views.xml index af629fc59..79aa19f72 100644 --- a/yuthon_property_approval/views/property_accounting_approval_views.xml +++ b/yuthon_property_approval/views/property_accounting_approval_views.xml @@ -23,7 +23,7 @@ invisible="urgency_level != 'normal'"/> - diff --git a/yuthon_property_approval/views/property_accounts_approval_views.xml b/yuthon_property_approval/views/property_accounts_approval_views.xml index 6b0575326..74a68f8d1 100644 --- a/yuthon_property_approval/views/property_accounts_approval_views.xml +++ b/yuthon_property_approval/views/property_accounts_approval_views.xml @@ -20,7 +20,7 @@ invisible="urgency_level != 'normal'"/> - diff --git a/yuthon_property_approval/views/property_approval_views.xml b/yuthon_property_approval/views/property_approval_views.xml index 581a02dec..67d769f6d 100644 --- a/yuthon_property_approval/views/property_approval_views.xml +++ b/yuthon_property_approval/views/property_approval_views.xml @@ -22,7 +22,7 @@ invisible="urgency_level != 'normal'"/> - diff --git a/yuthon_property_approval/views/property_bills_payable_views.xml b/yuthon_property_approval/views/property_bills_payable_views.xml index 350dbb517..853217c56 100644 --- a/yuthon_property_approval/views/property_bills_payable_views.xml +++ b/yuthon_property_approval/views/property_bills_payable_views.xml @@ -21,7 +21,7 @@ invisible="urgency_level != 'normal'"/> - diff --git a/yuthon_property_approval/views/property_borrowing_approval_views.xml b/yuthon_property_approval/views/property_borrowing_approval_views.xml index a658c2bcd..39d769f8a 100644 --- a/yuthon_property_approval/views/property_borrowing_approval_views.xml +++ b/yuthon_property_approval/views/property_borrowing_approval_views.xml @@ -22,7 +22,7 @@ invisible="urgency_level != 'normal'"/> - diff --git a/yuthon_property_approval/views/property_capacity.xml b/yuthon_property_approval/views/property_capacity.xml index 61f401373..874afc1cb 100644 --- a/yuthon_property_approval/views/property_capacity.xml +++ b/yuthon_property_approval/views/property_capacity.xml @@ -20,7 +20,7 @@ invisible="urgency_level != 'normal'"/> - diff --git a/yuthon_property_approval/views/property_construction_approval_views.xml b/yuthon_property_approval/views/property_construction_approval_views.xml index beda3b9e5..ce2490d66 100644 --- a/yuthon_property_approval/views/property_construction_approval_views.xml +++ b/yuthon_property_approval/views/property_construction_approval_views.xml @@ -23,7 +23,7 @@ invisible="urgency_level != 'normal'"/> - diff --git a/yuthon_property_approval/views/property_current_approval_views.xml b/yuthon_property_approval/views/property_current_approval_views.xml index 7acc2835b..a519e3f2f 100644 --- a/yuthon_property_approval/views/property_current_approval_views.xml +++ b/yuthon_property_approval/views/property_current_approval_views.xml @@ -22,7 +22,7 @@ invisible="urgency_level != 'normal'"/> - diff --git a/yuthon_property_approval/views/property_delegated_agent_views.xml b/yuthon_property_approval/views/property_delegated_agent_views.xml index bfd543829..4855a9ef4 100644 --- a/yuthon_property_approval/views/property_delegated_agent_views.xml +++ b/yuthon_property_approval/views/property_delegated_agent_views.xml @@ -21,7 +21,7 @@ invisible="urgency_level != 'normal'"/> - diff --git a/yuthon_property_approval/views/property_design_approval_views.xml b/yuthon_property_approval/views/property_design_approval_views.xml index 4555f5d9a..3e281ac45 100644 --- a/yuthon_property_approval/views/property_design_approval_views.xml +++ b/yuthon_property_approval/views/property_design_approval_views.xml @@ -23,7 +23,7 @@ invisible="urgency_level != 'normal'"/> - diff --git a/yuthon_property_approval/views/property_eligibility.xml b/yuthon_property_approval/views/property_eligibility.xml index 993f24acf..809264611 100644 --- a/yuthon_property_approval/views/property_eligibility.xml +++ b/yuthon_property_approval/views/property_eligibility.xml @@ -20,7 +20,7 @@ invisible="urgency_level != 'normal'"/> - diff --git a/yuthon_property_approval/views/property_engineering_approval_views.xml b/yuthon_property_approval/views/property_engineering_approval_views.xml index 2759e2225..704691285 100644 --- a/yuthon_property_approval/views/property_engineering_approval_views.xml +++ b/yuthon_property_approval/views/property_engineering_approval_views.xml @@ -23,7 +23,7 @@ invisible="urgency_level != 'normal'"/> - diff --git a/yuthon_property_approval/views/property_handover_views.xml b/yuthon_property_approval/views/property_handover_views.xml index 6e30fc914..8a7979f1d 100644 --- a/yuthon_property_approval/views/property_handover_views.xml +++ b/yuthon_property_approval/views/property_handover_views.xml @@ -22,7 +22,7 @@ invisible="urgency_level != 'normal'"/> - diff --git a/yuthon_property_approval/views/property_intention_views.xml b/yuthon_property_approval/views/property_intention_views.xml index db378e8ba..5a324a421 100644 --- a/yuthon_property_approval/views/property_intention_views.xml +++ b/yuthon_property_approval/views/property_intention_views.xml @@ -21,7 +21,7 @@ invisible="urgency_level != 'normal'"/> - diff --git a/yuthon_property_approval/views/property_lease_extension.xml b/yuthon_property_approval/views/property_lease_extension.xml index 02500ed9e..79e907e86 100644 --- a/yuthon_property_approval/views/property_lease_extension.xml +++ b/yuthon_property_approval/views/property_lease_extension.xml @@ -23,7 +23,7 @@ invisible="urgency_level != 'normal'"/> - diff --git a/yuthon_property_approval/views/property_lease_renewal.xml b/yuthon_property_approval/views/property_lease_renewal.xml index 9099b87b8..143a5aadd 100644 --- a/yuthon_property_approval/views/property_lease_renewal.xml +++ b/yuthon_property_approval/views/property_lease_renewal.xml @@ -22,7 +22,7 @@ invisible="urgency_level != 'normal'"/> - diff --git a/yuthon_property_approval/views/property_management.xml b/yuthon_property_approval/views/property_management.xml index 55dbdc750..9274efd94 100644 --- a/yuthon_property_approval/views/property_management.xml +++ b/yuthon_property_approval/views/property_management.xml @@ -25,7 +25,7 @@ invisible="urgency_level != 'normal'"/> - diff --git a/yuthon_property_approval/views/property_management_fee.xml b/yuthon_property_approval/views/property_management_fee.xml index 80bb3ee06..c545cf316 100644 --- a/yuthon_property_approval/views/property_management_fee.xml +++ b/yuthon_property_approval/views/property_management_fee.xml @@ -21,7 +21,7 @@ invisible="urgency_level != 'normal'"/> - diff --git a/yuthon_property_approval/views/property_meeting_approval_views.xml b/yuthon_property_approval/views/property_meeting_approval_views.xml index 2afa5e6e6..c463f43e7 100644 --- a/yuthon_property_approval/views/property_meeting_approval_views.xml +++ b/yuthon_property_approval/views/property_meeting_approval_views.xml @@ -22,7 +22,7 @@ invisible="urgency_level != 'normal'"/> - diff --git a/yuthon_property_approval/views/property_merge_approval_views.xml b/yuthon_property_approval/views/property_merge_approval_views.xml index 7c4850b42..40d7790e4 100644 --- a/yuthon_property_approval/views/property_merge_approval_views.xml +++ b/yuthon_property_approval/views/property_merge_approval_views.xml @@ -27,7 +27,7 @@ invisible="urgency_level != 'normal'"/> - diff --git a/yuthon_property_approval/views/property_offline_registration.xml b/yuthon_property_approval/views/property_offline_registration.xml index 726be052b..5d7e8d501 100644 --- a/yuthon_property_approval/views/property_offline_registration.xml +++ b/yuthon_property_approval/views/property_offline_registration.xml @@ -23,7 +23,7 @@ invisible="urgency_level != 'normal'"/> - diff --git a/yuthon_property_approval/views/property_penalty_proportion.xml b/yuthon_property_approval/views/property_penalty_proportion.xml index 6511d4ec7..86d458599 100644 --- a/yuthon_property_approval/views/property_penalty_proportion.xml +++ b/yuthon_property_approval/views/property_penalty_proportion.xml @@ -21,7 +21,7 @@ invisible="urgency_level != 'normal'"/> - diff --git a/yuthon_property_approval/views/property_penalty_relief.xml b/yuthon_property_approval/views/property_penalty_relief.xml index 975e3aa16..799d3fe42 100644 --- a/yuthon_property_approval/views/property_penalty_relief.xml +++ b/yuthon_property_approval/views/property_penalty_relief.xml @@ -21,7 +21,7 @@ invisible="urgency_level != 'normal'"/> - diff --git a/yuthon_property_approval/views/property_project_approval_views.xml b/yuthon_property_approval/views/property_project_approval_views.xml index da5a26b5a..f2bf6ed84 100644 --- a/yuthon_property_approval/views/property_project_approval_views.xml +++ b/yuthon_property_approval/views/property_project_approval_views.xml @@ -23,7 +23,7 @@ invisible="urgency_level != 'normal'"/> - diff --git a/yuthon_property_approval/views/property_record_views.xml b/yuthon_property_approval/views/property_record_views.xml index af2937743..c24a297eb 100644 --- a/yuthon_property_approval/views/property_record_views.xml +++ b/yuthon_property_approval/views/property_record_views.xml @@ -27,7 +27,7 @@ invisible="urgency_level != 'normal'"/> - diff --git a/yuthon_property_approval/views/property_rent_relief.xml b/yuthon_property_approval/views/property_rent_relief.xml index 9d6142863..8bc2eeb9c 100644 --- a/yuthon_property_approval/views/property_rent_relief.xml +++ b/yuthon_property_approval/views/property_rent_relief.xml @@ -23,7 +23,7 @@ invisible="urgency_level != 'normal'"/> - diff --git a/yuthon_property_approval/views/property_rental_conditions.xml b/yuthon_property_approval/views/property_rental_conditions.xml index 84e8326fd..76db6e76d 100644 --- a/yuthon_property_approval/views/property_rental_conditions.xml +++ b/yuthon_property_approval/views/property_rental_conditions.xml @@ -24,7 +24,7 @@ invisible="urgency_level != 'normal'"/> - diff --git a/yuthon_property_approval/views/property_service_approval_views.xml b/yuthon_property_approval/views/property_service_approval_views.xml index 30e737a09..277d3abe8 100644 --- a/yuthon_property_approval/views/property_service_approval_views.xml +++ b/yuthon_property_approval/views/property_service_approval_views.xml @@ -22,7 +22,7 @@ invisible="urgency_level != 'normal'"/> - diff --git a/yuthon_property_approval/views/property_split_approval_views.xml b/yuthon_property_approval/views/property_split_approval_views.xml index 070aa6cd3..13b50cd77 100644 --- a/yuthon_property_approval/views/property_split_approval_views.xml +++ b/yuthon_property_approval/views/property_split_approval_views.xml @@ -27,7 +27,7 @@ invisible="urgency_level != 'normal'"/> - diff --git a/yuthon_trade/views/parking_fee_approval_views.xml b/yuthon_trade/views/parking_fee_approval_views.xml index 833402131..786a7cc66 100644 --- a/yuthon_trade/views/parking_fee_approval_views.xml +++ b/yuthon_trade/views/parking_fee_approval_views.xml @@ -20,7 +20,7 @@ invisible="urgency_level != 'normal'"/> - diff --git a/yuthon_trade/views/trade_project_approval_views.xml b/yuthon_trade/views/trade_project_approval_views.xml index a1586f55d..33fe7e441 100644 --- a/yuthon_trade/views/trade_project_approval_views.xml +++ b/yuthon_trade/views/trade_project_approval_views.xml @@ -22,7 +22,7 @@ invisible="urgency_level != 'normal'"/> - diff --git a/yuthon_trade/views/trade_reward_approval_views.xml b/yuthon_trade/views/trade_reward_approval_views.xml index bd4c1c1ca..d31419134 100644 --- a/yuthon_trade/views/trade_reward_approval_views.xml +++ b/yuthon_trade/views/trade_reward_approval_views.xml @@ -20,7 +20,7 @@ invisible="urgency_level != 'normal'"/> - diff --git a/yuthon_trade/views/yuthon_business_approval_viwes.xml b/yuthon_trade/views/yuthon_business_approval_viwes.xml index 6518c95b1..f5980e6e2 100644 --- a/yuthon_trade/views/yuthon_business_approval_viwes.xml +++ b/yuthon_trade/views/yuthon_business_approval_viwes.xml @@ -25,7 +25,7 @@ invisible="urgency_level != 'normal'"/> - diff --git a/yuthon_trade/views/yuthon_care_condolences_views.xml b/yuthon_trade/views/yuthon_care_condolences_views.xml index ba59f988b..026259778 100644 --- a/yuthon_trade/views/yuthon_care_condolences_views.xml +++ b/yuthon_trade/views/yuthon_care_condolences_views.xml @@ -21,7 +21,7 @@ invisible="urgency_level != 'normal'"/> - diff --git a/yuthon_trade/views/yuthon_contract_addition_views.xml b/yuthon_trade/views/yuthon_contract_addition_views.xml index e97140c82..efa95ae93 100644 --- a/yuthon_trade/views/yuthon_contract_addition_views.xml +++ b/yuthon_trade/views/yuthon_contract_addition_views.xml @@ -19,7 +19,7 @@ invisible="urgency_level != 'normal'"/> - diff --git a/yuthon_trade/views/yuthon_message_approval_views.xml b/yuthon_trade/views/yuthon_message_approval_views.xml index 88eb1dcaf..2e7ba8dc3 100644 --- a/yuthon_trade/views/yuthon_message_approval_views.xml +++ b/yuthon_trade/views/yuthon_message_approval_views.xml @@ -21,7 +21,7 @@ invisible="urgency_level != 'normal'"/> - diff --git a/yuthon_trade/views/yuthon_mutual_approval_views.xml b/yuthon_trade/views/yuthon_mutual_approval_views.xml index 9b38c0f34..5082fcd5a 100644 --- a/yuthon_trade/views/yuthon_mutual_approval_views.xml +++ b/yuthon_trade/views/yuthon_mutual_approval_views.xml @@ -22,7 +22,7 @@ invisible="urgency_level != 'normal'"/> - diff --git a/yuthon_trade/views/yuthon_seals_approval_views.xml b/yuthon_trade/views/yuthon_seals_approval_views.xml index 1ad92e33a..4c6762331 100644 --- a/yuthon_trade/views/yuthon_seals_approval_views.xml +++ b/yuthon_trade/views/yuthon_seals_approval_views.xml @@ -22,7 +22,7 @@ invisible="urgency_level != 'normal'"/> - diff --git a/yuthon_trade/views/yuthon_social_transfer.xml b/yuthon_trade/views/yuthon_social_transfer.xml index bf4ab1950..3f9ccff63 100644 --- a/yuthon_trade/views/yuthon_social_transfer.xml +++ b/yuthon_trade/views/yuthon_social_transfer.xml @@ -19,7 +19,7 @@ invisible="urgency_level != 'normal'"/> - diff --git a/yuthon_trade/views/yuthon_task_approval_views.xml b/yuthon_trade/views/yuthon_task_approval_views.xml index 5478859a9..e8aef1615 100644 --- a/yuthon_trade/views/yuthon_task_approval_views.xml +++ b/yuthon_trade/views/yuthon_task_approval_views.xml @@ -21,7 +21,7 @@ invisible="urgency_level != 'normal'"/> - diff --git a/yuthon_trade/views/yuthon_trade_premium.xml b/yuthon_trade/views/yuthon_trade_premium.xml index 0a19c708f..78907eba2 100644 --- a/yuthon_trade/views/yuthon_trade_premium.xml +++ b/yuthon_trade/views/yuthon_trade_premium.xml @@ -20,7 +20,7 @@ invisible="urgency_level != 'normal'"/> - diff --git a/yuthon_trade/views/yuthon_work_condolences_views.xml b/yuthon_trade/views/yuthon_work_condolences_views.xml index ee34e1cd9..87d52559f 100644 --- a/yuthon_trade/views/yuthon_work_condolences_views.xml +++ b/yuthon_trade/views/yuthon_work_condolences_views.xml @@ -21,7 +21,7 @@ invisible="urgency_level != 'normal'"/> - From 1c3b03f9a944e3ad3d2999f657b1f1a3d7438a96 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E9=B9=8F=E5=AE=87?= <9664676+pengyuthon@user.noreply.gitee.com> Date: Tue, 13 Jan 2026 19:48:58 +0800 Subject: [PATCH 2/9] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- room/models/room_booking.py | 21 +++---- soong_workflow/models/soong_workflow_mixin.py | 7 ++- .../models/soong_workflow_record.py | 2 +- .../models/yuthon_leaving_approval.py | 1 + yuthon_issue/models/inherit_room_booking.py | 58 +++++++++---------- yuthon_issue/models/issue_approval.py | 7 +++ yuthon_issue/models/issue_library.py | 49 ++++++++++++++++ yuthon_issue/models/issue_meeting_minutes.py | 42 ++++++++++++-- yuthon_issue/views/issue_library_views.xml | 23 ++++---- .../views/issue_meeting_minutes_views.xml | 6 +- 10 files changed, 151 insertions(+), 65 deletions(-) diff --git a/room/models/room_booking.py b/room/models/room_booking.py index da2548dba..765a2280c 100644 --- a/room/models/room_booking.py +++ b/room/models/room_booking.py @@ -16,7 +16,7 @@ class RoomBooking(models.Model): _description = "Room Booking" _order = "start_datetime desc, id" - name = fields.Char(string="标题", required=True, tracking=1) + name = fields.Char(string="标题", required=True, compute="_compute_name", store=True) code = fields.Char(string="流水号", default=lambda self: self.env['ir.sequence'].next_by_code('room_booking_approval_code')) room_id = fields.Many2one("room.room", string="Room", required=True, ondelete="cascade", group_expand="_read_group_room_id", tracking=4) @@ -30,7 +30,7 @@ class RoomBooking(models.Model): company_id = fields.Many2one(related="user_id.employee_id.company_id", string="Company", readonly=True, store=True) department_id = fields.Many2one('hr.department', related='user_id.employee_id.department_id', string="部门") is_notice = fields.Boolean(string="是否发布通知", default=True) - user_id = fields.Many2many('res.users', string='申请人', default=lambda self: self.env.user.id) + user_id = fields.Many2one('res.users', string='申请人', default=lambda self: self.env.user.id) task_time_ids = fields.Many2many('yuthon.task.time', string='提醒') meeting_type = fields.Selection([('up', '线上'), ('down', '线下'), ('exterior', '外部')], default='down', string="会议形式", required=True) @@ -103,14 +103,15 @@ class RoomBooking(models.Model): for room, bookings in bookings.grouped("room_id").items(): room._notify_booking_view("create", bookings) data = vals_list[0] - self.env['calendar.event'].create({ - 'name': data['name'], - 'start': data['start_datetime'], - 'stop': data['stop_datetime'], - 'partner_ids': data['partner_ids'], - 'sth_type': 'meet', - 'room_booking_id': bookings.id, - }) + if data.get('partner_ids'): + self.env['calendar.event'].create({ + 'name': data['name'], + 'start': data['start_datetime'], + 'stop': data['stop_datetime'], + 'partner_ids': data['partner_ids'], + 'sth_type': 'meet', + 'room_booking_id': bookings.id, + }) return bookings @api.onchange('room_id') diff --git a/soong_workflow/models/soong_workflow_mixin.py b/soong_workflow/models/soong_workflow_mixin.py index b3a422611..1bd2b5590 100644 --- a/soong_workflow/models/soong_workflow_mixin.py +++ b/soong_workflow/models/soong_workflow_mixin.py @@ -115,8 +115,11 @@ class SoongWorkflowMixin(models.AbstractModel): query_user_id = self.users_id.id else: query_user_id = current_user_id - if query_user_id == current_user_id and self.work_end and self.log_ids[-1].approval_state in ['0', '1']: - self.is_active = True + if self.log_ids: + if query_user_id == current_user_id and self.work_end and self.log_ids[-1].approval_state in ['0', '1']: + self.is_active = True + else: + self.is_active = False else: self.is_active = False diff --git a/soong_workflow/models/soong_workflow_record.py b/soong_workflow/models/soong_workflow_record.py index b499f953b..db193ed77 100644 --- a/soong_workflow/models/soong_workflow_record.py +++ b/soong_workflow/models/soong_workflow_record.py @@ -230,6 +230,7 @@ class SoongWorkflowRecord(models.Model): if not record_id: continue # 触发模型对应的结束方法 + record_id.work_end = True end_node = self.env["soong.workflow.node"].search( [('workflow_id', '=', workflow.workflow_id.id), ('is_end', '=', True)], limit=1 @@ -275,7 +276,6 @@ class SoongWorkflowRecord(models.Model): 'lase_click_date': current_datetime, 'sequence': 99, }) - workflow.approve_state = 'end' workflow.soong_state = 'done' workflow.employee_ids = [(6, 0, [])] diff --git a/yuthon_hr_employee_approval/models/yuthon_leaving_approval.py b/yuthon_hr_employee_approval/models/yuthon_leaving_approval.py index 196d1a82c..0ee94f6fc 100644 --- a/yuthon_hr_employee_approval/models/yuthon_leaving_approval.py +++ b/yuthon_hr_employee_approval/models/yuthon_leaving_approval.py @@ -60,6 +60,7 @@ class YuthonLeavingApproval(models.Model): record.employee_id.user_state = 'leave' if record.employee_id.contract_id: record.employee_id.contract_id.state = 'cancel' + record.employee_id.contract_id.termination_date = record.separation_date record.is_execution = True diff --git a/yuthon_issue/models/inherit_room_booking.py b/yuthon_issue/models/inherit_room_booking.py index 6018fd3ac..3f223a3da 100644 --- a/yuthon_issue/models/inherit_room_booking.py +++ b/yuthon_issue/models/inherit_room_booking.py @@ -11,6 +11,16 @@ class RoomBooking(models.Model): number_of_meetings = fields.Integer(string='会议次数') minutes_id = fields.Many2one('issue.meeting.minutes', string='会议纪要流程') + @api.depends('number_of_meetings', 'meeting_type_id', 'start_datetime') + def _compute_name(self): + if self.meeting_type_id and self.start_datetime: + if self.number_of_meetings: + self.name = str(self.start_datetime.date()) + f'第{self.number_of_meetings}次' + self.meeting_type_id.name + else: + self.name = str(self.start_datetime.date()) + self.meeting_type_id.name + else: + self.name = '' + def end_approval(self): self.write({'work_end': True}) for meet in self.issue_meeting_line_ids: @@ -22,14 +32,17 @@ class RoomBooking(models.Model): meet.issue_library_id.class_char = str(self.start_datetime.date()) + f'第{self.number_of_meetings}' + self.meeting_type_id.name if '董事' in meeting_type_name: meet.issue_library_id.boss_char = str(self.start_datetime.date()) + self.meeting_type_id.name + if self.code: + self.env['issue.library.approval.line'].create({ + 'issue_library_id': meet.issue_library_id.id, + 'code': self.code, + 'approval_date': fields.Datetime.now() + timedelta(hours=8), + }) def bottom_meeting_approval(self): library_data = [] for library in self.issue_meeting_line_ids: - if library.state == 'done': - raise UserError('当前纪要不允许重复提交') - library.state = 'done' library_data.append((0, 0, { 'minutes_id': library.issue_library_id.id, 'decision_results': library.decision_results, @@ -46,41 +59,26 @@ class RoomBooking(models.Model): 'default_host': self.host.id, 'default_meeting_type_id': self.meeting_type_id.id, 'default_meeting_date': self.start_datetime, + 'default_room_id': self.room_id.id, 'default_number_of_meetings': self.number_of_meetings, 'default_meeting_minutes_ids': library_data }} - @api.model_create_multi - def create(self, vals_list): - # 步骤1:先调用父类create方法,批量创建主记录,获取有效记录集 - res = super().create(vals_list) - if not res: - return res - for idx, (main_record, vals) in enumerate(zip(res, vals_list)): - issue_meeting_lines = vals.get('issue_meeting_line_ids', []) - if not isinstance(issue_meeting_lines, list): + @api.constrains('issue_meeting_line_ids', 'room_id', 'meeting_type_id', 'start_datetime') + def _constrains_create_room_line(self): + for main_record in self: + if not (main_record.issue_meeting_line_ids and main_record.room_id and main_record.meeting_type_id): continue - for line_triple in issue_meeting_lines: - if not (isinstance(line_triple, (list, tuple)) and len(line_triple) == 3): - continue - line_state, line_id, line_vals = line_triple - if line_state != 0 or not isinstance(line_vals, dict): - continue - issue_library_id = line_vals.get('issue_library_id') - room_id = vals.get('room_id') - meeting_type_id = vals.get('meeting_type_id') - approval_date = vals.get('start_datetime') - if not (issue_library_id and main_record.id and room_id and meeting_type_id): + for line in main_record.issue_meeting_line_ids: + if not line.issue_library_id: continue self.env['issue.library.room.line'].create({ - 'issue_library_id': issue_library_id, + 'issue_library_id': line.issue_library_id.id, 'room_booking_id': main_record.id, - 'room_id': room_id, - 'meeting_type_id': meeting_type_id, - 'approval_date': approval_date, + 'room_id': main_record.room_id.id, + 'meeting_type_id': main_record.meeting_type_id.id, + 'approval_date': main_record.start_datetime, }) - return res - class IssueMeetingLine(models.Model): _name = 'issue.meeting.line' @@ -125,5 +123,3 @@ class IssueMeetingLine(models.Model): self.issue_library_id.is_boss_passed = is_agree original_boss_char = self.issue_library_id.boss_char or "" self.issue_library_id.boss_char = original_boss_char + agree_name - - self.issue_library_id.library_push() diff --git a/yuthon_issue/models/issue_approval.py b/yuthon_issue/models/issue_approval.py index c7e398de9..aafe77515 100644 --- a/yuthon_issue/models/issue_approval.py +++ b/yuthon_issue/models/issue_approval.py @@ -1,5 +1,6 @@ # -*- coding: utf-8 -*- from odoo import api, fields, models +from datetime import datetime, timedelta, date class IssueApproval(models.Model): @@ -78,6 +79,12 @@ class IssueApproval(models.Model): if rec.issue_approval_ids: for issue_library in rec.issue_approval_ids: issue_library.issue_library_id.write({'issue_state': 'will'}) + if rec.code: + self.env['issue.library.approval.line'].create({ + 'issue_library_id': issue_library.issue_library_id.id, + 'code': self.code, + 'approval_date': fields.Datetime.now() + timedelta(hours=8), + }) class IssueApprovalLine(models.Model): _name = 'issue.approval.line' diff --git a/yuthon_issue/models/issue_library.py b/yuthon_issue/models/issue_library.py index a0e65bba2..a735349b0 100644 --- a/yuthon_issue/models/issue_library.py +++ b/yuthon_issue/models/issue_library.py @@ -68,11 +68,58 @@ class IssueLibrary(models.Model): is_party_passed = fields.Selection([('',''), ('pass', '通过'), ('reject', '未通过')]) is_class_passed = fields.Selection([('',''), ('pass', '通过'), ('reject', '未通过')]) is_boss_passed = fields.Selection([('',''), ('pass', '通过'), ('reject', '未通过')]) + push_invisible = fields.Boolean(string="推送隐藏", compute='_compute_push_invisible') + is_push_party = fields.Boolean(string="党推送") is_push_class = fields.Boolean(string="班子推送") is_push_boss = fields.Boolean(string="董事推送") is_push_depart = fields.Boolean(string="部门推送") + @api.depends( + 'is_party', 'is_class', 'is_boss', + 'is_push_party', 'is_party_passed', + 'is_push_class', 'is_class_passed', + 'is_push_boss', 'is_boss_passed', + 'is_push_depart' + ) + def _compute_push_invisible(self): + for record in self: + record.push_invisible = False + type_mapping = { + 'party': (record.is_party, record.is_party_passed), + 'class': (record.is_class, record.is_class_passed), + 'boss': (record.is_boss, record.is_boss_passed), + } + # 筛选开关为True的类型,收集其passed值 + active_passed_values = [] + for type_key, (type_switch, type_passed) in type_mapping.items(): + if type_switch: + active_passed_values.append(type_passed) + # 所有激活类型的passed都为pass → 设为True + if active_passed_values and all(passed == 'pass' for passed in active_passed_values): + record.push_invisible = True + continue + + if record.is_party: + if record.is_push_party and (record.is_party_passed == 'reject' or not record.is_party_passed): + record.push_invisible = True + continue + if record.is_class: + if record.is_push_class and (record.is_class_passed == 'reject' or not record.is_class_passed): + record.push_invisible = True + continue + if record.is_boss: + if record.is_push_boss and (record.is_boss_passed == 'reject' or not record.is_boss_passed): + record.push_invisible = True + continue + + if record.issue_state in ['will', 'on_meet']: + if record.push_invisible: + record.issue_state = 'on_meet' + else: + record.issue_state = 'will' + + @api.depends('issue_library_line_ids', 'issue_library_line_ids.issue_approval_decision_id', 'issue_library_line_ids.district_state_id', @@ -343,6 +390,7 @@ class IssueLibrary(models.Model): "views": [[form_id, "form"]], "context": { 'default_is_issue': True, + 'default_state': '申请人', 'default_start_datetime': fields.Datetime.now() + timedelta(hours=8), 'default_issue_meeting_line_ids': issue_details, } @@ -459,6 +507,7 @@ class IssueLibraryLine(models.Model): class IssueLibraryApprovalLine(models.Model): _name = "issue.library.approval.line" _description = '关联流程明细' + _order = 'approval_date desc' issue_library_id = fields.Many2one('issue.library', string="关联议题") workflow_name = fields.Char(string="标题", compute='compute_issue_soong') diff --git a/yuthon_issue/models/issue_meeting_minutes.py b/yuthon_issue/models/issue_meeting_minutes.py index 80d5093cd..d6417e8be 100644 --- a/yuthon_issue/models/issue_meeting_minutes.py +++ b/yuthon_issue/models/issue_meeting_minutes.py @@ -1,6 +1,7 @@ # -*- coding: utf-8 -*- from odoo import api, fields, models, tools from odoo.exceptions import UserError, ValidationError +from datetime import datetime, timedelta, date class IssueMeetingMinutes(models.Model): @@ -8,9 +9,9 @@ class IssueMeetingMinutes(models.Model): _description = '会议纪要' _inherit = ['soong.workflow.mixin', 'mail.thread.main.attachment', 'mail.activity.mixin'] - name = fields.Char(string='名称', compute='_compute_name') number_of_meetings = fields.Integer(string='会议次数') - meeting_id = fields.Many2one('room.booking', string='会议名称', required=True) + name = fields.Char(related='meeting_id.name',string='会议名称') + meeting_id = fields.Many2one('room.booking', string='会议名称') meeting_type_id = fields.Many2one('room.meeting.type', string="会议类型") users_id = fields.Many2one('res.users', string="申请人", default=lambda self: self.env.user.id) department_id = fields.Many2one(related='users_id.employee_ids.department_id', string="部门") @@ -19,6 +20,7 @@ class IssueMeetingMinutes(models.Model): user_id = fields.Many2one('res.users', string="记录人") room_users_ids = fields.Many2many('res.users', string="出席人员") host = fields.Many2one('hr.employee', string="主持人") + room_id = fields.Many2one('room.room', string="会议地点") code = fields.Char(string='编号', required=True, copy=False, default=lambda self: self.env['ir.sequence'].next_by_code('issue_meeting_minutes_code')) meeting_minutes_ids = fields.One2many('issue.meeting.minutes.line', 'meeting_minutes_id', string="会议纪要明细") @@ -34,19 +36,49 @@ class IssueMeetingMinutes(models.Model): name_title = fields.Char(default=_get_default_name_title) - @api.depends('number_of_meetings', 'meeting_id', 'meeting_type_id', 'meeting_date') + @api.depends('number_of_meetings', 'meeting_type_id', 'meeting_date') def _compute_name(self): - if self.number_of_meetings and self.meeting_id and self.meeting_type_id and self.meeting_date: - self.name = self.number_of_meetings + ' ' + self.meeting_id.name + ' ' + self.meeting_type_id.name + ' ' + self.meeting_date + if self.number_of_meetings and self.meeting_type_id and self.meeting_date: + self.name = self.number_of_meetings + ' ' + ' ' + self.meeting_type_id.name + ' ' + self.meeting_date else: self.name = '' + @api.depends('meeting_id.name') + def _compute_meeting_display_name(self): + for record in self: + if record.meeting_id: + record.meeting_display_name = record.meeting_id.name + else: + record.meeting_display_name = False + @api.constrains('meeting_id') def _check_meeting_id(self): for record in self: if record.meeting_id: record.meeting_id.minutes_id = self.id + @api.constrains('number_of_meetings', 'meeting_type_id', 'meeting_date') + def _constrains_create_room_booking(self): + for record in self: + if not (record.number_of_meetings and record.meeting_type_id and record.meeting_date): + continue + if record.meeting_id: + continue + booking_vals = { + 'name': f"{record.meeting_date}第{record.number_of_meetings}次会议{record.meeting_type_id.name}", + 'meeting_type_id': record.meeting_type_id.id, + 'start_datetime': record.meeting_date + timedelta(hours=8), + 'stop_datetime': record.meeting_date + timedelta(hours=9), + 'organizer_id': record.users_id.id, + 'number_of_meetings': record.number_of_meetings, + 'room_id': record.room_id.id, + 'host': record.host.id if record.host else False, + 'room_users_ids': [(6, 0, record.room_users_ids.ids)] if record.room_users_ids else False, + } + booking_record = self.env['room.booking'].create(booking_vals) + record.meeting_id = booking_record.id + booking_record.minutes_id = record.id + def open_record(self): return { "type": "ir.actions.act_window", diff --git a/yuthon_issue/views/issue_library_views.xml b/yuthon_issue/views/issue_library_views.xml index 4871558ca..6536b2dd3 100644 --- a/yuthon_issue/views/issue_library_views.xml +++ b/yuthon_issue/views/issue_library_views.xml @@ -49,6 +49,7 @@