c2c-oerpscenario team mailing list archive
-
c2c-oerpscenario team
-
Mailing list archive
-
Message #02353
[Bug 609153] Re: Forms unable to handle accented characters
** Changed in: openobject-client-web
Status: Fix Committed => Fix Released
--
Forms unable to handle accented characters
https://bugs.launchpad.net/bugs/609153
You received this bug notification because you are a member of C2C
OERPScenario, which is subscribed to the OpenERP Project Group.
Status in OpenObject Web Client: Fix Released
Status in OpenObject Server: Invalid
Bug description:
Openerp6 craches when there is accents in french translation; when trying to go in administration>Séquence>Séquence for exemple
<type 'exceptions.UnicodeEncodeError'> Python 2.6.5: /usr/bin/python
Fri Jul 23 15:51:27 2010
A problem occurred in a Python script. Here is the sequence of function calls leading up to the error, in the order they occurred.
/usr/local/lib/python2.6/dist-packages/CherryPy-3.1.2-py2.6.egg/cherrypy/_cprequest.py in respond(self=<cherrypy._cprequest.Request object>, path_info='/openerp/tree/open')
604 if self.handler:
605 self.stage = 'handler'
606 cherrypy.response.body = self.handler()
607
608 self.stage = 'before_finalize'
global cherrypy = <module 'cherrypy' from '/usr/local/lib/python2..../CherryPy-3.1.2-py2.6.egg/cherrypy/__init__.pyc'>, cherrypy.response = <cherrypy._ThreadLocalProxy object>, cherrypy.response.body = [], self = <cherrypy._cprequest.Request object>, self.handler = <cherrypy._cpdispatch.LateParamPageHandler object>
/usr/local/lib/python2.6/dist-packages/CherryPy-3.1.2-py2.6.egg/cherrypy/_cpdispatch.py in __call__(self=<cherrypy._cpdispatch.LateParamPageHandler object>)
23 def __call__(self):
24 try:
25 return self.callable(*self.args, **self.kwargs)
26 except TypeError, x:
27 test_callable_spec(self.callable, self.args, self.kwargs)
self = <cherrypy._cpdispatch.LateParamPageHandler object>, self.callable = <bound method Root.default of <openobject.controllers._root.Root object>>, self.args = ('openerp', 'tree', 'open'), self.kwargs = {'id': '22', 'model': 'ir.ui.menu'}
/usr/local/lib/python2.6/dist-packages/openobject_web-5.2dev-py2.6.egg/openobject/tools/_expose.py in func_wrapper(*args=(<openobject.controllers._root.Root object>, 'openerp', 'tree', 'open'), **kw={'id': '22', 'model': 'ir.ui.menu'})
200 def func_wrapper(*args, **kw):
201
202 res = func(*args, **kw)
203
204 if format == 'json' or (allow_json and 'allow_json' in cherrypy.request.params):
global res = '/usr/local/lib/python2.6/dist-packages/openobject_web-5.2dev-py2.6.egg/config/openobject-web.cfg', func = <function default>, args = (<openobject.controllers._root.Root object>, 'openerp', 'tree', 'open'), kw = {'id': '22', 'model': 'ir.ui.menu'}
/usr/local/lib/python2.6/dist-packages/openobject_web-5.2dev-py2.6.egg/openobject/controllers/_root.py in default(self=<openobject.controllers._root.Root object>, *args=('openerp', 'tree', 'open'), **kw={'id': '22', 'model': 'ir.ui.menu'})
35 request.handler = cherrypy.NotFound()
36
37 return request.handler()
38
39 def find_handler(self):
request = <cherrypy._ThreadLocalProxy object>, request.handler = <cherrypy._cpdispatch.LateParamPageHandler object>
/usr/local/lib/python2.6/dist-packages/CherryPy-3.1.2-py2.6.egg/cherrypy/_cpdispatch.py in __call__(self=<cherrypy._cpdispatch.LateParamPageHandler object>)
23 def __call__(self):
24 try:
25 return self.callable(*self.args, **self.kwargs)
26 except TypeError, x:
27 test_callable_spec(self.callable, self.args, self.kwargs)
self = <cherrypy._cpdispatch.LateParamPageHandler object>, self.callable = <function open>, self.args = (), self.kwargs = {'id': '22', 'model': 'ir.ui.menu'}
/usr/local/lib/python2.6/dist-packages/openobject_web-5.2dev-py2.6.egg/addons/openerp/controllers/utils.py in wrapper(*args=(), **kw={'id': '22', 'model': 'ir.ui.menu'})
122 # User is logged in; allow access
123 clear_login_fields(kw)
124 return fn(*args, **kw)
125 else:
126 # User isn't logged in yet.
fn = <bound method Tree.open of <openerp.controllers.tree.Tree object>>, args = (), kw = {'id': '22', 'model': 'ir.ui.menu'}
/usr/local/lib/python2.6/dist-packages/openobject_web-5.2dev-py2.6.egg/openobject/tools/_expose.py in func_wrapper(*args=(<openerp.controllers.tree.Tree object>,), **kw={'id': '22', 'model': 'ir.ui.menu'})
200 def func_wrapper(*args, **kw):
201
202 res = func(*args, **kw)
203
204 if format == 'json' or (allow_json and 'allow_json' in cherrypy.request.params):
global res = '/usr/local/lib/python2.6/dist-packages/openobject_web-5.2dev-py2.6.egg/config/openobject-web.cfg', func = <function open>, args = (<openerp.controllers.tree.Tree object>,), kw = {'id': '22', 'model': 'ir.ui.menu'}
/usr/local/lib/python2.6/dist-packages/openobject_web-5.2dev-py2.6.egg/addons/openerp/controllers/tree.py in open(self=<openerp.controllers.tree.Tree object>, **kw={'id': '22', 'model': 'ir.ui.menu'})
261 return self.do_action('tree_but_open', datas={
262 '_terp_model': kw.get('model'),
263 '_terp_context': kw.get('context', {}),
264 '_terp_domain': kw.get('domain', []),
265 'ids': kw.get('id')})
kw = {'id': '22', 'model': 'ir.ui.menu'}, kw.get = <built-in method get of dict object>
/usr/local/lib/python2.6/dist-packages/openobject_web-5.2dev-py2.6.egg/addons/openerp/controllers/tree.py in do_action(self=<openerp.controllers.tree.Tree object>, name='tree_but_open', adds={}, datas={'_terp_context': {}, '_terp_domain': [], '_terp_model': 'ir.ui.menu', 'ids': '22'})
222 return actions.execute_by_keyword(
223 name, adds=adds, model=model, id=id, ids=ids, context=ctx,
224 report_type='pdf')
225 else:
226 raise common.message(_("No record selected!"))
report_type undefined
/usr/local/lib/python2.6/dist-packages/openobject_web-5.2dev-py2.6.egg/addons/openerp/controllers/actions.py in execute_by_keyword(keyword='tree_but_open', adds={}, **data={'context': {'active_test': False, 'client': 'web', 'department_id': False, 'lang': u'fr_FR', 'tz': False}, 'id': 22, 'ids': [22], 'model': 'ir.ui.menu', 'report_type': 'pdf'})
383 if len(keyact) == 1:
384 data['context'].update(rpc.session.context)
385 return execute(action, **data)
386 else:
387 return Selection().create(keyact, **data)
global execute = <function execute>, action = {'auto_refresh': 0, 'auto_search': True, 'context': u"{'active_test': False}", 'default_user_ids': [], 'display_help': True, 'domain': '[]', 'filter': False, 'groups_id': [], 'help': False, 'id': 8, ...}, data = {'context': {'active_test': False, 'client': 'web', 'department_id': False, 'lang': u'fr_FR', 'tz': False}, 'id': 22, 'ids': [22], 'model': 'ir.ui.menu', 'report_type': 'pdf'}
/usr/local/lib/python2.6/dist-packages/openobject_web-5.2dev-py2.6.egg/addons/openerp/controllers/actions.py in execute(action={'auto_refresh': 0, 'auto_search': True, 'context': u"{'active_test': False}", 'default_user_ids': [], 'display_help': True, 'domain': '[]', 'filter': False, 'groups_id': [], 'help': False, 'id': 8, ...}, **data={'context': {'active_test': False, 'client': 'web', 'department_id': False, 'lang': u'fr_FR', 'tz': False}, 'id': 22, 'ids': [22], 'limit': 80, 'model': 'ir.ui.menu', 'report_type': 'pdf', 'res_id': None, 'res_model': u'ir.sequence', 'search_view': u'{\'name\': u\'ir.sequence.form\', \'type\': u\'form\', \'...ode" select="1"/></form>\', \'field_parent\': False}', 'view_mode': u'tree,form', ...})
262 target=action.get('target'),
263 limit=data.get('limit'),
264 search_view = data['search_view'])
265
266 return res
search_view = False, data = {'context': {'active_test': False, 'client': 'web', 'department_id': False, 'lang': u'fr_FR', 'tz': False}, 'id': 22, 'ids': [22], 'limit': 80, 'model': 'ir.ui.menu', 'report_type': 'pdf', 'res_id': None, 'res_model': u'ir.sequence', 'search_view': u'{\'name\': u\'ir.sequence.form\', \'type\': u\'form\', \'...ode" select="1"/></form>\', \'field_parent\': False}', 'view_mode': u'tree,form', ...}
/usr/local/lib/python2.6/dist-packages/openobject_web-5.2dev-py2.6.egg/addons/openerp/controllers/actions.py in execute_window(view_ids=[19, False], model=u'ir.sequence', res_id=None, domain=[], view_type=u'form', context={'_terp_view_name': u'S\xe9quences', 'active_id': 22, 'active_ids': [22], 'active_model': 'ir.ui.menu', 'active_test': False, 'client': 'web', 'department_id': False, 'lang': u'fr_FR', 'tz': False}, mode=[u'tree', u'form'], name=u'S\xe9quences', target=u'current', limit=80, search_view=u'{\'name\': u\'ir.sequence.form\', \'type\': u\'form\', \'...ode" select="1"/></form>\', \'field_parent\': False}')
84 params.view_mode=mode
85
86 return Form().create(params)
87
88 elif view_type == 'tree':
global Form = <class 'openerp.controllers.form.Form'>, ).create = <unbound method Form.create>, params = {'_terp_view_type': u'tree', '_terp_offset': 0, ...tment_id': False}, '_terp_view_ids': [19, False]}
/usr/local/lib/python2.6/dist-packages/openobject_web-5.2dev-py2.6.egg/addons/openerp/controllers/utils.py in wrapper(*args=({'_terp_view_type': u'tree', '_terp_offset': 0, ...tment_id': False}, '_terp_view_ids': [19, False]},), **kw={})
122 # User is logged in; allow access
123 clear_login_fields(kw)
124 return fn(*args, **kw)
125 else:
126 # User isn't logged in yet.
fn = <bound method Form.create of <openerp.controllers.form.Form object>>, args = ({'_terp_view_type': u'tree', '_terp_offset': 0, ...tment_id': False}, '_terp_view_ids': [19, False]},), kw = {}
/usr/local/lib/python2.6/dist-packages/openobject_web-5.2dev-py2.6.egg/openobject/tools/_expose.py in func_wrapper(*args=(<openerp.controllers.form.Form object>, {'_terp_view_type': u'tree', '_terp_offset': 0, ...tment_id': False}, '_terp_view_ids': [19, False]}), **kw={})
200 def func_wrapper(*args, **kw):
201
202 res = func(*args, **kw)
203
204 if format == 'json' or (allow_json and 'allow_json' in cherrypy.request.params):
global res = '/usr/local/lib/python2.6/dist-packages/openobject_web-5.2dev-py2.6.egg/config/openobject-web.cfg', func = <function create>, args = (<openerp.controllers.form.Form object>, {'_terp_view_type': u'tree', '_terp_offset': 0, ...tment_id': False}, '_terp_view_ids': [19, False]}), kw = {}
/usr/local/lib/python2.6/dist-packages/openobject_web-5.2dev-py2.6.egg/addons/openerp/controllers/form.py in create(self=<openerp.controllers.form.Form object>, params={'_terp_view_type': u'tree', '_terp_offset': 0, ...tment_id': False}, '_terp_view_ids': [19, False]}, tg_errors=None)
200 if params.view_type == 'tree':
201 params.editable = True
202 form = self.create_form(params, tg_errors)
203
204 if not tg_errors:
form undefined, self = <openerp.controllers.form.Form object>, self.create_form = <bound method Form.create_form of <openerp.controllers.form.Form object>>, params = {'_terp_view_type': u'tree', '_terp_offset': 0, ...tment_id': False}, '_terp_view_ids': [19, False]}, tg_errors = None
/usr/local/lib/python2.6/dist-packages/openobject_web-5.2dev-py2.6.egg/addons/openerp/controllers/form.py in create_form(self=<openerp.controllers.form.Form object>, params={'_terp_view_type': u'tree', '_terp_offset': 0, ...tment_id': False}, '_terp_view_ids': [19, False]}, tg_errors=None)
191 params.view_type = params.view_type or params.view_mode[0]
192
193 return tw.form_view.ViewForm(params, name="view_form", action="/openerp/form/save")
194
195 @expose(template="templates/form.mako")
global tw = <module 'openerp.widgets' from '/usr/local/lib/p...ev-py2.6.egg/addons/openerp/widgets/__init__.py'>, tw.form_view = <module 'openerp.widgets.form_view' from '/usr/l...v-py2.6.egg/addons/openerp/widgets/form_view.py'>, tw.form_view.ViewForm = <class 'openerp.widgets.form_view.ViewForm'>, params = {'_terp_view_type': u'tree', '_terp_offset': 0, ...tment_id': False}, '_terp_view_ids': [19, False]}, name undefined, action undefined
/usr/local/lib/python2.6/dist-packages/openobject_web-5.2dev-py2.6.egg/openobject/widgets/_meta.py in wrapper(self=ViewForm, *args=({'_terp_view_type': u'tree', '_terp_offset': 0, ...tment_id': False}, '_terp_view_ids': [19, False]},), **kw={'action': '/openerp/form/save', 'name': 'view_form'})
38 self.__initstack.append(1)
39
40 res = func(self, *args, **kw)
41 try:
42 self.__initstack.pop()
res undefined, func = <function __init__>, self = ViewForm, args = ({'_terp_view_type': u'tree', '_terp_offset': 0, ...tment_id': False}, '_terp_view_ids': [19, False]},), kw = {'action': '/openerp/form/save', 'name': 'view_form'}
/usr/local/lib/python2.6/dist-packages/openobject_web-5.2dev-py2.6.egg/addons/openerp/widgets/form_view.py in __init__(self=ViewForm, params={'_terp_view_type': u'tree', '_terp_offset': 0, ...tment_id': False}, '_terp_view_ids': [19, False]}, **kw={'action': '/openerp/form/save', 'name': 'view_form'})
89 if params.view_type in ('tree', 'graph'):
90 self.search = Search(model=params.model, domain=search_param, context=params.context, values=params.search_data or {},
91 filter_domain=params.filter_domain or [], search_view=params.search_view, group_by_ctx=params.group_by_ctx or [])
92
93 cherrypy.request.custom_search_domain = self.search.listof_domain or []
filter_domain undefined, params = {'_terp_view_type': u'tree', '_terp_offset': 0, ...tment_id': False}, '_terp_view_ids': [19, False]}, params.filter_domain = None, search_view undefined, params.search_view = {'arch': u'<?xml version="1.0" ?><form string="S\xe9quences">\n...elect="1"/><field name="code" select="1"/></form>', 'field_parent': False, 'fields': {'active': {'selectable': True, 'string': u'Actif', 'type': 'boolean'}, 'code': {'required': True, 'selectable': True, 'selection': [(u'account.invoice.out_invoice', u'Account Invoice Out'), (u'account.invoice.in_invoice', u'Account Invoice In'), (u'account.invoice.out_refund', u'Account Refund Out'), (u'account.invoice.in_refund', u'Account Refund In'), (u'account.analytic.account', u'Analytic account'), (u'account.journal', u'Account Journal'), (u'account.reconcile', u'Account reconcile sequence'), (u'account.bank.statement', u'Bank Statement'), (u'saj', u'Sales Journal - (test)'), (u'scnj', u'Sales Credit Note Journal - (test)'), (u'exj', u'Expenses Journal - (test)'), (u'ecnj', u'Expenses Credit Notes Journal - (test)'), (u'bnk', u'Bank Journal - (test)'), (u'chk', u'Checks Journal - (test)')], 'size': 64, 'string': u'Code de la s\xe9quence', 'type': 'selection'}, 'company_id': {'context': {}, 'domain': [], 'relation': 'res.company', 'selectable': True, 'string': u'Soci\xe9t\xe9', 'type': 'many2one'}, 'fiscal_ids': {'context': {}, 'domain': [], 'relation': 'account.sequence.fiscalyear', 'selectable': True, 'string': u'S\xe9quences', 'type': 'one2many'}, 'name': {'required': True, 'selectable': True, 'size': 64, 'string': u'Nom de la s\xe9quence', 'type': 'char'}, 'number_increment': {'required': True, 'selectable': True, 'string': u'Incr\xe9menter le Num\xe9ro', 'type': 'integer'}, 'number_next': {'required': True, 'selectable': True, 'string': u'Num\xe9ro suivant', 'type': 'integer'}, 'padding': {'help': "OpenERP will automatically adds some '0' on the ...e 'Next Number' to get the required padding size.", 'required': True, 'selectable': True, 'string': u'Remplissage', 'type': 'integer'}, 'prefix': {'selectable': True, 'size': 64, 'string': u'Pr\xe9fixe', 'type': 'char'}, 'suffix': {'selectable': True, 'size': 64, 'string': u'Suffixe', 'type': 'char'}}, 'model': 'ir.sequence', 'name': u'ir.sequence.form', 'type': u'form', 'view_id': 18}, group_by_ctx undefined, params.group_by_ctx = None
/usr/local/lib/python2.6/dist-packages/openobject_web-5.2dev-py2.6.egg/openobject/widgets/_meta.py in wrapper(self=Search, *args=(), **kw={'context': {'_terp_view_name': u'S\xe9quences', 'active_id': 22, 'active_ids': [22], 'active_model': 'ir.ui.menu', 'active_test': False, 'client': 'web', 'department_id': False, 'lang': u'fr_FR', 'tz': False}, 'domain': [], 'filter_domain': [], 'group_by_ctx': [], 'model': u'ir.sequence', 'search_view': {'arch': u'<?xml version="1.0" ?><form string="S\xe9quences">\n...elect="1"/><field name="code" select="1"/></form>', 'field_parent': False, 'fields': {'active': {'selectable': True, 'string': u'Actif', 'type': 'boolean'}, 'code': {'required': True, 'selectable': True, 'selection': [(u'account.invoice.out_invoice', u'Account Invoice Out'), (u'account.invoice.in_invoice', u'Account Invoice In'), (u'account.invoice.out_refund', u'Account Refund Out'), (u'account.invoice.in_refund', u'Account Refund In'), (u'account.analytic.account', u'Analytic account'), (u'account.journal', u'Account Journal'), (u'account.reconcile', u'Account reconcile sequence'), (u'account.bank.statement', u'Bank Statement'), (u'saj', u'Sales Journal - (test)'), (u'scnj', u'Sales Credit Note Journal - (test)'), (u'exj', u'Expenses Journal - (test)'), (u'ecnj', u'Expenses Credit Notes Journal - (test)'), (u'bnk', u'Bank Journal - (test)'), (u'chk', u'Checks Journal - (test)')], 'size': 64, 'string': u'Code de la s\xe9quence', 'type': 'selection'}, 'company_id': {'context': {}, 'domain': [], 'relation': 'res.company', 'selectable': True, 'string': u'Soci\xe9t\xe9', 'type': 'many2one'}, 'fiscal_ids': {'context': {}, 'domain': [], 'relation': 'account.sequence.fiscalyear', 'selectable': True, 'string': u'S\xe9quences', 'type': 'one2many'}, 'name': {'required': True, 'selectable': True, 'size': 64, 'string': u'Nom de la s\xe9quence', 'type': 'char'}, 'number_increment': {'required': True, 'selectable': True, 'string': u'Incr\xe9menter le Num\xe9ro', 'type': 'integer'}, 'number_next': {'required': True, 'selectable': True, 'string': u'Num\xe9ro suivant', 'type': 'integer'}, 'padding': {'help': "OpenERP will automatically adds some '0' on the ...e 'Next Number' to get the required padding size.", 'required': True, 'selectable': True, 'string': u'Remplissage', 'type': 'integer'}, 'prefix': {'selectable': True, 'size': 64, 'string': u'Pr\xe9fixe', 'type': 'char'}, 'suffix': {'selectable': True, 'size': 64, 'string': u'Suffixe', 'type': 'char'}}, 'model': 'ir.sequence', 'name': u'ir.sequence.form', 'type': u'form', 'view_id': 18}, 'values': {}})
38 self.__initstack.append(1)
39
40 res = func(self, *args, **kw)
41 try:
42 self.__initstack.pop()
res undefined, func = <function __init__>, self = Search, args = (), kw = {'context': {'_terp_view_name': u'S\xe9quences', 'active_id': 22, 'active_ids': [22], 'active_model': 'ir.ui.menu', 'active_test': False, 'client': 'web', 'department_id': False, 'lang': u'fr_FR', 'tz': False}, 'domain': [], 'filter_domain': [], 'group_by_ctx': [], 'model': u'ir.sequence', 'search_view': {'arch': u'<?xml version="1.0" ?><form string="S\xe9quences">\n...elect="1"/><field name="code" select="1"/></form>', 'field_parent': False, 'fields': {'active': {'selectable': True, 'string': u'Actif', 'type': 'boolean'}, 'code': {'required': True, 'selectable': True, 'selection': [(u'account.invoice.out_invoice', u'Account Invoice Out'), (u'account.invoice.in_invoice', u'Account Invoice In'), (u'account.invoice.out_refund', u'Account Refund Out'), (u'account.invoice.in_refund', u'Account Refund In'), (u'account.analytic.account', u'Analytic account'), (u'account.journal', u'Account Journal'), (u'account.reconcile', u'Account reconcile sequence'), (u'account.bank.statement', u'Bank Statement'), (u'saj', u'Sales Journal - (test)'), (u'scnj', u'Sales Credit Note Journal - (test)'), (u'exj', u'Expenses Journal - (test)'), (u'ecnj', u'Expenses Credit Notes Journal - (test)'), (u'bnk', u'Bank Journal - (test)'), (u'chk', u'Checks Journal - (test)')], 'size': 64, 'string': u'Code de la s\xe9quence', 'type': 'selection'}, 'company_id': {'context': {}, 'domain': [], 'relation': 'res.company', 'selectable': True, 'string': u'Soci\xe9t\xe9', 'type': 'many2one'}, 'fiscal_ids': {'context': {}, 'domain': [], 'relation': 'account.sequence.fiscalyear', 'selectable': True, 'string': u'S\xe9quences', 'type': 'one2many'}, 'name': {'required': True, 'selectable': True, 'size': 64, 'string': u'Nom de la s\xe9quence', 'type': 'char'}, 'number_increment': {'required': True, 'selectable': True, 'string': u'Incr\xe9menter le Num\xe9ro', 'type': 'integer'}, 'number_next': {'required': True, 'selectable': True, 'string': u'Num\xe9ro suivant', 'type': 'integer'}, 'padding': {'help': "OpenERP will automatically adds some '0' on the ...e 'Next Number' to get the required padding size.", 'required': True, 'selectable': True, 'string': u'Remplissage', 'type': 'integer'}, 'prefix': {'selectable': True, 'size': 64, 'string': u'Pr\xe9fixe', 'type': 'char'}, 'suffix': {'selectable': True, 'size': 64, 'string': u'Suffixe', 'type': 'char'}}, 'model': 'ir.sequence', 'name': u'ir.sequence.form', 'type': u'form', 'view_id': 18}, 'values': {}}
/usr/local/lib/python2.6/dist-packages/openobject_web-5.2dev-py2.6.egg/addons/openerp/widgets/search.py in __init__(self=Search, model=u'ir.sequence', domain=[], context={'_terp_view_name': u'S\xe9quences', 'active_id': 22, 'active_ids': [22], 'active_model': 'ir.ui.menu', 'active_test': False, 'client': 'web', 'department_id': False, 'lang': u'fr_FR', 'tz': False}, values={}, filter_domain=[], search_view={'arch': u'<?xml version="1.0" ?><form string="S\xe9quences">\n...elect="1"/><field name="code" select="1"/></form>', 'field_parent': False, 'fields': {'active': {'selectable': True, 'string': u'Actif', 'type': 'boolean'}, 'code': {'required': True, 'selectable': True, 'selection': [(u'account.invoice.out_invoice', u'Account Invoice Out'), (u'account.invoice.in_invoice', u'Account Invoice In'), (u'account.invoice.out_refund', u'Account Refund Out'), (u'account.invoice.in_refund', u'Account Refund In'), (u'account.analytic.account', u'Analytic account'), (u'account.journal', u'Account Journal'), (u'account.reconcile', u'Account reconcile sequence'), (u'account.bank.statement', u'Bank Statement'), (u'saj', u'Sales Journal - (test)'), (u'scnj', u'Sales Credit Note Journal - (test)'), (u'exj', u'Expenses Journal - (test)'), (u'ecnj', u'Expenses Credit Notes Journal - (test)'), (u'bnk', u'Bank Journal - (test)'), (u'chk', u'Checks Journal - (test)')], 'size': 64, 'string': u'Code de la s\xe9quence', 'type': 'selection'}, 'company_id': {'context': {}, 'domain': [], 'relation': 'res.company', 'selectable': True, 'string': u'Soci\xe9t\xe9', 'type': 'many2one'}, 'fiscal_ids': {'context': {}, 'domain': [], 'relation': 'account.sequence.fiscalyear', 'selectable': True, 'string': u'S\xe9quences', 'type': 'one2many'}, 'name': {'required': True, 'selectable': True, 'size': 64, 'string': u'Nom de la s\xe9quence', 'type': 'char'}, 'number_increment': {'required': True, 'selectable': True, 'string': u'Incr\xe9menter le Num\xe9ro', 'type': 'integer'}, 'number_next': {'required': True, 'selectable': True, 'string': u'Num\xe9ro suivant', 'type': 'integer'}, 'padding': {'help': "OpenERP will automatically adds some '0' on the ...e 'Next Number' to get the required padding size.", 'required': True, 'selectable': True, 'string': u'Remplissage', 'type': 'integer'}, 'prefix': {'selectable': True, 'size': 64, 'string': u'Pr\xe9fixe', 'type': 'char'}, 'suffix': {'selectable': True, 'size': 64, 'string': u'Suffixe', 'type': 'char'}}, 'model': 'ir.sequence', 'name': u'ir.sequence.form', 'type': u'form', 'view_id': 18}, group_by_ctx=[])
272 self.fields_list.sort(lambda x, y: cmp(x[1], y[1]))
273
274 dom = xml.dom.minidom.parseString(self.search_view['arch'])
275 self.view_type = dom.firstChild.localName
276 self.string = dom.documentElement.getAttribute('string')
dom undefined, global xml = <module 'xml' from '/usr/lib/python2.6/xml/__init__.pyc'>, xml.dom = <module 'xml.dom' from '/usr/lib/python2.6/xml/dom/__init__.pyc'>, xml.dom.minidom = <module 'xml.dom.minidom' from '/usr/lib/python2.6/xml/dom/minidom.pyc'>, xml.dom.minidom.parseString = <function parseString>, self = Search, self.search_view = {'arch': u'<?xml version="1.0" ?><form string="S\xe9quences">\n...elect="1"/><field name="code" select="1"/></form>', 'field_parent': False, 'fields': {'active': {'selectable': True, 'string': u'Actif', 'type': 'boolean'}, 'code': {'required': True, 'selectable': True, 'selection': [(u'account.invoice.out_invoice', u'Account Invoice Out'), (u'account.invoice.in_invoice', u'Account Invoice In'), (u'account.invoice.out_refund', u'Account Refund Out'), (u'account.invoice.in_refund', u'Account Refund In'), (u'account.analytic.account', u'Analytic account'), (u'account.journal', u'Account Journal'), (u'account.reconcile', u'Account reconcile sequence'), (u'account.bank.statement', u'Bank Statement'), (u'saj', u'Sales Journal - (test)'), (u'scnj', u'Sales Credit Note Journal - (test)'), (u'exj', u'Expenses Journal - (test)'), (u'ecnj', u'Expenses Credit Notes Journal - (test)'), (u'bnk', u'Bank Journal - (test)'), (u'chk', u'Checks Journal - (test)')], 'size': 64, 'string': u'Code de la s\xe9quence', 'type': 'selection'}, 'company_id': {'context': {}, 'domain': [], 'relation': 'res.company', 'selectable': True, 'string': u'Soci\xe9t\xe9', 'type': 'many2one'}, 'fiscal_ids': {'context': {}, 'domain': [], 'relation': 'account.sequence.fiscalyear', 'selectable': True, 'string': u'S\xe9quences', 'type': 'one2many'}, 'name': {'required': True, 'selectable': True, 'size': 64, 'string': u'Nom de la s\xe9quence', 'type': 'char'}, 'number_increment': {'required': True, 'selectable': True, 'string': u'Incr\xe9menter le Num\xe9ro', 'type': 'integer'}, 'number_next': {'required': True, 'selectable': True, 'string': u'Num\xe9ro suivant', 'type': 'integer'}, 'padding': {'help': "OpenERP will automatically adds some '0' on the ...e 'Next Number' to get the required padding size.", 'required': True, 'selectable': True, 'string': u'Remplissage', 'type': 'integer'}, 'prefix': {'selectable': True, 'size': 64, 'string': u'Pr\xe9fixe', 'type': 'char'}, 'suffix': {'selectable': True, 'size': 64, 'string': u'Suffixe', 'type': 'char'}}, 'model': 'ir.sequence', 'name': u'ir.sequence.form', 'type': u'form', 'view_id': 18}
/usr/lib/python2.6/xml/dom/minidom.py in parseString(string=u'<?xml version="1.0" ?><form string="S\xe9quences">\n...elect="1"/><field name="code" select="1"/></form>', parser=None)
1926 if parser is None:
1927 from xml.dom import expatbuilder
1928 return expatbuilder.parseString(string)
1929 else:
1930 from xml.dom import pulldom
expatbuilder = <module 'xml.dom.expatbuilder' from '/usr/lib/python2.6/xml/dom/expatbuilder.pyc'>, expatbuilder.parseString = <function parseString>, string = u'<?xml version="1.0" ?><form string="S\xe9quences">\n...elect="1"/><field name="code" select="1"/></form>'
/usr/lib/python2.6/xml/dom/expatbuilder.py in parseString(string=u'<?xml version="1.0" ?><form string="S\xe9quences">\n...elect="1"/><field name="code" select="1"/></form>', namespaces=True)
938 else:
939 builder = ExpatBuilder()
940 return builder.parseString(string)
941
942
builder = <xml.dom.expatbuilder.ExpatBuilderNS instance>, builder.parseString = <bound method ExpatBuilderNS.parseString of <xml.dom.expatbuilder.ExpatBuilderNS instance>>, string = u'<?xml version="1.0" ?><form string="S\xe9quences">\n...elect="1"/><field name="code" select="1"/></form>'
/usr/lib/python2.6/xml/dom/expatbuilder.py in parseString(self=<xml.dom.expatbuilder.ExpatBuilderNS instance>, string=u'<?xml version="1.0" ?><form string="S\xe9quences">\n...elect="1"/><field name="code" select="1"/></form>')
221 parser = self.getParser()
222 try:
223 parser.Parse(string, True)
224 self._setup_subset(string)
225 except ParseEscape:
parser = <pyexpat.xmlparser object>, parser.Parse = <built-in method Parse of pyexpat.xmlparser object>, string = u'<?xml version="1.0" ?><form string="S\xe9quences">\n...elect="1"/><field name="code" select="1"/></form>', builtin True = True
<type 'exceptions.UnicodeEncodeError'>: 'ascii' codec can't encode character u'\xe9' in position 37: ordinal not in range(128)
args = ('ascii', u'<?xml version="1.0" ?><form string="S\xe9quences">\n...elect="1"/><field name="code" select="1"/></form>', 37, 38, 'ordinal not in range(128)')
encoding = 'ascii'
end = 38
message = ''
object = u'<?xml version="1.0" ?><form string="S\xe9quences">\n...elect="1"/><field name="code" select="1"/></form>'
reason = 'ordinal not in range(128)'
start = 37