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 @@