I would like to use state code (2 letters) as a searchable drop down in res partner address form, or all addresses for that matter. I'm using the latest version 8 and thought this was a config option but can't find it.
Odoo is the world's easiest all-in-one management software.
It includes hundreds of business apps:
- CRM
- e-Commerce
- Boekhouding
- Voorraad
- PoS
- Project
- MRP
Deze vraag is gerapporteerd
In Custom Module Inherit res.country.state object and Override name_get method and shows State Code based on your requirement.
Example:-
class CountryState(osv.osv):
_inherit = "res.country.state"
def name_get(self, cr, uid, ids, context=None):
if not len(ids):
return []
res = []
reads = self.read(cr, uid, ids, ['code'], context=context)
for record in reads:
code = record['code']
res.append((record['id'], code))
return res
see the name_get and name_search ORM method https://doc.odoo.com/6.0/developer/2_5_Objects_Fields_Methods/methods/
It is working already as you say - try it on your own - when you type the right code, a dropdown menu selection with state representing code you've typed appears.
I understand this. There is a drop down to select the "Full" name of the state. I would like to store just the two letter state code here. Where is the code that imports the list for the drop down? That is what I need to change.
Instead of changing whole search in Odoo, it would be easier for you to create a new model. which will store values as you wish - many2one search is based on name column, so you would have to create a model, which in name stores code, and in code stores name.
Pass context value in xml...
<field name='state' context="{'code':True}"
In py file
class res_country_state(osv.osv):
_inherit = "res.country.state"
def name_get(self, cr, uid, ids, context=None):
if not len(ids):
return []
if not context:
context={}
res = []
res=super(res_country_state,self).name_get(cr, uid, ids)
state_code=context.get('code',False)
reads = self.read(cr, uid, ids, ['code'], context=context)
if state_code:
res = []
for record in reads:
code = record['code']
res.append((record['id'], code))
return res
Geniet je van het gesprek? Blijf niet alleen lezen, doe ook mee!
Maak vandaag nog een account aan om te profiteren van exclusieve functies en deel uit te maken van onze geweldige community!
Aanmelden