Dhruti Shastri has proposed merging 
lp:~openerp-dev/openobject-addons/6.1-opw-573644-dhs into 
lp:openobject-addons/6.1.

Requested reviews:
  Naresh(OpenERP) (nch-openerp)

For more details, see:
https://code.launchpad.net/~openerp-dev/openobject-addons/6.1-opw-573644-dhs/+merge/109078

Description : 
Navigate to: Knowledge/Documents/Documents. Create new document and
set Directory = Document (static Directory) and save it. Edit it and change the 
Directory =
Admin Folder(Folder per resource) save it, It will throws following error.
Client Traceback (most recent call last):
  File "/home/vpa/workspace/6.1/web-6.1/addons/web/common/http.py", line
180, in dispatch
    response["result"] = method(controller, self, **self.params)
  File "/home/vpa/workspace/6.1/web-6.1/addons/web/controllers/main.py",
line 971, in save
    r = m.write([id], data, req.session.eval_context(req.context))
  File
"/home/vpa/workspace/6.1/web-6.1/addons/web/common/openerplib/main.py",
line 250, in proxy
    args, kw)
  File
"/home/vpa/workspace/6.1/web-6.1/addons/web/common/openerplib/main.py",
line 117, in proxy
    result = self.connector.send(self.service_name, method, *args)
  File "/home/vpa/workspace/6.1/web-6.1/addons/web/common/http.py", line
611, in send
    raise fault
Server Traceback (most recent call last):
  File "/home/vpa/workspace/6.1/web-6.1/addons/web/common/http.py", line
592, in send
    result = openerp.netsvc.dispatch_rpc(service_name, method, args)
  File "/home/vpa/workspace/6.1/sever-6.1/openerp/netsvc.py", line 360,
in dispatch_rpc
    result = ExportService.getService(service_name).dispatch(method,
params)
  File
"/home/vpa/workspace/6.1/sever-6.1/openerp/service/web_services.py",
line 586, in dispatch
    res = fn(db, uid, *params)
  File "/home/vpa/workspace/6.1/sever-6.1/openerp/osv/osv.py", line 167,
in execute_kw
    return self.execute(db, uid, obj, method, *args, **kw or {})
  File "/home/vpa/workspace/6.1/sever-6.1/openerp/osv/osv.py", line 121,
in wrapper
    return f(self, dbname, *args, **kwargs)
  File "/home/vpa/workspace/6.1/sever-6.1/openerp/osv/osv.py", line 176,
in execute
    res = self.execute_cr(cr, uid, obj, method, *args, **kw)
  File "/home/vpa/workspace/6.1/sever-6.1/openerp/osv/osv.py", line 164,
in execute_cr
    return getattr(object, method)(cr, uid, *args, **kw)
  File "/home/vpa/workspace/6.1/addons-6.1/document/document.py", line
241, in write
    res = fnode.move_to(cr, dnode or fnode.parent, vals.get('name',
fbro.name), fbro, dbro, True)
  File "/home/vpa/workspace/6.1/addons-6.1/document/nodes.py", line
1332, in move_to
    raise NotImplementedError('Cannot move files between dynamic
folders')
NotImplementedError: Cannot move files between dynamic folders
-- 
https://code.launchpad.net/~openerp-dev/openobject-addons/6.1-opw-573644-dhs/+merge/109078
Your team OpenERP R&D Team is subscribed to branch 
lp:~openerp-dev/openobject-addons/6.1-opw-573644-dhs.
=== modified file 'document/document.py'
--- document/document.py	2011-12-19 16:54:40 +0000
+++ document/document.py	2012-06-07 07:07:20 +0000
@@ -20,7 +20,7 @@
 ##############################################################################
 
 import base64
-from osv import osv, fields
+from osv import osv, fields, orm
 import os
 
 # from psycopg2 import Binary
@@ -186,7 +186,6 @@
                                                 context=context, count=False)
         if not ids:
             return 0 if count else []
-
         # Filter out documents that are in directories that the user is not allowed to read.
         # Must use pure SQL to avoid access rules exceptions (we want to remove the records,
         # not fail), and the records have been filtered in parent's search() anyway.
@@ -238,17 +237,21 @@
                         ids2.append(fbro.id)
                         continue
                 fnode = nctx.get_file_node(cr, fbro)
-                res = fnode.move_to(cr, dnode or fnode.parent, vals.get('name', fbro.name), fbro, dbro, True)
-                if isinstance(res, dict):
-                    vals2 = vals.copy()
-                    vals2.update(res)
-                    wid = res.get('id', fbro.id)
-                    result = super(document_file,self).write(cr,uid,wid,vals2,context=context)
-                    # TODO: how to handle/merge several results?
-                elif res == True:
-                    ids2.append(fbro.id)
-                elif res == False:
-                    pass
+                try :
+                    res = fnode.move_to(cr, dnode or fnode.parent, vals.get('name', fbro.name), fbro, dbro, True)
+                    if isinstance(res, dict):
+                        vals2 = vals.copy()
+                        vals2.update(res)
+                        wid = res.get('id', fbro.id)
+                        result = super(document_file,self).write(cr,uid,wid,vals2,context=context)
+                        # TODO: how to handle/merge several results?
+                    elif res == True:
+                        ids2.append(fbro.id)
+                    elif res == False:
+                        pass
+                except Exception, e:
+                     raise orm.except_orm(_('Error'), str(e))
+                     
             ids = ids2
         if 'file_size' in vals: # only write that field using direct SQL calls
             del vals['file_size']

_______________________________________________
Mailing list: https://launchpad.net/~openerp-dev-gtk
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~openerp-dev-gtk
More help   : https://help.launchpad.net/ListHelp

Reply via email to