[IMP] project: project_get query improved
authormra (Open ERP) <mra@tinyerp.com>
Fri, 22 Jan 2010 12:59:45 +0000 (18:29 +0530)
committermra (Open ERP) <mra@tinyerp.com>
Fri, 22 Jan 2010 12:59:45 +0000 (18:29 +0530)
bzr revid: mra@tinyerp.com-20100122125945-x9d9ve1pb3pccdup

addons/project/project.py

index 9174449..04df471 100644 (file)
@@ -590,13 +590,15 @@ def _project_get(self, cr, uid, context={}):
     if uid==1:
         ids = self.pool.get('project.project').search(cr, uid, [])
         res = self.pool.get('project.project').read(cr, uid, ids, ['id','name'], context)
-    else:    
-        # Take Projects only user is manager or member  
-        cr.execute("""SELECT project.id,project.name FROM project_project project
+        res = [(str(r['id']),r['name']) for r in res]
+    else:
+        cr.execute("""SELECT project.id,account.name FROM project_project project
                    LEFT JOIN account_analytic_account account ON account.id = project.category_id
-                   WHERE (account.user_id = %s)""", uid)
+                   WHERE (account.user_id = %s) OR project.id IN (SELECT project_id FROM project_resource_rel
+                                                                 WHERE resource_id IN (SELECT id FROM resource_resource
+                                                                                       WHERE (user_id= %s)))"""%(uid, uid))
         res = cr.fetchall()
-    res = [(str(r['id']),r['name']) for r in res]
+        res = [(str(r[0]),r[1]) for r in res]
     return res
 
 class users(osv.osv):
@@ -605,7 +607,6 @@ class users(osv.osv):
     _columns = {
         'context_project_id': fields.selection(_project_get, 'Project'),
         }
-
 users()
 
 # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: