From 01c00da9c85565df78cadacc68eeb9af88c7e021 Mon Sep 17 00:00:00 2001 From: "RGA(OpenERP)" <> Date: Tue, 30 Oct 2012 12:56:56 +0530 Subject: [PATCH] [IMP] Project: documents button should open only it's own attachment, rather than whole ir.attachment object bzr revid: rgaopenerp-20121030072656-8jxtkcbvkuxl17la --- addons/project/project.py | 17 +++++++++++++++++ addons/project/project_view.xml | 2 +- 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/addons/project/project.py b/addons/project/project.py index 3b0057c67b7..cafa5c5195f 100644 --- a/addons/project/project.py +++ b/addons/project/project.py @@ -189,7 +189,24 @@ class project(osv.osv): def _get_alias_models(self, cr, uid, context=None): """Overriden in project_issue to offer more options""" return [('project.task', "Tasks")] + + def attachment_tree_view(self, cr, uid, ids, context): + attachment = self.pool.get('ir.attachment') + project_attachments = attachment.search(cr, uid, [('res_model', '=', 'project.project'), ('res_id', 'in', ids)], context=context) + task_ids = self.pool.get('project.task').search(cr, uid, [('project_id', 'in', ids)]) + task_attachments = attachment.search(cr, uid, [('res_model', '=', 'project.task'), ('res_id', 'in', task_ids)], context=context) + all_attachment = project_attachments + task_attachments + return { + 'name': _('Attachments'), + 'domain': [('id','in', all_attachment)], + 'res_model': 'ir.attachment', + 'type': 'ir.actions.act_window', + 'view_id': False, + 'view_mode': 'tree,form', + 'view_type': 'form', + 'limit': 80, + } # Lambda indirection method to avoid passing a copy of the overridable method when declaring the field _alias_models = lambda self, *args, **kwargs: self._get_alias_models(*args, **kwargs) _columns = { diff --git a/addons/project/project_view.xml b/addons/project/project_view.xml index 29be26bc127..5ae68985c10 100644 --- a/addons/project/project_view.xml +++ b/addons/project/project_view.xml @@ -88,7 +88,7 @@