Odoo Help

Welcome!

This community is for beginners and experts willing to share their Odoo knowledge. It's not a forum to discuss ideas, but a knowledge base of questions and their answers.

1

Server Action to set deadline in 7 days

By
Robert Klüsener
on 9/6/13, 6:34 AM 2,910 views

I want to create a server action that automatically set the deadline of a task in 7 days from today. I already succeed to create a server action that sets today as the deadline date by using the Action Type Write Object and writing the following formula in the deadline field:

time.strftime('%Y-%m-%d %H:%M:%S')

As I am not programmer and do not not any phyton I am struggling to find the formula for today + 7 days

2

Olivier Dony (odo)

--Olivier Dony (odo)--
2112
| 7 6 7
--Olivier Dony (odo)--

 

Olivier Dony (odo)
On 9/6/13, 7:45 AM

Based on the standard Python time package, you could use the following formula instead:

time.strftime('%Y-%m-%d %H:%M:%S',time.gmtime(time.time()+7*24*3600))

The time offset of 7 days is provided in seconds as 7*24*3600, so you can adapt it as needed, positive or negative.

Works. Thanks a lot!

Feuerwear GmbH & Co. KG, Robert Klüsener
on 9/6/13, 7:55 AM
0
Frédéric Gilson (fgi)
On 10/11/13, 12:17 PM

For all the other users, here are the steps to follow in order to automatically set deadlines on Tasks.

  1. From the task kanban or list view, create two advanced filters for each stage: Stage is equal to stage_name, Stage is not equal to stage_name.
  2. In Settings > Technical > Automated Actions, create a new record for all the stages for which you want to set an automatic deadline:
  3. Name: i.e. Set task's deadline to D+7 when stage = New
  4. Model: Task

CONDITIONS TAB:

  • Before Update Filter (pre-condition): retrieve the created filter "Stage is not equal to stage_name" in the list. If you want to add a deadline for the first stage (i.e. New), do not add this pre-condition in the automated action dedicated to the first stage, otherwise it won't work. Further, add "['date_deadline', '=',False]" in its post-condition filter domain in order to avoid an infinite loop. Indeed, without pre-condition, the post-condition would be always valid.

  • After Update Filter (post-condition): retrieve the created filter "Stage is equal to stage_name" in the list.

ACTIONS TAB:

Create a new action:

  • Object: Task

  • Action type: Write object

Field mapping:

  • Model: Task

  • Destination: Deadline

  • Type: Formula

  • Value: time.strftime('%Y-%m-%d %H:%M:%S',time.gmtime(time.time()+7243600))

You can change the number of allowed days by replacing 7 in the formula (7 days).

Enjoy!

Your Answer

Please try to give a substantial answer. If you wanted to comment on the question or answer, just use the commenting tool. Please remember that you can always revise your answers - no need to answer the same question twice. Also, please don't forget to vote - it really helps to select the best questions and answers!

About This Community

This community is for professionals and enthusiasts of our products and services. Read Guidelines

Question tools

2 follower(s)

Stats

Asked: 9/6/13, 6:34 AM
Seen: 2910 times
Last updated: 3/16/15, 8:10 AM