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