Skip to Content
Menú
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
Descartar
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
Descartar
Autor 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
Descartar
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
Descartar
Related Posts Respostes Vistes Activitat
2
de març 25
1373
2
de juny 25
518
1
de juny 25
2489
1
de juny 25
560
2
de maig 25
659