summaryrefslogtreecommitdiff
path: root/addons
diff options
context:
space:
mode:
authorDebauche Stéphane <std@odoo.com>2019-11-12 09:16:52 +0000
committerThibault Delavallée <tde@odoo.com>2020-01-08 09:11:51 +0000
commita321963d192a049671864404bfaee5a0ccf9b4e8 (patch)
tree2b7d8b581a3abcf53b9eb709d8ead4811b54d73f /addons
parentbd61b6cd386ebeb9f8b375fff7ad430a2e4c39b5 (diff)
[IMP] event: add a cron that clean the event pipeline
The cron will move every ended events in the next "ended stage" We inherit from `ir.autovacuum`, so the method `power_on` is called one time per day. Task #2088538
Diffstat (limited to 'addons')
-rw-r--r--addons/event/models/__init__.py1
-rw-r--r--addons/event/models/ir_autovacuum.py21
2 files changed, 22 insertions, 0 deletions
diff --git a/addons/event/models/__init__.py b/addons/event/models/__init__.py
index 4d521dddd92..750d7b5de79 100644
--- a/addons/event/models/__init__.py
+++ b/addons/event/models/__init__.py
@@ -6,3 +6,4 @@ from . import event_mail
from . import event_stage
from . import res_config_settings
from . import res_partner
+from . import ir_autovacuum
diff --git a/addons/event/models/ir_autovacuum.py b/addons/event/models/ir_autovacuum.py
new file mode 100644
index 00000000000..d58a788e6c8
--- /dev/null
+++ b/addons/event/models/ir_autovacuum.py
@@ -0,0 +1,21 @@
+# -*- coding: utf-8 -*-
+# Part of Odoo. See LICENSE file for full copyright and licensing details.
+from odoo import api, models, fields
+
+
+class AutoVacuum(models.AbstractModel):
+ _inherit = 'ir.autovacuum'
+
+ @api.model
+ def power_on(self, *args, **kwargs):
+ """
+ Cron which drags all events which end date is < now (= passed)
+ into the first next (by sequence) stage defined as "Ended"
+ (if they are not already in an ended stage)
+ """
+ ended_events = self.env['event.event'].search([('date_end', '<', fields.Datetime.now()), ('stage_id.pipe_end', '=', False)])
+
+ if ended_events:
+ ended_events.action_set_done()
+
+ return super(AutoVacuum, self).power_on(*args, **kwargs)