Ir al contenido
Menú
Se marcó esta pregunta

Hello everyone,

I'm trying to get the "Last Update Status" variable in the Project to update automatically depending on the current date. I was thinking of doing this using a scheduled action. I've attached some screenshots.

I would like the bubble to change automatically where you can put if thebproject is to define, on risk, on track...

Here is the scheduled action I'm working on: 

today = fields.Date.today()


for proyecto in model.search([]):

    fecha = proyecto.x_studio_fecha_de_finalizacin


    if not fecha:

        estado = 'to_define'

        color = 0  # gris

    else:

        dias = (fecha - today).days


        if dias < 0:

            estado = 'off_track'

            color = 1  # rojo

        elif dias <= 2:

            estado = 'at_risk'

            color = 3  # amarillo

        else:

            estado = 'on_track'

            color = 10  # verde


    proyecto.write({

        'last_update_status': estado,

        'last_update_color': color,

    })

I appreciate your help — I've always programmed in Python, but I don't fully understand how to do it in Odoo.

Best regards,

Marcos

Avatar
Descartar
Mejor respuesta

Hii,

try below code in scheduled actions 
today = fields.Date.today()


projects = env['project.project'].search([])


for proyecto in projects:

    fecha = proyecto.x_studio_fecha_de_finalizacin


    if not fecha:

        estado = 'to_define'

        color = 0 # gray

    else:

        dias = (fecha - today).days


        if dias < 0:

            estado = 'off_track'

            color = 1 # red

        elif dias <= 2:

            estado = 'at_risk'

            color = 3 # yellow

        else:

            estado = 'on_track'

            color = 10 # green


    proyecto.write({

        'last_update_status': estado,

        'last_update_color': color,

    })


i hope it is use full

Avatar
Descartar
Autor Mejor respuesta

@Cybrosys me que no funciona, no me deja importar ningún módulo ya que me sale error:

Error de validación

Códigos de operación prohibidos en "from datetime import date\r\n\r\n\r\n\r\ntoday = date.today()\r\n\r\n\r\n\r\nfor proyecto in model.search([]):\r\n\r\n fecha = proyecto.x_studio_fecha_de_finalización\r\n\r\n\r\n\r\n if not fecha:\r\n\r\n estado = 'to_define'\r\n\r\n color = 0 # gris\r\n\r\n else:\r\n\r\n dias = (fecha - today).days\r\n\r\n\r\n\r\n if dias < 0:\r\n\r\n estado = 'off_track'\r\n\r\n color = 1 # rojo\r\n\r\n elif dias <= 2:\r\n\r\n estado = 'en_riesgo'\r\n\r\n color = 3 # amarillo\r\n\r\n de lo contrario:\r\n\r\n estado = 'en_camino'\r\n\r\n color = 10 # verde\r\n\r\n\r\n\r\n proyecto.write({\r\n\r\n 'último_estado_de_actualización': estado,\r\n\r\n 'último_color_de_actualización': color,\r\n\r\n })": NOMBRE_DE_IMPORTACIÓN, IMPORTAR_DESDE

No se que puedo hacer, elimina esa línea y se quita el error pero ya no funciona


@Desk, me temo que no funciona tampoco

Avatar
Descartar
Mejor respuesta

Hi,


1-  Create a schedule action.

Settings > Technical > Schedule Action >New




2- Add the python code.



Code:-


from datetime import date


today = date.today()


for proyecto in model.search([]):

    fecha = proyecto.x_studio_fecha_de_finalizacin


    if not fecha:

        estado = 'to_define'

        color = 0  # grey

    else:

        dias = (fecha - today).days


        if dias < 0:

            estado = 'off_track'

            color = 1  # red

        elif dias <= 2:

            estado = 'at_risk'

            color = 3  # yellow

        else:

            estado = 'on_track'

            color = 10  # green


    proyecto.write({

        'last_update_status': estado,

        'last_update_color': color,

    })


Ensure your custom fields:


    x_studio_fecha_de_finalizacin → is a Date field


    last_update_status → is a Selection or Char field


    last_update_color → is an Integer (used for status tag color)



Hope it helps.

Avatar
Descartar
Publicaciones relacionadas Respuestas Vistas Actividad
2
mar 25
1375
2
jun 25
532
1
jun 25
2489
1
jun 25
582
2
may 25
663