diff --git a/yuthon_issue/models/inherit_room_booking.py b/yuthon_issue/models/inherit_room_booking.py index fb24e40cc..73d6f4b72 100644 --- a/yuthon_issue/models/inherit_room_booking.py +++ b/yuthon_issue/models/inherit_room_booking.py @@ -155,16 +155,22 @@ class IssueMeetingLine(models.Model): if self.decision_results == 'agree': is_agree = 'pass' agree_name = '(通过)' - issue_state = 'on_meet' + is_push = True else: is_agree = 'reject' agree_name = '(未通过)' - issue_state = 'will' + is_push = False - self.issue_library_id.issue_state = issue_state + self.issue_library_id.issue_state = 'will' # 2. 党委会相关:先清理旧后缀,再拼接新后缀 if '党' in meeting_type_name: + + if self.issue_library_id.is_class: + self.issue_library_id.is_push_class = is_push + elif self.issue_library_id.is_boss: + self.issue_library_id.is_push_boss = is_push + self.issue_library_id.is_party_passed = is_agree original_party_char = self.issue_library_id.party_char or "" # 清理原有后缀(避免重复拼接) @@ -173,8 +179,14 @@ class IssueMeetingLine(models.Model): clean_party_char = clean_party_char.removesuffix(suffix) self.issue_library_id.party_char = clean_party_char + agree_name + if self.issue_library_id.is_boss == False and self.issue_library_id.is_class == False: + self.issue_library_id.issue_state = 'on_meet' + # 3. 班子会相关:先清理旧后缀,再拼接新后缀 if '班子' in meeting_type_name: + if self.issue_library_id.is_boss: + self.issue_library_id.is_push_boss = is_push + self.issue_library_id.is_class_passed = is_agree original_class_char = self.issue_library_id.class_char or "" # 清理原有后缀 @@ -184,8 +196,13 @@ class IssueMeetingLine(models.Model): # 拼接新后缀 self.issue_library_id.class_char = clean_class_char + agree_name + if self.issue_library_id.is_boss: + self.issue_library_id.issue_state = 'on_meet' + # 4. 董事会相关:先清理旧后缀,再拼接新后缀 if '董事' in meeting_type_name: + self.issue_library_id.issue_state = 'on_meet' + self.issue_library_id.is_push_boss = is_push self.issue_library_id.is_boss_passed = is_agree original_boss_char = self.issue_library_id.boss_char or "" # 清理原有后缀 diff --git a/yuthon_issue/models/issue_boss_approval.py b/yuthon_issue/models/issue_boss_approval.py index 3a9bcf7fc..8b71771bb 100644 --- a/yuthon_issue/models/issue_boss_approval.py +++ b/yuthon_issue/models/issue_boss_approval.py @@ -29,8 +29,6 @@ class IssueBossApproval(models.Model): for record in self: if record.line_ids: for line in record.line_ids: - if line.issue_id.is_state_updated == False: - line.issue_id.is_state_updated = True line.issue_id.issue_state = 'will' class IssueBossApprovalLine(models.Model): diff --git a/yuthon_issue/models/issue_class_approval.py b/yuthon_issue/models/issue_class_approval.py index bc702c3e9..529bed239 100644 --- a/yuthon_issue/models/issue_class_approval.py +++ b/yuthon_issue/models/issue_class_approval.py @@ -29,8 +29,6 @@ class IssueClassApproval(models.Model): for record in self: if record.line_ids: for line in record.line_ids: - if line.issue_id.is_state_updated == False: - line.issue_id.is_state_updated = True line.issue_id.issue_state = 'will' class IssueClassApprovalLine(models.Model): diff --git a/yuthon_issue/models/issue_library.py b/yuthon_issue/models/issue_library.py index adad6f09a..523a76537 100644 --- a/yuthon_issue/models/issue_library.py +++ b/yuthon_issue/models/issue_library.py @@ -68,15 +68,13 @@ 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') + push_invisible = fields.Boolean(string="推送隐藏") is_push_party = fields.Boolean(string="党推送") is_push_class = fields.Boolean(string="班子推送") is_push_boss = fields.Boolean(string="董事推送") is_push_depart = fields.Boolean(string="部门推送") - is_state_updated = fields.Boolean(string='状态是否已更新', default=False) - def meeting_record(self): self.ensure_one() domain = [ @@ -203,51 +201,6 @@ class IssueLibrary(models.Model): } } - @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 not 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 not 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 not 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', @@ -297,7 +250,7 @@ class IssueLibrary(models.Model): def depart_push(self): for rec in self: - rec.is_push_depart = True + rec.is_push_depart = True def library_push(self): for rec in self: @@ -312,16 +265,8 @@ class IssueLibrary(models.Model): push_update_vals['is_push_boss'] = True if push_update_vals: + rec.push_invisible = True rec.write(push_update_vals) - if not rec.is_state_updated: - rec.write({ - 'issue_state': 'to_approval', - }) - else: - rec.write({ - 'issue_state': 'will'} - ) - @api.onchange('is_legal_trial') def _onchange_is_legal_trial(self): diff --git a/yuthon_issue/models/issue_party_approval.py b/yuthon_issue/models/issue_party_approval.py index 7dbbbc582..5c60e9eee 100644 --- a/yuthon_issue/models/issue_party_approval.py +++ b/yuthon_issue/models/issue_party_approval.py @@ -35,8 +35,6 @@ class IssuePartyApproval(models.Model): for record in self: if record.line_ids: for line in record.line_ids: - if line.issue_id.is_state_updated == False: - line.issue_id.is_state_updated = True line.issue_id.issue_state = 'will' class IssuePartyApprovalLine(models.Model): diff --git a/yuthon_issue/views/issue_library_views.xml b/yuthon_issue/views/issue_library_views.xml index e3835ee1a..c2a22b14d 100644 --- a/yuthon_issue/views/issue_library_views.xml +++ b/yuthon_issue/views/issue_library_views.xml @@ -69,7 +69,7 @@ -