Hi expert,
I am newbie on openerp/odoo, I would like to capitalize the first letter of every word entered into a employee name, how to do that?
I am using openerp/odoo version 7
let say if I entered: john doe it would be John Doe
Thanks
Odoo is the world's easiest all-in-one management software.
It includes hundreds of business apps:
Hi expert,
I am newbie on openerp/odoo, I would like to capitalize the first letter of every word entered into a employee name, how to do that?
I am using openerp/odoo version 7
let say if I entered: john doe it would be John Doe
Thanks
May be useful for v9 and v8 users,
name = fields.Char()
@api.onchange('name')
def caps_name(self):
if self.name :
self.name = str(self.name).title()
first_name = fields.Char(string='First Name')
middle_name = fields.Char(string='MiddleName')
last_name = fields.Char(string='LastName')
@api.model
def create(self, vals):
vals['first_name'] = vals['first_name'].title()
vals['middle_name'] = vals['middle_name'].title()
vals['last_name'] = vals['last_name'].title()
return super(Employee, self).create(vals)
Define onchange method for this field. Inside method convert value of field as you like.
You can title() function for this purpose field_name.title().
Pls refer following links:
http://stackoverflow.com/questions/1549641/how-to-capitalize-the-first-letter-of-each-word-in-a-string-python
http://stackoverflow.com/questions/12410242/python-capitalize-first-letter-only
the answer for odoo v8
prenom = fields.Char()
@api.onchange('prenom')
def _compute_upper(self):
for rec in self:
self.prenom = self.prenom.title() if self.prenom else False
Thanks for the response, and here's I have done already.
hr_view.xml
<!--Employee form view -->
<div class="oe_title">
<label for="name" class="oe_edit_only"/>
<h1>
<field name="name" on_change="onchange_name(name)"/>
</h1>
On hr.py I have added the below code
def onchange_name(self, cr, uid, ids, name, context=None):
return {
'value': {
'name': name.title()
}
}
Got the following errors:
OpenERP Server Error
Client Traceback (most recent call last): File "/home/philip/ws/openerp/web/addons/web/http.py", line 204, in dispatch response["result"] = method(self, **self.params) File "/home/philip/ws/openerp/web/addons/web/controllers/main.py", line 1125, in call_kw return self._call_kw(req, model, method, args, kwargs) File "/home/philip/ws/openerp/web/addons/web/controllers/main.py", line 1117, in _call_kw return getattr(req.session.model(model), method)(*args, **kwargs) File "/home/philip/ws/openerp/web/addons/web/session.py", line 42, in proxy result = self.proxy.execute_kw(self.session._db, self.session._uid, self.session._password, self.model, method, args, kw) File "/home/philip/ws/openerp/web/addons/web/session.py", line 30, in proxy_method result = self.session.send(self.service_name, method, *args) File "/home/philip/ws/openerp/web/addons/web/session.py", line 103, in send raise xmlrpclib.Fault(openerp.tools.ustr(e), formatted_info) Server Traceback (most recent call last): File "/home/philip/ws/openerp/web/addons/web/session.py", line 89, in send return openerp.netsvc.dispatch_rpc(service_name, method, args) File "/home/philip/ws/openerp/server/openerp/netsvc.py", line 296, in dispatch_rpc result = ExportService.getService(service_name).dispatch(method, params) File "/home/philip/ws/openerp/server/openerp/service/web_services.py", line 626, in dispatch res = fn(db, uid, *params) File "/home/philip/ws/openerp/server/openerp/osv/osv.py", line 190, in execute_kw return self.execute(db, uid, obj, method, *args, **kw or {}) File "/home/philip/philip/openerp/server/openerp/osv/osv.py", line 132, in wrapper return f(self, dbname, *args, **kwargs) File "/home/philip/ws/openerp/server/openerp/osv/osv.py", line 199, in execute res = self.execute_cr(cr, uid, obj, method, *args, **kw) File "/home/test/philip/openerp/server/openerp/osv/osv.py", line 187, in execute_cr return getattr(object, method)(cr, uid, *args, **kw) AttributeError: 'hr.employee' object has no attribute 'onchange_name'
I would greatly appreciate any help you can give me in working this problem
Hi philip, I updated my code please check it.
Hi philip, I updated my code please check it.
--
prakash Sent by OpenERP S.A. using Odoo. Access your messages and documents in Odoo
Thank you so much prakash, really appreciated your help, is working now
Capitalize Firstname and set Name to Uppercase: Just use the tg_partner_firstname from http://thierry-godin.developpez.com/openerp/openerp-module-pos-enhanced-fr/fichiers/openerp_tg_pos_enhanced_package_1.0.1.zip
In python use the code name.title() to Capitalize the first letter in Create method or onchange Method.
EDIT
I tested your code its working without any issue.
Try the below code:-
<div class="oe_title">
<label for="name" class="oe_edit_only"/>
<h1>
<field name="name" on_change="onchange_name(name)"/>
</h1>
def onchange_name(self, cr, uid, ids, name, context=None):
if name:
return {'value': {'name': name.title()}}
return {'value':{}}
After making these changes, restart the server update your module and test it. It should work.
Create an account today to enjoy exclusive features and engage with our awesome community!
Sign upRelated Posts | Replies | Views | Activity | |
---|---|---|---|---|
|
0
May 21
|
1784 |