General

¡Bienvenido a los foros Aeodoo!

Somos la comunidad de Odoo internacional hispanohablante.
Estos foros son para compartir y debatir dudas técnicas, funcionales y mejores prácticas para Odoo. Recuerda que no están permitidos los insultos, descalificaciones o spam, cualquier conducta reprobable supondrá el baneo del usuario.

0

Sumar Fechas en widget float_time

Avatar
Inma Sánchez

Buenas!!

Estoy intentando sumar horas y minutos de la siguiente manera. Tengo una función que calcula las horas y minutos entre dos fechas y pone el valor en un campo float con un widget float_time (hh:mm) y necesito que si al volver a calcular una diferencia e intentar grabar de nuevo encuentra que ese campo no está vacío sume los valores. Alguno sabe como hacerlo?

    @api.multi
def action_pause(self):
date_reboot = self.date_reboot
# Si hay fecha de reinicio calcula de diferencia entre ella y la fecha actual y resetea la fecha de reinicio
if (date_reboot!=False):
datetime_diff = datetime.now() - self.date_reboot
self.date_reboot=False
# Si no hay fecha de reinicio calcula la diferencia entre la fecha de incio y la fecha actual
else:
datetime_diff = datetime.now() - self.date_start

minutes, seconds = divmod(datetime_diff.total_seconds(), 60)
hours, minutes = divmod(minutes, 60)
dur_hours = (('%0*d')%(2,hours))
dur_minutes = (('%0*d')%(2,minutes*1.677966102))
duration = dur_hours+'.'+dur_minutes
# Si ya hay un computo de horas le suma el nuevo computo
unit_amount = self.unit_amount
if (unit_amount!=False):
duration = duration + unit_amount

return self.write({
'start_stop':False,
'unit_amount':duration
})
Avatar
Descartar
1 Respuesta
1
Avatar
Inma Sánchez
Mejor respuesta

Me respondo a mi misma para dejar el chat cerrado.

El widget float_time permite, no solo que el campo float se comporte como un campo time, sino que los valores del campo se autosumen cuando entra un nuevo valor. Para ello tan solo hay que añadirle sum="total" a la declaración del campo en el xml.

Aunque este problema ya está resuelto si alguien sabe donde conseguir info de las características de los widget se agradecería que lo comentara, para evitar futuros quebraderos de cabeza.
1 Comentario
Avatar
Descartar

No conozco ningún sitio oficial fuera del código para ver el listado de widgets disponibles... con este comando podrías ver los nombres de los widgets utilizados en todo el código:

grep -irh --only-matching 'widget="[a-z0-9_-]*"' --include='*.xml' --include='*.js' | sort --unique

Y despues ya se trata de buscar en las fuentes como utilizarlo...

También existen varias páginas que muestran info al respecto... por ejemplo:

https://www.cybrosys.com/blog/new-widgets-odoo-13

Pero no existe una documentación oficial de widgets, por el momento al menos.

Su respuesta

Intente dar una respuesta sustancial. Si desea hacer un comentario sobre la pregunta o la respuesta, utilice la herramienta de comentarios. Recuerde que siempre puede revisar sus respuestas , no es necesario responder dos veces a la misma pregunta. No olvide votar , ayuda a seleccionar las mejores preguntas y respuestas