diff --git a/soong_workflow/wizard/soong_bounced_wizard.py b/soong_workflow/wizard/soong_bounced_wizard.py index 7c1bec996..79972b2c2 100644 --- a/soong_workflow/wizard/soong_bounced_wizard.py +++ b/soong_workflow/wizard/soong_bounced_wizard.py @@ -24,19 +24,23 @@ class SoongBouncedWizard(models.Model): if invalid_logs: raise UserError('当前状态不可以收回') - prev_log = None total_log_count = len(log_ids) deleted_log_count = len(log_to_delete) prev_log_index = (total_log_count - deleted_log_count) - 1 + other_log_index = total_log_count - deleted_log_count if prev_log_index < 0 or prev_log_index >= len(log_ids): raise UserError('无有效的上一级审批明细行,无法执行收回操作') prev_log = log_ids[prev_log_index] related_record = self.env[self.res_model].browse(self.res_id) + done_by_list = [] + for index in range(other_log_index): + done_by_list.append(log_ids[index].done_by.id) + if hasattr(related_record, 'self_users_ids'): related_record.self_users_ids = [(6, 0, [prev_log.done_by.id])] self.env['soong.workflow.record'].search([('code', '=', record.code)]).write({"employee_ids": [(6, 0, [prev_log.done_by.employee_ids.id])], - "users_ids": [(6, 0, [prev_log.done_by.id])], + "users_ids": [(6, 0, done_by_list)], 'soong_state': 'to_do' }) log_to_delete.unlink() diff --git a/yuthon_issue/models/inherit_room_booking.py b/yuthon_issue/models/inherit_room_booking.py index e8ff7dbb1..b21df9660 100644 --- a/yuthon_issue/models/inherit_room_booking.py +++ b/yuthon_issue/models/inherit_room_booking.py @@ -58,8 +58,14 @@ class RoomBooking(models.Model): 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): + 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')