pr at count
This commit is contained in:
parent
9d3dd7c33b
commit
f6699e3418
|
|
@ -219,41 +219,52 @@ class PurchaseOrderCustom(models.Model):
|
|||
# Handle multiple records
|
||||
if len(self) > 1:
|
||||
action = self.env['ir.actions.act_window']._for_xml_id('base.action_attachment')
|
||||
all_related_ids = []
|
||||
all_related_models = set()
|
||||
all_pairs = [] # Store (model, id) tuples
|
||||
|
||||
for record in self:
|
||||
related_ids = [record.id]
|
||||
related_models = [self_model]
|
||||
record_pairs = []
|
||||
|
||||
# if record.res_id and record.res_model:
|
||||
# related_ids.append(record.res_id)
|
||||
# related_models.append(record.res_model)
|
||||
# Current record
|
||||
record_pairs.append((self_model, record.id))
|
||||
|
||||
# Request record
|
||||
if record.request_id:
|
||||
related_ids.append(record.request_id.id)
|
||||
related_models.append(record.request_id._name)
|
||||
if record.requisition_id:
|
||||
related_ids.append(self.requisition_id.id)
|
||||
related_models.append(self.requisition_id._name)
|
||||
record_pairs.append((record.request_id._name, record.request_id.id))
|
||||
|
||||
all_related_ids += related_ids
|
||||
all_related_models.update(related_models)
|
||||
# Requisition record (only if exact model match)
|
||||
if record.requisition_id and record.requisition_id._name == 'purchase.requisition':
|
||||
record_pairs.append(('purchase.requisition', record.requisition_id.id))
|
||||
|
||||
# Set attachment count for each record
|
||||
record.attach_no = Attachment.search_count([
|
||||
('res_model', 'in', list(all_related_models)),
|
||||
('res_id', 'in', list(set(all_related_ids))),
|
||||
])
|
||||
# Build domain for this record's attachment count
|
||||
domain_record = []
|
||||
if record_pairs:
|
||||
domain_record = ['|'] * (len(record_pairs) - 1)
|
||||
for model, res_id in record_pairs:
|
||||
domain_record.extend([
|
||||
'&',
|
||||
('res_model', '=', model),
|
||||
('res_id', '=', res_id)
|
||||
])
|
||||
|
||||
print("all_related_ids")
|
||||
print(all_related_ids)
|
||||
# Set attachment count for this specific record
|
||||
record.attach_no = Attachment.search_count(domain_record)
|
||||
|
||||
# Add to global pairs collection
|
||||
all_pairs.extend(record_pairs)
|
||||
|
||||
# Build global domain for action
|
||||
domain_action = []
|
||||
if all_pairs:
|
||||
domain_action = ['|'] * (len(all_pairs) - 1)
|
||||
for model, res_id in all_pairs:
|
||||
domain_action.extend([
|
||||
'&',
|
||||
('res_model', '=', model),
|
||||
('res_id', '=', res_id)
|
||||
])
|
||||
|
||||
# Final domain and context for action
|
||||
action['domain'] = [
|
||||
('res_model', 'in', list(all_related_models)),
|
||||
('res_id', 'in', list(set(all_related_ids))),
|
||||
]
|
||||
action['domain'] = domain_action
|
||||
action['context'] = {
|
||||
'default_res_model': self_model,
|
||||
'default_res_id': self[0].id # use first record for context
|
||||
|
|
|
|||
Loading…
Reference in New Issue