summaryrefslogtreecommitdiff
path: root/addons/base_setup/controllers
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/base_setup/controllers
parent0a15094050bfde69a06d6eff798e9a8ddf2b8c21 (diff)
initial commit 2
Diffstat (limited to 'addons/base_setup/controllers')
-rw-r--r--addons/base_setup/controllers/__init__.py2
-rw-r--r--addons/base_setup/controllers/main.py56
2 files changed, 58 insertions, 0 deletions
diff --git a/addons/base_setup/controllers/__init__.py b/addons/base_setup/controllers/__init__.py
new file mode 100644
index 00000000..757b12a1
--- /dev/null
+++ b/addons/base_setup/controllers/__init__.py
@@ -0,0 +1,2 @@
+# -*- coding: utf-8 -*-
+from . import main
diff --git a/addons/base_setup/controllers/main.py b/addons/base_setup/controllers/main.py
new file mode 100644
index 00000000..317cb6bd
--- /dev/null
+++ b/addons/base_setup/controllers/main.py
@@ -0,0 +1,56 @@
+# -*- coding: utf-8 -*-
+# Part of Odoo. See LICENSE file for full copyright and licensing details.
+
+from odoo import _, http
+from odoo.exceptions import AccessError
+from odoo.http import request
+
+
+class BaseSetup(http.Controller):
+ @http.route('/base_setup/data', type='json', auth='user')
+ def base_setup_data(self, **kw):
+ if not request.env.user.has_group('base.group_erp_manager'):
+ raise AccessError(_("Access Denied"))
+
+ cr = request.cr
+ cr.execute("""
+ SELECT count(*)
+ FROM res_users
+ WHERE active=true AND
+ share=false
+ """)
+ active_count = cr.dictfetchall()[0].get('count')
+
+ cr.execute("""
+ SELECT count(u.*)
+ FROM res_users u
+ WHERE active=true AND
+ share=false AND
+ NOT exists(SELECT 1 FROM res_users_log WHERE create_uid=u.id)
+ """)
+ pending_count = cr.dictfetchall()[0].get('count')
+
+ cr.execute("""
+ SELECT id, login
+ FROM res_users u
+ WHERE active=true AND
+ share=false AND
+ NOT exists(SELECT 1 FROM res_users_log WHERE create_uid=u.id)
+ ORDER BY id desc
+ LIMIT 10
+ """)
+ pending_users = cr.fetchall()
+
+ return {
+ 'active_users': active_count,
+ 'pending_count': pending_count,
+ 'pending_users': pending_users,
+ }
+
+ @http.route('/base_setup/demo_active', type='json', auth='user')
+ def base_setup_is_demo(self, **kwargs):
+ # We assume that if there's at least one module with demo data active, then the db was
+ # initialized with demo=True or it has been force-activated by the `Load demo data` button
+ # in the settings dashboard.
+ demo_active = bool(request.env['ir.module.module'].search_count([('demo', '=', True)]))
+ return demo_active