summaryrefslogtreecommitdiff
path: root/addons/web_tour/models
diff options
context:
space:
mode:
authorstephanchrst <stephanchrst@gmail.com>2022-05-10 21:51:50 +0700
committerstephanchrst <stephanchrst@gmail.com>2022-05-10 21:51:50 +0700
commit3751379f1e9a4c215fb6eb898b4ccc67659b9ace (patch)
treea44932296ef4a9b71d5f010906253d8c53727726 /addons/web_tour/models
parent0a15094050bfde69a06d6eff798e9a8ddf2b8c21 (diff)
initial commit 2
Diffstat (limited to 'addons/web_tour/models')
-rw-r--r--addons/web_tour/models/__init__.py5
-rw-r--r--addons/web_tour/models/ir_http.py15
-rw-r--r--addons/web_tour/models/tour.py26
3 files changed, 46 insertions, 0 deletions
diff --git a/addons/web_tour/models/__init__.py b/addons/web_tour/models/__init__.py
new file mode 100644
index 00000000..a9f4d6f4
--- /dev/null
+++ b/addons/web_tour/models/__init__.py
@@ -0,0 +1,5 @@
+# -*- coding: utf-8 -*-
+# Part of Odoo. See LICENSE file for full copyright and licensing details.
+
+from . import ir_http
+from . import tour
diff --git a/addons/web_tour/models/ir_http.py b/addons/web_tour/models/ir_http.py
new file mode 100644
index 00000000..abcfceb4
--- /dev/null
+++ b/addons/web_tour/models/ir_http.py
@@ -0,0 +1,15 @@
+# -*- coding: utf-8 -*-
+# Part of Odoo. See LICENSE file for full copyright and licensing details.
+
+from odoo import models
+from odoo.http import request
+
+
+class Http(models.AbstractModel):
+ _inherit = 'ir.http'
+
+ def session_info(self):
+ result = super(Http, self).session_info()
+ if result['is_admin']:
+ result['web_tours'] = request.env['web_tour.tour'].get_consumed_tours()
+ return result
diff --git a/addons/web_tour/models/tour.py b/addons/web_tour/models/tour.py
new file mode 100644
index 00000000..ccf6968f
--- /dev/null
+++ b/addons/web_tour/models/tour.py
@@ -0,0 +1,26 @@
+# -*- coding: utf-8 -*-
+# Part of Odoo. See LICENSE file for full copyright and licensing details.
+
+from odoo import api, fields, models
+
+
+class Tour(models.Model):
+
+ _name = "web_tour.tour"
+ _description = "Tours"
+ _log_access = False
+
+ name = fields.Char(string="Tour name", required=True)
+ user_id = fields.Many2one('res.users', string='Consumed by')
+
+ @api.model
+ def consume(self, tour_names):
+ """ Sets given tours as consumed, meaning that
+ these tours won't be active anymore for that user """
+ for name in tour_names:
+ self.create({'name': name, 'user_id': self.env.uid})
+
+ @api.model
+ def get_consumed_tours(self):
+ """ Returns the list of consumed tours for the current user """
+ return [t.name for t in self.search([('user_id', '=', self.env.uid)])]