Ir al contenido
Menú
Se marcó esta pregunta
2 Respuestas
9937 Vistas

When I configure a filter with a relative date in odoo studio, when saving it the date becomes static.

do you know how i can do this?

filter origin: [["invoice_date","=",datetime.datetime.now()]]

Filter after save: [["invoice_date","=","2022-04-07T21:12:05.906Z"]]


Thanks!!!

Avatar
Descartar

<filter string="Today" name="today" domain="[('create_date', '&gt;', (context_today() - datetime.timedelta(days=1)).strftime('%%Y-%%m-%%d'))]"/>

Autor Mejor respuesta

Thanks Niyas, this is the solution: 

Use case : In the CRM app, I want to be able to filter on the task changed this week/last24H/no change in the past 30 days.


How to :


1. Create a new filter with the date you want to filter in Odoo with studio (search view). Any filter would work, we just need Studio to create a view. 


2. Open the studio view that was created (Odoo Studio: MODEL.search.inherit.VIEW customization) 


3. Change the domain :


CHANGED THIS WEEK : 

domain="[('date','<',time.strftime('%%Y-%%m-%%d 23:59:59')),('date','>=',(datetime.date.today()-datetime.timedelta(days=7)).strftime('%%Y-%%m-%%d 00:00:00'))]"


CHANGED THIS DAY  : 

domain="[('date','<',time.strftime('%%Y-%%m-%%d 23:59:59')),('date','>=',(datetime.date.today()-datetime.timedelta(hours=24)).strftime('%%Y-%%m-%%d 00:00:00'))]"


NO CHANGE LAST 30 DAYS

domain="[('date','<',(datetime.date.today()-datetime.timedelta(days=30)).strftime('%%Y-%%m-%%d 00:00:00'))]"


'date' = update this field and use the name of field you need to filter.


********

Example : 

domain="[('date_last_stage_update','<',time.strftime('%%Y-%%m-%%d 23:59:59')),('date_last_stage_update','>=',(datetime.date.today()-datetime.timedelta(days=7)).strftime('%%Y-%%m-%%d 00:00:00'))]"/>

domain="[('date_last_stage_update','<',time.strftime('%%Y-%%m-%%d 23:59:59')),('date_last_stage_update','>=',(datetime.date.today()-datetime.timedelta(hours=24)).strftime('%%Y-%%m-%%d 00:00:00'))]"/>

domain="[('date_last_stage_update','<',(datetime.date.today()-datetime.timedelta(days=30)).strftime('%%Y-%%m-%%d 00:00:00'))]"/>

Avatar
Descartar
Publicaciones relacionadas Respuestas Vistas Actividad
2
mar 25
6853
3
may 23
4625
1
jun 24
1400
1
ene 19
6194
1
oct 18
4219