Skip to Content
Menu
This question has been flagged

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

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

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

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
Discard
Related Posts Replies Views Activity
2
Mar 25
1370
2
Jun 25
518
1
Jun 25
2487
1
Jun 25
559
2
May 25
658