Skip to Content
Menú
This question has been flagged
2 Respostes
11840 Vistes

Hi, is it possible to know if a product has an attachment from the list view ? I want to add a column to the list view indicating if this product has any attachments without pressing on each product and go to the form view

Avatar
Descartar
Best Answer

Add Functional Fields to calculate Number of document attached and shows the functional field in List view

For Example in Project Module No of document shows in the Kanban view you can also display in list view based on the requirement

Reference: addons\project\project.py

def _get_attached_docs(self, cr, uid, ids, field_name, arg, context):
        res = {}
        attachment = self.pool.get('ir.attachment')
        task = self.pool.get('project.task')
        for id in ids:
            project_attachments = attachment.search(cr, uid, [('res_model', '=', 'project.project'), ('res_id', '=', id)], context=context, count=True)
            task_ids = task.search(cr, uid, [('project_id', '=', id)], context=context)
            task_attachments = attachment.search(cr, uid, [('res_model', '=', 'project.task'), ('res_id', 'in', task_ids)], context=context, count=True)
            res[id] = (project_attachments or 0) + (task_attachments or 0)
        return res
Avatar
Descartar
Autor

thank you very much , it worked

Best Answer

I have written this, which returns 0:

    def _get_attached_docs(self, cr, uid, ids, field_name, arg, context):
        res = {}
        attachment = self.pool.get('ir.attachment')
        for id in ids:
            product_attachments = attachment.search(cr, uid, [('res_model', '=', 'product.template'), ('res_id', '=', id)], context=context, count=True)
            res[id] = product_attachments or 0
        return res

Although, my code to show the actual attachments works:

   def attachment_tree_view(self, cr, uid, ids, context):
        domain = [
             '&', ('res_model', '=', 'product.template'), ('res_id', 'in', ids),
        ]
        res_id = ids and ids[0] or False
        return {
            'name': _('Attachments'),
            'domain': domain,
            'res_model': 'ir.attachment',
            'type': 'ir.actions.act_window',
            'view_id': False,
            'view_mode': 'kanban,tree,form',
            'view_type': 'form',
            'limit': 80,
            'context': "{'default_res_model': '%s','default_res_id': %d}" % (self._name, res_id)
        }

Can anyone see what is wrong with my _get_attached_docs code?  I have verified that the ir.attachment model does contain a record with model = product.template and res_id = product_id from the product I am testing, and I see my attachment in the standard Attachments dropdown menu.  Also, this testing is being done with the Admin user so document locations shouldn't be a problem.

 

Avatar
Descartar
Related Posts Respostes Vistes Activitat
0
de des. 24
985
1
de març 23
6141
2
d’abr. 22
3631
0
d’oct. 21
2350
2
de des. 17
3954