AEOdoo

¡Bienvenido!

Esta comunidad es para profesionales y principiantes en nuestros productos y servicios.
Comparte y discute el mejor contenido y nuevas ideas de marketing, construye tu perfil profesional y conviértete en un mejor comercializador.

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
Best Answer

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

Por favor trate de dar una respuesta sustancial. Si desea comentar sobre la pregunta o respuesta, utilice la herramienta de comentarios. Recuerde que siempre puede revisar sus respuestas - no hay necesidad de contestar la misma pregunta dos veces. Además, no olvide valorar - realmente ayuda a seleccionar las mejores preguntas y respuestas