summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRaphael Collet <rco@odoo.com>2021-03-03 12:32:05 +0000
committerJulien Castiaux <juc@odoo.com>2021-03-03 13:20:11 +0000
commitf212223305a4d1da0f01f008c3874a72945fcae0 (patch)
tree3f5c19dbd04a8f6a15160f8f8261960a779a730b
parentd4210430a911fb23d6fce5dbd4279f03f134cd2e (diff)
[FIX] website_event_meet: autovacuum method
Convert the override of method `power_on()` to an `@autovacuum` method. closes odoo/odoo#67145 Signed-off-by: Raphael Collet (rco) <rco@openerp.com>
-rw-r--r--addons/website_event_meet/models/__init__.py1
-rw-r--r--addons/website_event_meet/models/event_meeting_room.py14
-rw-r--r--addons/website_event_meet/models/ir_autovacuum.py24
3 files changed, 14 insertions, 25 deletions
diff --git a/addons/website_event_meet/models/__init__.py b/addons/website_event_meet/models/__init__.py
index 8f975bbef96..b39174706a8 100644
--- a/addons/website_event_meet/models/__init__.py
+++ b/addons/website_event_meet/models/__init__.py
@@ -4,5 +4,4 @@
from . import event_event
from . import event_type
from . import event_meeting_room
-from . import ir_autovacuum
from . import website_event_menu
diff --git a/addons/website_event_meet/models/event_meeting_room.py b/addons/website_event_meet/models/event_meeting_room.py
index 4d88f9aaedd..8e56889e567 100644
--- a/addons/website_event_meet/models/event_meeting_room.py
+++ b/addons/website_event_meet/models/event_meeting_room.py
@@ -1,6 +1,8 @@
# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
+import datetime
+
from odoo import api, fields, models
from odoo.addons.http_routing.models.ir_http import slug
@@ -14,6 +16,8 @@ class EventMeetingRoom(models.Model):
'website.published.mixin',
]
+ _DELAY_CLEAN = datetime.timedelta(hours=4)
+
name = fields.Char("Topic", required=True, translate=True)
active = fields.Boolean('Active', default=True)
is_published = fields.Boolean(copy=True) # make the inherited field copyable
@@ -37,3 +41,13 @@ class EventMeetingRoom(models.Model):
if not values.get("chat_room_id") and not values.get('room_name'):
values['room_name'] = 'odoo-room-%s' % (values['name'])
return super(EventMeetingRoom, self).create(values_list)
+
+ @api.autovacuum
+ def _archive_meeting_rooms(self):
+ """Archive all non-pinned room with 0 participant if nobody has joined it for a moment."""
+ self.sudo().search([
+ ("is_pinned", "=", False),
+ ("active", "=", True),
+ ("room_participant_count", "=", 0),
+ ("room_last_activity", "<", fields.Datetime.now() - self._DELAY_CLEAN),
+ ]).active = False
diff --git a/addons/website_event_meet/models/ir_autovacuum.py b/addons/website_event_meet/models/ir_autovacuum.py
deleted file mode 100644
index 11907a0d5ac..00000000000
--- a/addons/website_event_meet/models/ir_autovacuum.py
+++ /dev/null
@@ -1,24 +0,0 @@
-# -*- coding: utf-8 -*-
-# Part of Odoo. See LICENSE file for full copyright and licensing details.
-
-import datetime
-
-from odoo import api, models, fields
-
-
-class AutoVacuum(models.AbstractModel):
- _inherit = 'ir.autovacuum'
-
- _DELAY_CLEAN = datetime.timedelta(hours=4)
-
- @api.model
- def power_on(self, *args, **kwargs):
- """Archive all non-pinned room with 0 participant if nobody has joined it for a moment."""
- self.env["event.meeting.room"].sudo().search([
- ("is_pinned", "=", False),
- ("active", "=", True),
- ("room_participant_count", "=", 0),
- ("room_last_activity", "<", fields.Datetime.now() - self._DELAY_CLEAN),
- ]).active = False
-
- return super(AutoVacuum, self).power_on(*args, **kwargs)