from odoo import http from odoo.exceptions import AccessError from odoo.http import request from ..environment_checkup.runtime import all_installed_checks, display_data from ..environment_checkup.core import CheckResult class Dashboard(http.Controller): @http.route("/galicea_environment_checkup/data", type="json", auth="user") def data(self, request, **kw): if not request.env.user.has_group("base.group_erp_manager"): raise AccessError("Access Denied") checks = all_installed_checks(request.env) response = display_data(request.env, checks) priority = {CheckResult.FAIL: 0, CheckResult.WARNING: 1, CheckResult.SUCCESS: 2} response.sort(key=lambda res: (priority[res["result"]], res["module"])) return response