summaryrefslogtreecommitdiff
path: root/addons/document
diff options
context:
space:
mode:
Diffstat (limited to 'addons/document')
-rw-r--r--addons/document/directory_report.py2
-rw-r--r--addons/document/document_directory.py7
-rw-r--r--addons/document/nodes.py21
3 files changed, 14 insertions, 16 deletions
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)