Provincia_Paciente = fields.Char(string='Provincia del paciente', size=60 ,required=True)
CP_Paciente = fields.Char(string='CP del paciente', size= 6 ,required=True)
Script en la misma clase del modelo que he desarrollado hasta ahora:
ENLACE A GITHUB
Código XML de la vista:
<field name="Provincia_Paciente" placeholder = "Alicante"/>
<field name="CP_Paciente" data-inputmask="'mask': '99999'"/>
Y aquí usando diferentes artículos he creado esto:
# defino función que relaciona campo selección con campo CP
def _sel_func(self, cr, uid, context=None):
obj = self.pool.get('admision.ingreso')
ids = obj.search(cr, uid, [])
res = obj.read(cr, uid, ids, ['name', 'id'], context)
res = [(r['id'], r['name']) for r in res]
return res
#defino campo selección con meta tupla provincia con clave
Provincia_Paciente = fields.selection((('Álava','01'),('Albacete','02'),('Alicante','03'),('Almería','04'),('Ávila','05'),('Badajoz','06'),(
'Islas Baleares','07'),('Barcelona',''08''),('Burgos',''09''),('Cáceres','10'),('Cádiz','11'),(
'Castellón','12'),('Ciudad Real','13'),('Córdoba','14'),('La Coruña','15'),('Cuenca','16'),(
'Gerona','17'),('Granada','18'),('Guadalajara','19'),('Guipúzcoa','20'),('Huelva','21'),('Huesca','21'),(
'Jaén','23'),('León','24'),('Lérida','25'),('La Rioja','26'),('Lugo','27'),('Madrid','28'),('Malaga','29'),(
'Murcia','30'),('Navarra','31'),('Orense','32'),('Astirias','33'),('Palencia','34'),('Las Palmas','35'),(
'Pontevedra','36'),('Salamanca','37'),('Santa Cruz de Tenerife','38'),('Cantabria','39'),(
'Segovia','40'),('Sevilla','41'),('Soria','42'),('Tarragona','43'),('Teruel','44'),('Toledo','45'),(
'Valencia','46'),('Valladolid','47'),('Vizcaya','48'),('Zamora','49'),('Zaragoza','50'),('Ceuta','51'),(
'Melilla','52'),()), string = 'Provincia del paciente')
# defino campo CP que recibe el valor de la seleccion
CP_Paciente = fields.Reference(string='CP del paciente',selection = _sel_func, size= 6 ,required=True)
Pero me da error de sobrecarga de servidor.
¿Alguna idea?
Un saludo y espero pronta respuesta,
Marco García Baturan.
Buenas Marco,
Si te he entendido bien lo que quieres es que el usuario seleccione la provincia (desde un seleccionable) y automáticamente se rellene un campo con el código postal correspondiente.
Si estas usando Odoo v8 supongo que estaras programando en la nueva api, el artículo en el que te estas basando es de la vieja api.
Los fields en la nueva api empiezan en mayúsculas, tu tienes puesto fields.selection y tendrías que tener puesto fields.Selection
Aparte si quieres que te salgan las provincias en el desplegable tienes que invertir el orden de la tupla, la primera parte es la llave(el valor interno que maneja Odoo) y la segunda lo que se visualiza al usuario. El campo Provincia_Paciente te tendría que quedar algo como esto:
Provincia_Paciente = fields.Selection(selection=(('01', 'Álava'),('02', 'Albacete'),('03', 'Alicante'),
('04', 'Almería'),('05', 'Ávila'),('06', 'Badajoz'),
('07', 'Islas Baleares'),('08', 'Barcelona'),('09', 'Burgos'),
('10', 'Cáceres'),('11', 'Cádiz'),('12','Castellón'),
('13','Ciudad Real'),('14','Córdoba'),
('15', 'La Coruña'),('16', 'Cuenca'),('17','Gerona'),
('18','Granada'),('19','Guadalajara'),('20','Guipúzcoa'),
('21','Huelva'),('22','Huesca'),('23','Jaén'),('24','León'),
('25','Lérida'),('26','La Rioja'),('27','Lugo'),('28','Madrid'),
('29','Malaga'),('30','Murcia'),('31','Navarra'),('32','Orense'),
('33','Astirias'),('34','Palencia'),('35','Las Palmas'),
('36','Pontevedra'),('37','Salamanca'),
('38','Santa Cruz de Tenerife'),('39','Cantabria'),
('40','Segovia'),('41','Sevilla'),('42','Soria'),
('43','Tarragona'),('44','Teruel'),('45','Toledo'),
('46','Valencia'),('47','Valladolid'),('48','Vizcaya'),
('49','Zamora'),('50','Zaragoza'),('51','Ceuta'),('52','Melilla')),
string = 'Provincia del paciente')
Para que en el campo CP_Paciente sea el código de la provincia podrías usar un método onchange. Te quedaria algo tal que así:
@api.onchange('Provincia_Paciente')
def onchange_provincia_paciente(self):
self.CP_Paciente = self.Provincia_Paciente
CP_Paciente = fields.Char(string='CP del paciente',size= 6 ,required=True)
Un saludo.
Hola a todos,
dasdas
--
Has recibido este mensaje porque estás suscrito a un tema del grupo "Usuarios Odoo / OpenERP en España" de Grupos de Google.
Para cancelar la suscripción a este tema, visita https://groups.google.com/d/topic/openerp-spain-users/ZBCiei_nu6s/unsubscribe.
Para cancelar la suscripción a este grupo y a todos sus temas, envía un correo electrónico a openerp-spain-users+unsub...@googlegroups.com.
Para acceder a más opciones, visita https://groups.google.com/d/optout.