Crear un Campo Calculado de Tipo Seleccion
Si trabajamos con campos calculados en Odoo y nos hemos enfrentado a obtener un valor de un campo SelecciĆ³n o RelaciĆ³n, observamos que en la nueva tabla el resultado es correcto obtenemos el resultado pero no tenemos la etiqueta correcta. Esto se soluciona haciendo uso del atributo "selection".
Ejemplo:
def _get_states(self, cr, uid, ids, fieldnames, args, context=None): res = {} state = 'draft' #### Aqui meteriamos el codigo para obtener el Estado del registro que necesitaramos ##### return res[ids[0]] = state lista_estados = [ ('draft','Borrador') ('done','Realizado') ] 'state': fields.function(_get_states, type='selection',method=True, selection=lista_estados, string="Estado"),
La misma regla aplica para los campos Relacion (Related):
lista_estados = [ ('draft','Borrador') ('confirmed','Confirmado') ('done','Realizado') ('cancel','Cancelado') ] 'state': fields.related('invoice_id','state', type='selection',method=True, selection=lista_estados, string="Estado"),
Gracias GermƔn!
ResponderBorrarBuenos dias, estoy tratando se hacer un reporte con aeroo reports, pero al mostrar un campo seleccion en el reporte solo muestra numeros (claves) pero no el nombre o valor de dicho campo seleccion. Hay alguna forma de hacer que muestre el valor del campo y no el indice?? Gracias
ResponderBorrarHola, normalmente los campos selecciĆ³n estan conformados por 2 valores, el primero es el texto que se guarda en Base de Datos y el Segundo el Texto para la aplicaciĆ³n. Si deseas mostrar un valor distinto al de la clave de la selecciĆ³n, debes usar condicionantes y en base a esto poner el valor, por ejemplo if o.state == 'cancel':
Borrar"Documento Cancelado".
El ejemplo anterior solo es para darte una idea.
Existe una soluciĆ³n:
Borrartexto_estado = str(dict(Modelo._fields['campo_selection'].selection).get(Modelo.campo_selection))
Buenas tardes, antetodo disculpen que escriba por este medio... estoy trabajando con la version 10 de Odoo, y se me presentĆ³ un problema con el modulo de nĆ³minas el cual presentare a continuacion.
ResponderBorrarnecesito calcular los Sabados Trabajados y/o los permisos remunerados pero no se como colocar en la regla salarial sin tener que colocar el worked_days.CODIGOX.number_od_days podran ayudarme por favor
yo pienso que es mas facil que calcules los dias por un campo manual. saludos
Borrar