コンテンツへスキップ
メニュー
この質問にフラグが付けられました
2 返信
11844 ビュー

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

アバター
破棄
最善の回答

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
アバター
破棄
著作者

thank you very much , it worked

最善の回答

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.

 

アバター
破棄
関連投稿 返信 ビュー 活動
0
12月 24
987
1
3月 23
6148
2
4月 22
3636
0
10月 21
2350
2
12月 17
3954