diff --git a/addons/document/directory_report.py b/addons/document/directory_report.py index aac65cc8e36..a7a3d80191b 100644 --- a/addons/document/directory_report.py +++ b/addons/document/directory_report.py @@ -45,7 +45,7 @@ class ir_action_report_xml(osv.osv): res[data.get('id')] = False return res - def _model_search(self, cr, uid, obj, name, args): + def _model_search(self, cr, uid, obj, name, args, context={}): if not len(args): return [] model_id= args[0][2] diff --git a/addons/document/document_directory.py b/addons/document/document_directory.py index 17c3dfb66d9..554eae43e08 100644 --- a/addons/document/document_directory.py +++ b/addons/document/document_directory.py @@ -64,8 +64,7 @@ class document_directory(osv.osv): def _get_root_directory(self, cr,uid, context=None): objid=self.pool.get('ir.model.data') try: - mid = objid._get_id(cr, uid, 'document', 'dir_root') - return False # TODO: check why not display root dir + mid = objid._get_id(cr, uid, 'document', 'dir_root') if not mid: return False except Exception, e: @@ -199,8 +198,8 @@ class document_directory(osv.osv): path.append(duri[0]) duri = duri[1:] did = nid[0] - - return (nodes.node_dir(path, nparent,ncontext,self.browse(cr,uid,did, context)), duri) + root_node = did and self.browse(cr,uid,did, context) or False + return (nodes.node_dir(path, nparent,ncontext, root_node), duri) nid = self.search(cr,uid,[('parent_id','=',did),('name','=',duri[0]),('type','=','ressource')], context=context) diff --git a/addons/document/nodes.py b/addons/document/nodes.py index c6e2f1b10d1..2335eaf4b58 100644 --- a/addons/document/nodes.py +++ b/addons/document/nodes.py @@ -49,18 +49,17 @@ class node_context(object): context """ cached_roots = {} - def __init__(self, cr, uid, context=None): - # we don't cache the cr! + def __init__(self, cr, uid, context=None): self.dbname = cr.dbname self.uid = uid self.context = context self._dirobj = pooler.get_pool(cr.dbname).get('document.directory') assert self._dirobj - self.rootdir = self._dirobj._get_root_directory(cr,uid,context) + self.rootdir = False #self._dirobj._get_root_directory(cr,uid,context) def get_uri(self, cr, uri): """ Although this fn passes back to doc.dir, it is needed since - it is a potential caching point """ + it is a potential caching point """ (ndir, duri) = self._dirobj._locate_child(cr,self.uid, self.rootdir,uri, None, self) while duri: ndir = ndir.child(cr, duri[0]) @@ -168,23 +167,23 @@ class node_dir(node_class): our_type = 'collection' def __init__(self,path, parent, context, dirr, dctx=None): super(node_dir,self).__init__(path, parent,context) - self.dir_id = dirr.id + self.dir_id = dirr and dirr.id or False #todo: more info from dirr self.mimetype = 'application/x-directory' # 'httpd/unix-directory' - self.create_date = dirr.create_date - self.domain = dirr.domain - self.res_model = dirr.ressource_type_id and dirr.ressource_type_id.model or False + self.create_date = dirr and dirr.create_date or False + self.domain = dirr and dirr.domain or [] + self.res_model = dirr and dirr.ressource_type_id and dirr.ressource_type_id.model or False # TODO: the write date should be MAX(file.write).. - self.write_date = dirr.write_date or dirr.create_date + self.write_date = dirr and (dirr.write_date or dirr.create_date) or False self.content_length = 0 if dctx: self.dctx.update(dctx) dc2 = self.context.context dc2.update(self.dctx) dc2['dir_id'] = self.dir_id - self.displayname = dirr.name - if dirr.dctx_ids: + self.displayname = dirr and dirr.name or False + if dirr and dirr.dctx_ids: for dfld in dirr.dctx_ids: try: self.dctx['dctx_' + dfld.field] = safe_eval(dfld.expr,dc2) diff --git a/addons/project/project_demo.xml b/addons/project/project_demo.xml index 7b5d565fead..f668d82bf5c 100644 --- a/addons/project/project_demo.xml +++ b/addons/project/project_demo.xml @@ -1,14 +1,14 @@ - + - + 1 @@ -26,7 +26,7 @@ 4 Merge - + 1 @@ -39,7 +39,6 @@ 10 Study + Prototype - @@ -47,7 +46,6 @@ 20 Specific Developements - @@ -55,11 +53,10 @@ 30 Install, data import, configuration - - + 38.0