diff options
| author | Debauche Stéphane <std@odoo.com> | 2019-11-12 09:16:52 +0000 |
|---|---|---|
| committer | Thibault Delavallée <tde@odoo.com> | 2020-01-08 09:11:51 +0000 |
| commit | a321963d192a049671864404bfaee5a0ccf9b4e8 (patch) | |
| tree | 2b7d8b581a3abcf53b9eb709d8ead4811b54d73f /addons | |
| parent | bd61b6cd386ebeb9f8b375fff7ad430a2e4c39b5 (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__.py | 1 | ||||
| -rw-r--r-- | addons/event/models/ir_autovacuum.py | 21 |
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) |
