From 56254bf21c5eabeab86fcaf160cad09ae706e4da Mon Sep 17 00:00:00 2001 From: zainab2097 <149927291+zainab2097@users.noreply.github.com> Date: Mon, 9 Sep 2024 16:52:19 +0300 Subject: [PATCH 1/3] Update and rename account_move.py to account_move --- .../models/{account_move.py => account_move} | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) rename odex25_project/account_attachments/models/{account_move.py => account_move} (90%) diff --git a/odex25_project/account_attachments/models/account_move.py b/odex25_project/account_attachments/models/account_move similarity index 90% rename from odex25_project/account_attachments/models/account_move.py rename to odex25_project/account_attachments/models/account_move index 01bd4c22e..8fee250ad 100755 --- a/odex25_project/account_attachments/models/account_move.py +++ b/odex25_project/account_attachments/models/account_move @@ -4,6 +4,8 @@ class AccountMove(models.Model): _inherit = "account.move" attach_no = fields.Integer(compute='get_attachments') + res_model = fields.Char() + res_id = fields.Integer() # def get_attachments(self): # action = self.env['ir.actions.act_window']._for_xml_id('base.action_attachment') @@ -19,13 +21,13 @@ class AccountMove(models.Model): # Prepare domain for attachments related to account.move and project.invoice account_move_ids = self.ids # IDs of account.move # Get all related project.invoice records based on the invoice_id - project_invoice_ids = self.env['project.invoice'].search([('invoice_id', 'in', account_move_ids)]).ids + # project_invoice_ids = self.env['project.invoice'].search([('invoice_id', 'in', account_move_ids)]).ids # Expand the domain to include both account.move and project.invoice attachments # Combine account.move and project.invoice ids - related_ids = account_move_ids + project_invoice_ids + related_ids = account_move_ids + [res_id] action['domain'] = [ - ('res_model', 'in', ['account.move', 'project.invoice']), + ('res_model', 'in', ['account.move', self.res_model]), ('res_id', 'in', related_ids),] # action['domain'] = [ From 991d7d5b14c540f1dc41a279123dba2d6751df46 Mon Sep 17 00:00:00 2001 From: zainab2097 <149927291+zainab2097@users.noreply.github.com> Date: Mon, 9 Sep 2024 16:56:51 +0300 Subject: [PATCH 2/3] Update account_move_view.xml --- .../account_attachments/views/account_move_view.xml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/odex25_project/account_attachments/views/account_move_view.xml b/odex25_project/account_attachments/views/account_move_view.xml index a19bdc848..264fe0518 100755 --- a/odex25_project/account_attachments/views/account_move_view.xml +++ b/odex25_project/account_attachments/views/account_move_view.xml @@ -12,6 +12,12 @@ + + + + + + From 3846885710480cf4fe6e5ebfd816254afd68e17b Mon Sep 17 00:00:00 2001 From: zainab2097 <149927291+zainab2097@users.noreply.github.com> Date: Mon, 9 Sep 2024 17:08:45 +0300 Subject: [PATCH 3/3] Update account_move --- .../account_attachments/models/account_move | 45 +++++-------------- 1 file changed, 12 insertions(+), 33 deletions(-) diff --git a/odex25_project/account_attachments/models/account_move b/odex25_project/account_attachments/models/account_move index 8fee250ad..9922d62bc 100755 --- a/odex25_project/account_attachments/models/account_move +++ b/odex25_project/account_attachments/models/account_move @@ -16,48 +16,27 @@ class AccountMove(models.Model): # return action def get_attachments(self): - # Action for opening the attachment window + self.ensure_one() + action = self.env['ir.actions.act_window']._for_xml_id('base.action_attachment') - # Prepare domain for attachments related to account.move and project.invoice - account_move_ids = self.ids # IDs of account.move - # Get all related project.invoice records based on the invoice_id - # project_invoice_ids = self.env['project.invoice'].search([('invoice_id', 'in', account_move_ids)]).ids - - # Expand the domain to include both account.move and project.invoice attachments - # Combine account.move and project.invoice ids - related_ids = account_move_ids + [res_id] + related_ids = self.ids + related_models = 'account.move' + + if self.res_id and self.res_model: + related_ids = self.ids + [res_id] + related_models = ['account.move', self.res_model] + action['domain'] = [ - ('res_model', 'in', ['account.move', self.res_model]), + ('res_model', 'in',related_models), ('res_id', 'in', related_ids),] - # action['domain'] = [ - # '|', # OR operator to include attachments from both models - # '&', # AND operator for account.move - # ('res_model', '=', 'account.move'), - # ('res_id', 'in', account_move_ids), - # '&', # AND operator for project.invoice - # ('res_model', '=', 'project.invoice'), - # ('res_id', 'in', project_invoice_ids), - # ] - # Context for creating new attachments action['context'] = "{'default_res_model': '%s','default_res_id': %d}" % (self._name, self.id) # Update attachment count for smart button domain = [ - ('res_model', 'in', ['account.move', 'project.invoice']), + ('res_model', 'in', related_models), ('res_id', 'in', related_ids),] - - # Update attachment count for smart button - # domain = [ - # '|', # OR operator for counting attachments from both models - # '&', # AND operator for the first condition (account.move) - # ('res_model', '=', 'account.move'), - # ('res_id', 'in', account_move_ids), - # '&', # AND operator for the second condition (project.invoice) - # ('res_model', '=', 'project.invoice'), - # ('res_id', 'in', project_invoice_ids), - # ] - + self.attach_no = self.env['ir.attachment'].search_count(domain) return action