From b58e9d12e41e67b5c69a2a40a6d2ee397bfdc2c5 Mon Sep 17 00:00:00 2001 From: tarteo Date: Fri, 23 Aug 2024 14:22:00 +0200 Subject: [PATCH] [ADD] Application Statistics --- argocd_deployer/__manifest__.py | 8 ++++- .../demo/application_stat_type_demo.xml | 7 ++++ argocd_deployer/menuitems.xml | 12 +++++-- argocd_deployer/models/__init__.py | 2 ++ argocd_deployer/models/application.py | 5 +++ argocd_deployer/models/application_stat.py | 16 +++++++++ .../models/application_stat_type.py | 11 +++++++ argocd_deployer/security/ir.model.access.csv | 2 ++ .../views/application_stat_type_view.xml | 33 +++++++++++++++++++ .../views/application_stat_view.xml | 14 ++++++++ argocd_deployer/views/application_view.xml | 10 +++--- 11 files changed, 112 insertions(+), 8 deletions(-) create mode 100644 argocd_deployer/demo/application_stat_type_demo.xml create mode 100644 argocd_deployer/models/application_stat.py create mode 100644 argocd_deployer/models/application_stat_type.py create mode 100644 argocd_deployer/views/application_stat_type_view.xml create mode 100644 argocd_deployer/views/application_stat_view.xml diff --git a/argocd_deployer/__manifest__.py b/argocd_deployer/__manifest__.py index 20328f1..cbb3596 100644 --- a/argocd_deployer/__manifest__.py +++ b/argocd_deployer/__manifest__.py @@ -18,11 +18,17 @@ "views/application_view.xml", "views/application_set_view.xml", "views/application_namespace_prefix_view.xml", + "views/application_stat_type_view.xml", + "views/application_stat_view.xml", "templates/application_description.xml", "security/ir.model.access.csv", "menuitems.xml", ], "depends": ["queue_job", "mail"], - "demo": ["demo/application_template_demo.xml", "demo/application_tag_demo.xml"], + "demo": [ + "demo/application_template_demo.xml", + "demo/application_tag_demo.xml", + "demo/application_stat_type_demo.xml", + ], "external_dependencies": {"python": ["git"]}, } diff --git a/argocd_deployer/demo/application_stat_type_demo.xml b/argocd_deployer/demo/application_stat_type_demo.xml new file mode 100644 index 0000000..13f8a6e --- /dev/null +++ b/argocd_deployer/demo/application_stat_type_demo.xml @@ -0,0 +1,7 @@ + + + + storage_usage + Storage Usage + + diff --git a/argocd_deployer/menuitems.xml b/argocd_deployer/menuitems.xml index 255781c..96208cf 100644 --- a/argocd_deployer/menuitems.xml +++ b/argocd_deployer/menuitems.xml @@ -25,23 +25,29 @@ parent="config_menu" sequence="10" /> + diff --git a/argocd_deployer/models/__init__.py b/argocd_deployer/models/__init__.py index 36c5909..e667a5a 100644 --- a/argocd_deployer/models/__init__.py +++ b/argocd_deployer/models/__init__.py @@ -6,3 +6,5 @@ from . import application_value from . import application_namespace_prefix from . import application_domain +from . import application_stat_type +from . import application_stat diff --git a/argocd_deployer/models/application.py b/argocd_deployer/models/application.py index 8d56cbf..56529ea 100644 --- a/argocd_deployer/models/application.py +++ b/argocd_deployer/models/application.py @@ -54,6 +54,11 @@ class Application(models.Model): is_application_set_deployed = fields.Boolean( string="Is App. Set deployed", related="application_set_id.is_deployed" ) + stat_ids = fields.One2many( + comodel_name="argocd.application.stat", + inverse_name="application_id", + string="Statistics", + ) def get_value(self, key, default=""): self.ensure_one() diff --git a/argocd_deployer/models/application_stat.py b/argocd_deployer/models/application_stat.py new file mode 100644 index 0000000..22a472e --- /dev/null +++ b/argocd_deployer/models/application_stat.py @@ -0,0 +1,16 @@ +from odoo import fields, models + + +class ApplicationStat(models.Model): + _name = "argocd.application.stat" + _description = "Application Statistics" + _order = "date desc" + + application_id = fields.Many2one( + comodel_name="argocd.application", required=True, ondelete="cascade" + ) + type_id = fields.Many2one( + comodel_name="argocd.application.stat.type", required=True + ) + date = fields.Datetime(help="The date when the measurement was done", required=True) + value = fields.Float() diff --git a/argocd_deployer/models/application_stat_type.py b/argocd_deployer/models/application_stat_type.py new file mode 100644 index 0000000..246783f --- /dev/null +++ b/argocd_deployer/models/application_stat_type.py @@ -0,0 +1,11 @@ +from odoo import fields, models + + +class ApplicationStatType(models.Model): + _name = "argocd.application.stat.type" + _description = "Application Statistic Type" + + _sql_constraints = [("key_uniq", "UNIQUE (key)", "Key must be unique.")] + + key = fields.Char(required=True) + name = fields.Char(required=True) diff --git a/argocd_deployer/security/ir.model.access.csv b/argocd_deployer/security/ir.model.access.csv index 47f4b2c..d4388d9 100644 --- a/argocd_deployer/security/ir.model.access.csv +++ b/argocd_deployer/security/ir.model.access.csv @@ -7,3 +7,5 @@ application_set_access,application_set_access,model_argocd_application_set,base. application_set_template_access,application_set_template_access,model_argocd_application_set_template,base.group_system,1,1,1,1 application_namespace_prefix_access,application_namespace_prefix_access,model_argocd_application_namespace_prefix,base.group_system,1,1,1,1 application_domain_access,application_domain_access,model_argocd_application_domain,base.group_system,1,1,1,1 +application_stat_access,application_stat_access,model_argocd_application_stat,base.group_system,1,1,1,1 +application_stat_type_access,application_stat_type_access,model_argocd_application_stat_type,base.group_system,1,1,1,1 diff --git a/argocd_deployer/views/application_stat_type_view.xml b/argocd_deployer/views/application_stat_type_view.xml new file mode 100644 index 0000000..53d0831 --- /dev/null +++ b/argocd_deployer/views/application_stat_type_view.xml @@ -0,0 +1,33 @@ + + + + argocd.application.stat.type + +
+ + + + + + +
+
+
+ + + argocd.application.stat.type + + + + + + + + + + Statistic Types + ir.actions.act_window + argocd.application.stat.type + tree,form + +
diff --git a/argocd_deployer/views/application_stat_view.xml b/argocd_deployer/views/application_stat_view.xml new file mode 100644 index 0000000..4e029a0 --- /dev/null +++ b/argocd_deployer/views/application_stat_view.xml @@ -0,0 +1,14 @@ + + + + argocd.application.stat + + + + + + + + + + diff --git a/argocd_deployer/views/application_view.xml b/argocd_deployer/views/application_view.xml index 88c1aa7..78ca951 100644 --- a/argocd_deployer/views/application_view.xml +++ b/argocd_deployer/views/application_view.xml @@ -82,10 +82,12 @@ - - - - + + + + + +