[FIX] purchase_requisition_custom

This commit is contained in:
Samir Ladoui 2025-08-28 13:46:06 +01:00
parent b8f841ee32
commit 36fb501d8b
1 changed files with 19 additions and 33 deletions

View File

@ -128,61 +128,47 @@ class PurchaseRequisitionCustom(models.Model):
# Check if multiple records are passed, and handle them in a loop
if len(self) > 1:
action = self.env['ir.actions.act_window']._for_xml_id('base.action_attachment')
action['domain'] = [
('res_model', '=', 'purchase.requisition'),
('res_id', 'in', self.ids),
]
# Update attachment count for all records (if necessary)
for record in self:
related_ids = record.ids
related_models = 'purchase.requisition'
if record.res_id and record.res_model:
related_ids = record.ids + [record.res_id]
related_models = ['purchase.requisition', record.res_model]
action['domain'] = [
('res_model', 'in', related_models),
('res_id', 'in', related_ids),
domain = [
'|',
'&',
('res_model', '=', record.res_model),
('res_id', '=', record.res_id),
'&',
('res_model', '=', 'purchase.requisition'),
('res_id', '=', record.id),
]
action['domain'] = domain
# Context for creating new attachments for each record
action['context'] = "{'default_res_model': '%s','default_res_id': %d}" % (record._name, record.id)
# Update attachment count for each record
record.attach_no = self.env['ir.attachment'].search_count([
('res_model', 'in', related_models),
('res_id', 'in', related_ids)
])
record.attach_no = self.env['ir.attachment'].search_count(domain)
return action
# If only one record is passed, use the original logic
self.ensure_one()
action = self.env['ir.actions.act_window']._for_xml_id('base.action_attachment')
action['domain'] = [
('res_model', '=', 'purchase.requisition'),
('res_id', 'in', self.ids),
]
domain = [
('res_model', '=', 'purchase.requisition'),
('res_id', 'in', self.ids),
]
related_ids = self.ids
related_models = 'purchase.requisition'
action['domain'] = domain
if self.res_id and self.res_model:
related_ids = self.ids + [self.res_id]
related_models = ['purchase.requisition', self.res_model]
action['domain'] = [
('res_model', 'in', related_models),
('res_id', 'in', related_ids),
]
domain = [
('res_model', 'in', related_models),
('res_id', 'in', related_ids),
'|',
'&',
('res_model', '=', self.res_model),
('res_id', '=', self.res_id),
'&',
('res_model', '=', 'purchase.requisition'),
('res_id', '=', self.id),
]
action['domain'] = domain
# Context for creating new attachments
action['context'] = "{'default_res_model': '%s','default_res_id': %d}" % (self._name, self.id)