Nhomar Hernandez (Vauxoo) has proposed merging 
lp:~vauxoo/openobject-server/trunk-lp1077794 into lp:openobject-server.

Requested reviews:
  Raphaƫl Valyi - http://www.akretion.com (rvalyi)
  OpenERP R&D Team (openerp-dev)
  Olivier Dony (OpenERP) (odo-openerp): approve
Related bugs:
  Bug #1077794 in OpenERP Server: "[trunk] Incorrect message when you define 
incorrectly a view"
  https://bugs.launchpad.net/openobject-server/+bug/1077794

For more details, see:
https://code.launchpad.net/~vauxoo/openobject-server/trunk-lp1077794/+merge/133853

One of the most difficult parts to explain when we give CTP trainings, is how 
debug errors in views, understand XML is difficult by itself, if we can from 
time to time put better descriptive errors in this part, framework will be most 
powerful.

In this time we just improve the message to show when an exception related to 
define for error an incorrect name of model in a view.

Before:

AttributeError: 'NoneType' object has no attribute 'fields_view_get'


Now:

2012-11-12 04:48:49,803 21556 ERROR cms openerp.addons.base.ir.ir_ui_view: Your 
view definition is wrong, model = 'cms' defined on view = 'cms.search' doesn't 
exist 

Better explicit like Zen of python indicate ;-).

Thanks friends.


-- 
https://code.launchpad.net/~vauxoo/openobject-server/trunk-lp1077794/+merge/133853
Your team OpenERP R&D Team is requested to review the proposed merge of 
lp:~vauxoo/openobject-server/trunk-lp1077794 into lp:openobject-server.
=== modified file 'openerp/addons/base/ir/ir_ui_view.py'
--- openerp/addons/base/ir/ir_ui_view.py	2012-11-02 09:47:05 +0000
+++ openerp/addons/base/ir/ir_ui_view.py	2012-11-12 05:05:22 +0000
@@ -121,8 +121,10 @@
                if no error occurred, else False.  
         """
         try:
-            fvg = self.pool.get(view.model).fields_view_get(cr, uid, view_id=view.id, view_type=view.type, context=context)
-            return fvg['arch']
+            fvg = self.pool.get(view.model) and self.pool.get(view.model).fields_view_get(cr, uid, view_id=view.id, view_type=view.type, context=context)
+            if not fvg:
+                _logger.exception("Your view definition is wrong, model = '%s' defined on view = '%s' doesn't exist " % (view.model,view.name) )
+            return fvg and fvg['arch'] or False
         except:
             _logger.exception("Can't render view %s for model: %s", view.xml_id, view.model)
             return False

=== modified file 'openerp/tools/misc.py'
--- openerp/tools/misc.py	2012-10-24 16:15:27 +0000
+++ openerp/tools/misc.py	2012-11-12 05:05:22 +0000
@@ -141,9 +141,11 @@
         # Is it below 'addons_path' or 'root_path'?
         name = os.path.normcase(os.path.normpath(name))
         for root in adps + [rtp]:
-            if name.startswith(root):
+            abspathmodule = os.path.split(name)[0]
+            abspath = os.path.split(abspathmodule)[0]
+            if os.path.samefile(abspath,root):
                 base = root.rstrip(os.sep)
-                name = name[len(base) + 1:]
+                name = os.path.relpath(name,abspath)
                 break
         else:
             # It is outside the OpenERP root: skip zipfile lookup.
@@ -218,7 +220,7 @@
     # Not found
     if name.endswith('.rml'):
         raise IOError('Report %r doesn\'t exist or deleted' % basename)
-    raise IOError('File not found: %s' % basename)
+    raise IOError('File not found: %s' % name)
 
 
 #----------------------------------------------------------

_______________________________________________
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