Přejít na obsah
Menu
You need to be registered to interact with the community.
This question has been flagged
2 Odpovědi
12162 Zobrazení

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
Zrušit
Nejlepší odpověď

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
Zrušit
Autor

thank you very much , it worked

Nejlepší odpověď

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
Zrušit
Related Posts Odpovědi Zobrazení Aktivita
0
pro 24
1383
1
bře 23
6595
2
dub 22
4055
0
říj 21
2609
2
pro 17
4277