From d5d8f2411a302f16100f30acebaae06ec50f54ab Mon Sep 17 00:00:00 2001 From: Pablo Montenegro Date: Tue, 31 Oct 2023 11:00:12 -0300 Subject: [PATCH 1/6] [IMP] okr: new module okr by pam Task: 34208 --- okr/__init__.py | 1 + okr/__manifest__.py | 22 ++++++++ okr/data/kr_ppal_data.xml | 29 ++++++++++ okr/models/__init__.py | 3 + okr/models/kr_ppal.py | 10 ++++ okr/models/objetivo.py | 30 ++++++++++ okr/models/objetivo_line.py | 23 ++++++++ okr/security/ir.model.access.csv | 4 ++ okr/views/kr_ppal.xml | 24 ++++++++ okr/views/objetivo.xml | 96 ++++++++++++++++++++++++++++++++ okr/views/objetivo_line.xml | 26 +++++++++ 11 files changed, 268 insertions(+) create mode 100644 okr/__init__.py create mode 100644 okr/__manifest__.py create mode 100644 okr/data/kr_ppal_data.xml create mode 100644 okr/models/__init__.py create mode 100644 okr/models/kr_ppal.py create mode 100644 okr/models/objetivo.py create mode 100644 okr/models/objetivo_line.py create mode 100644 okr/security/ir.model.access.csv create mode 100644 okr/views/kr_ppal.xml create mode 100644 okr/views/objetivo.xml create mode 100644 okr/views/objetivo_line.xml diff --git a/okr/__init__.py b/okr/__init__.py new file mode 100644 index 00000000..0650744f --- /dev/null +++ b/okr/__init__.py @@ -0,0 +1 @@ +from . import models diff --git a/okr/__manifest__.py b/okr/__manifest__.py new file mode 100644 index 00000000..f79332d2 --- /dev/null +++ b/okr/__manifest__.py @@ -0,0 +1,22 @@ +{ +'name': "OKR", +'version': '16.0.1.0.0', +'category': 'OKR', +'summary': "Gestión de OKR", +'license': 'LGPL-3', +'description': """ +Manage Library +============== +Description related to library. +""", +'author': "Pablo Montenegro", +'depends': ['base'], +'data': ['security/ir.model.access.csv', + 'data/kr_ppal_data.xml', + 'views/objetivo_line.xml', + 'views/objetivo.xml', + 'views/kr_ppal.xml',], +'application': True, +'installable': True, +'auto_install': False, +} diff --git a/okr/data/kr_ppal_data.xml b/okr/data/kr_ppal_data.xml new file mode 100644 index 00000000..48a79829 --- /dev/null +++ b/okr/data/kr_ppal_data.xml @@ -0,0 +1,29 @@ + + + + + 01 + Crecer + + + + 02 + Internacionalizar + + + + 03 + Agregar valor al cliente + + + + 04 + Producto robusto + + + + 05 + Equipo motivado y feliz + + + diff --git a/okr/models/__init__.py b/okr/models/__init__.py new file mode 100644 index 00000000..f05113c1 --- /dev/null +++ b/okr/models/__init__.py @@ -0,0 +1,3 @@ +from . import kr_ppal +from . import objetivo +from . import objetivo_line diff --git a/okr/models/kr_ppal.py b/okr/models/kr_ppal.py new file mode 100644 index 00000000..6950334f --- /dev/null +++ b/okr/models/kr_ppal.py @@ -0,0 +1,10 @@ +from odoo import models, fields + + +class KrPPal(models.Model): + _name = "kr.ppal" + _description = "Kr ppal" + _rec_name = 'descripcion' + + codigo = fields.Char(required=True) + descripcion = fields.Char(required=True) diff --git a/okr/models/objetivo.py b/okr/models/objetivo.py new file mode 100644 index 00000000..863f505a --- /dev/null +++ b/okr/models/objetivo.py @@ -0,0 +1,30 @@ +from odoo import models, api, fields +import time +from odoo.exceptions import UserError + + +class OkrObjetivo(models.Model): + _name = "okr.objetivo" + _description = "Objetivo" + _rec_name = 'resumen_objetivo' + + resumen_objetivo = fields.Many2one('kr.ppal', string="KR ppal", required=True) + descripcion_ampliada = fields.Char(string="Descripcion ampliada", required=True, readonly=False) + progreso = fields.Integer(string="Progress", compute='_compute_progreso',help="Progress from zero knowledge (0%) to fully mastered (100%).", default=0) + peso = fields.Selection([('inspiracional', 'Inspiracional'), ('commitment', 'Commitment')]) + comentarios = fields.Char() + okr_ids = fields.One2many('okr.objetivo.line', 'objetivo_padre') + team = fields.Selection([('imasd', 'I+D'), ('administracion', 'Administración'), ('rechumanos', 'Recursos Humanos'), ('ventas', 'Ventas'), ('mdea', 'Mdea'), ('consultoria', 'Consultoria')], required=True) + periodo = fields.Selection([('q1', 'Q1'), ('q2', 'Q2'), ('q3', 'Q3'), ('q4', 'Q4')], required=True) + state = fields.Selection([('in_progress', 'En progreso'), ('cancel', 'Cancelado'), ('state', 'finalizado')]) + year = fields.Char( + required=True, + default=time.strftime('%Y'), + ) + + @api.depends('okr_ids') + def _compute_progreso(self): + sumatory = sum(self.okr_ids.mapped('progreso')) or 0 + self.progreso = sumatory + if sumatory > 100: + raise UserError("Revisar el progreso de los kr, no puede ser mayor a 100") diff --git a/okr/models/objetivo_line.py b/okr/models/objetivo_line.py new file mode 100644 index 00000000..75bac8b2 --- /dev/null +++ b/okr/models/objetivo_line.py @@ -0,0 +1,23 @@ +from odoo import models, api, fields, _ +from odoo.exceptions import ValidationError + + +class OkrObjetivoLine(models.Model): + _name = "okr.objetivo.line" + _description = "Objetivo line" + + kr = fields.Char(string="Descripción KR", required=True, readonly=False) + descripcion_ampliada = fields.Char(string="Descripcion ampliada", required=True, readonly=False) + progreso = fields.Integer(string="Progress", default=0, store=True, readonly=False) + peso = fields.Integer(string="Peso") + comentarios = fields.Char() + objetivo_padre = fields.Many2one('okr.objetivo') + target = fields.Integer(string="Target") + resultado = fields.Integer(string="Resultado") + responsable = fields.Char() + plan_de_accion = fields.Char() + comentarios = fields.Char() + interdependencias = fields.Char() + realizado_en_el_q = fields.Char() + notas_proximo_q = fields.Char() + team = fields.Selection(related='objetivo_padre.team') diff --git a/okr/security/ir.model.access.csv b/okr/security/ir.model.access.csv new file mode 100644 index 00000000..44e007c5 --- /dev/null +++ b/okr/security/ir.model.access.csv @@ -0,0 +1,4 @@ +id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink +access_kr_ppal,access_kr_ppal,model_kr_ppal,base.group_user,1,1,1,1 +access_okr_objetivo,access_okr_objetivo,model_okr_objetivo,base.group_user,1,1,1,1 +access_okr_objetivo_line,access_okr_objetivo_line,model_okr_objetivo_line,base.group_user,1,1,1,1 diff --git a/okr/views/kr_ppal.xml b/okr/views/kr_ppal.xml new file mode 100644 index 00000000..eee20a1a --- /dev/null +++ b/okr/views/kr_ppal.xml @@ -0,0 +1,24 @@ + + + + + Kr principales + kr.ppal + + + + + + + + + + KR ppales + kr.ppal + tree + + + + + + diff --git a/okr/views/objetivo.xml b/okr/views/objetivo.xml new file mode 100644 index 00000000..656d5280 --- /dev/null +++ b/okr/views/objetivo.xml @@ -0,0 +1,96 @@ + + + + + Objetivo + okr.objetivo + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + Objetivo + okr.objetivo + + + + + + + + + + + + + + + + + okr.objetivo.search + okr.objetivo + + + + + + + + + + Objetivo + okr.objetivo + tree,form + + {'search_default_group_by_team': True} + + + + + +
diff --git a/okr/views/objetivo_line.xml b/okr/views/objetivo_line.xml new file mode 100644 index 00000000..f6919fc4 --- /dev/null +++ b/okr/views/objetivo_line.xml @@ -0,0 +1,26 @@ + + + + + Objetivo + okr.objetivo.line + + + + + + + + + + + + + + + + + + + + From 368857c293e768ac6915d429a0376e4cab60d40f Mon Sep 17 00:00:00 2001 From: Pablo Montenegro Date: Mon, 6 Nov 2023 11:29:50 -0300 Subject: [PATCH 2/6] nuevos cambios --- okr/.gitignore | 1 + okr/__manifest__.py | 9 +-- okr/data/ir_module_category_data.xml | 27 ++++++++ okr/data/kr_ppal_data.xml | 20 +++--- okr/models/__init__.py | 4 +- okr/models/kr_ppal.py | 6 +- okr/models/objetivo.py | 30 --------- okr/models/objetivo_line.py | 23 ------- okr/models/okr_key_result.py | 21 ++++++ okr/models/okr_objective.py | 29 +++++++++ okr/security/ir.model.access.csv | 9 ++- okr/views/kr_ppal.xml | 4 +- okr/views/objetivo.xml | 96 ---------------------------- okr/views/objetivo_line.xml | 26 -------- okr/views/okr_key_result.xml | 26 ++++++++ okr/views/okr_objective.xml | 90 ++++++++++++++++++++++++++ 16 files changed, 222 insertions(+), 199 deletions(-) create mode 100644 okr/.gitignore create mode 100644 okr/data/ir_module_category_data.xml delete mode 100644 okr/models/objetivo.py delete mode 100644 okr/models/objetivo_line.py create mode 100644 okr/models/okr_key_result.py create mode 100644 okr/models/okr_objective.py delete mode 100644 okr/views/objetivo.xml delete mode 100644 okr/views/objetivo_line.xml create mode 100644 okr/views/okr_key_result.xml create mode 100644 okr/views/okr_objective.xml diff --git a/okr/.gitignore b/okr/.gitignore new file mode 100644 index 00000000..ed63a21b --- /dev/null +++ b/okr/.gitignore @@ -0,0 +1 @@ +notas.txt diff --git a/okr/__manifest__.py b/okr/__manifest__.py index f79332d2..80576644 100644 --- a/okr/__manifest__.py +++ b/okr/__manifest__.py @@ -10,11 +10,12 @@ Description related to library. """, 'author': "Pablo Montenegro", -'depends': ['base'], -'data': ['security/ir.model.access.csv', +'depends': ['base', 'hr'], +'data': ['data/ir_module_category_data.xml', + 'security/ir.model.access.csv', 'data/kr_ppal_data.xml', - 'views/objetivo_line.xml', - 'views/objetivo.xml', + 'views/okr_key_result.xml', + 'views/okr_objective.xml', 'views/kr_ppal.xml',], 'application': True, 'installable': True, diff --git a/okr/data/ir_module_category_data.xml b/okr/data/ir_module_category_data.xml new file mode 100644 index 00000000..4a87f3c6 --- /dev/null +++ b/okr/data/ir_module_category_data.xml @@ -0,0 +1,27 @@ + + + + + OKR + OKR + 1 + + + Permisos + 1 + + + + User + + + + + + Manager + + + + + + diff --git a/okr/data/kr_ppal_data.xml b/okr/data/kr_ppal_data.xml index 48a79829..6a9fca76 100644 --- a/okr/data/kr_ppal_data.xml +++ b/okr/data/kr_ppal_data.xml @@ -2,28 +2,28 @@ - 01 - Crecer + 01 + Crecer - 02 - Internacionalizar + 02 + Internacionalizar - 03 - Agregar valor al cliente + 03 + Agregar valor al cliente - 04 - Producto robusto + 04 + Producto robusto - 05 - Equipo motivado y feliz + 05 + Equipo motivado y feliz diff --git a/okr/models/__init__.py b/okr/models/__init__.py index f05113c1..aad67eba 100644 --- a/okr/models/__init__.py +++ b/okr/models/__init__.py @@ -1,3 +1,3 @@ from . import kr_ppal -from . import objetivo -from . import objetivo_line +from . import okr_key_result +from . import okr_objective diff --git a/okr/models/kr_ppal.py b/okr/models/kr_ppal.py index 6950334f..6bba534f 100644 --- a/okr/models/kr_ppal.py +++ b/okr/models/kr_ppal.py @@ -4,7 +4,7 @@ class KrPPal(models.Model): _name = "kr.ppal" _description = "Kr ppal" - _rec_name = 'descripcion' + _rec_name = 'description' - codigo = fields.Char(required=True) - descripcion = fields.Char(required=True) + code = fields.Char(required=True) + description = fields.Char(required=True) diff --git a/okr/models/objetivo.py b/okr/models/objetivo.py deleted file mode 100644 index 863f505a..00000000 --- a/okr/models/objetivo.py +++ /dev/null @@ -1,30 +0,0 @@ -from odoo import models, api, fields -import time -from odoo.exceptions import UserError - - -class OkrObjetivo(models.Model): - _name = "okr.objetivo" - _description = "Objetivo" - _rec_name = 'resumen_objetivo' - - resumen_objetivo = fields.Many2one('kr.ppal', string="KR ppal", required=True) - descripcion_ampliada = fields.Char(string="Descripcion ampliada", required=True, readonly=False) - progreso = fields.Integer(string="Progress", compute='_compute_progreso',help="Progress from zero knowledge (0%) to fully mastered (100%).", default=0) - peso = fields.Selection([('inspiracional', 'Inspiracional'), ('commitment', 'Commitment')]) - comentarios = fields.Char() - okr_ids = fields.One2many('okr.objetivo.line', 'objetivo_padre') - team = fields.Selection([('imasd', 'I+D'), ('administracion', 'Administración'), ('rechumanos', 'Recursos Humanos'), ('ventas', 'Ventas'), ('mdea', 'Mdea'), ('consultoria', 'Consultoria')], required=True) - periodo = fields.Selection([('q1', 'Q1'), ('q2', 'Q2'), ('q3', 'Q3'), ('q4', 'Q4')], required=True) - state = fields.Selection([('in_progress', 'En progreso'), ('cancel', 'Cancelado'), ('state', 'finalizado')]) - year = fields.Char( - required=True, - default=time.strftime('%Y'), - ) - - @api.depends('okr_ids') - def _compute_progreso(self): - sumatory = sum(self.okr_ids.mapped('progreso')) or 0 - self.progreso = sumatory - if sumatory > 100: - raise UserError("Revisar el progreso de los kr, no puede ser mayor a 100") diff --git a/okr/models/objetivo_line.py b/okr/models/objetivo_line.py deleted file mode 100644 index 75bac8b2..00000000 --- a/okr/models/objetivo_line.py +++ /dev/null @@ -1,23 +0,0 @@ -from odoo import models, api, fields, _ -from odoo.exceptions import ValidationError - - -class OkrObjetivoLine(models.Model): - _name = "okr.objetivo.line" - _description = "Objetivo line" - - kr = fields.Char(string="Descripción KR", required=True, readonly=False) - descripcion_ampliada = fields.Char(string="Descripcion ampliada", required=True, readonly=False) - progreso = fields.Integer(string="Progress", default=0, store=True, readonly=False) - peso = fields.Integer(string="Peso") - comentarios = fields.Char() - objetivo_padre = fields.Many2one('okr.objetivo') - target = fields.Integer(string="Target") - resultado = fields.Integer(string="Resultado") - responsable = fields.Char() - plan_de_accion = fields.Char() - comentarios = fields.Char() - interdependencias = fields.Char() - realizado_en_el_q = fields.Char() - notas_proximo_q = fields.Char() - team = fields.Selection(related='objetivo_padre.team') diff --git a/okr/models/okr_key_result.py b/okr/models/okr_key_result.py new file mode 100644 index 00000000..b244cfe6 --- /dev/null +++ b/okr/models/okr_key_result.py @@ -0,0 +1,21 @@ +from odoo import models, api, fields, _ +from odoo.exceptions import ValidationError + + +class OkrObjetivoLine(models.Model): + _name = "okr.key_result" + _description = "OKR key result" + + name = fields.Char(required=True) + description = fields.Char(required=True) + progress = fields.Integer(string="Progress", default=0, store=True) + weight = fields.Integer() + comments = fields.Char() + objective = fields.Many2one('okr.objective') + target = fields.Integer(string="Target") + result = fields.Integer() + user_id = fields.Many2one('res.users', string="Responsible") + plan_de_accion = fields.Char() + interdependencias = fields.Char() + realizado_en_el_q = fields.Char() + notas_proximo_q = fields.Char() diff --git a/okr/models/okr_objective.py b/okr/models/okr_objective.py new file mode 100644 index 00000000..8ab07a3d --- /dev/null +++ b/okr/models/okr_objective.py @@ -0,0 +1,29 @@ +from odoo import models, api, fields +import time +from odoo.exceptions import UserError + + +class OkrObjetivo(models.Model): + _name = "okr.objective" + _description = "OKR Objective" + _rec_name = 'name' + + name = fields.Many2one('kr.ppal', required=True) + description = fields.Char(required=True) + department_id = fields.Many2one('hr.department') + progress = fields.Integer(string="Progress", compute='_compute_progress',help="Progress from zero knowledge (0%) to fully mastered (100%).", default=0) + weight = fields.Selection([('inspiracional', 'Inspiracional'), ('commitment', 'Commitment')]) + comments = fields.Char() + key_result_ids = fields.One2many('okr.key_result', 'objective') + period = fields.Selection([('q1', 'Q1'), ('q2', 'Q2'), ('q3', 'Q3'), ('q4', 'Q4')], required=True) + year = fields.Char( + required=True, + default=time.strftime('%Y'), + ) + + @api.depends('key_result_ids') + def _compute_progress(self): + sumatory = sum(self.key_result_ids.mapped('progress')) or 0 + self.progress = sumatory + if sumatory > 100: + raise UserError("The sum of the objectives progress can´t be higher than 100") diff --git a/okr/security/ir.model.access.csv b/okr/security/ir.model.access.csv index 44e007c5..5b55e12d 100644 --- a/okr/security/ir.model.access.csv +++ b/okr/security/ir.model.access.csv @@ -1,4 +1,7 @@ id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink -access_kr_ppal,access_kr_ppal,model_kr_ppal,base.group_user,1,1,1,1 -access_okr_objetivo,access_okr_objetivo,model_okr_objetivo,base.group_user,1,1,1,1 -access_okr_objetivo_line,access_okr_objetivo_line,model_okr_objetivo_line,base.group_user,1,1,1,1 +access_kr_ppal_user,access_kr_ppal_user,model_kr_ppal,group_okr_user,1,1,1,1 +access_kr_ppal_manager,access_kr_ppal_manager,model_kr_ppal,group_okr_manager,1,1,1,1 +access_okr_key_result_user,access_okr_key_result_user,model_okr_key_result,group_okr_user,1,0,0,0 +access_okr_key_result_manager,access_okr_key_result_manager,model_okr_key_result,group_okr_manager,1,1,1,1 +access_okr_objective_user,access_okr_objective_user,model_okr_objective,group_okr_user,1,0,0,0 +access_okr_objective_manager,access_okr_objective_manager,model_okr_objective,group_okr_manager,1,1,1,1 diff --git a/okr/views/kr_ppal.xml b/okr/views/kr_ppal.xml index eee20a1a..7470a3dd 100644 --- a/okr/views/kr_ppal.xml +++ b/okr/views/kr_ppal.xml @@ -6,8 +6,8 @@ kr.ppal - - + + diff --git a/okr/views/objetivo.xml b/okr/views/objetivo.xml deleted file mode 100644 index 656d5280..00000000 --- a/okr/views/objetivo.xml +++ /dev/null @@ -1,96 +0,0 @@ - - - - - Objetivo - okr.objetivo - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
- - - Objetivo - okr.objetivo - - - - - - - - - - - - - - - - - okr.objetivo.search - okr.objetivo - - - - - - - - - - Objetivo - okr.objetivo - tree,form - - {'search_default_group_by_team': True} - - - - - -
diff --git a/okr/views/objetivo_line.xml b/okr/views/objetivo_line.xml deleted file mode 100644 index f6919fc4..00000000 --- a/okr/views/objetivo_line.xml +++ /dev/null @@ -1,26 +0,0 @@ - - - - - Objetivo - okr.objetivo.line - - - - - - - - - - - - - - - - - - - - diff --git a/okr/views/okr_key_result.xml b/okr/views/okr_key_result.xml new file mode 100644 index 00000000..09cbf3f4 --- /dev/null +++ b/okr/views/okr_key_result.xml @@ -0,0 +1,26 @@ + + + + + Objetivo + okr.key_result + + + + + + + + + + + + + + + + + + + + diff --git a/okr/views/okr_objective.xml b/okr/views/okr_objective.xml new file mode 100644 index 00000000..06ea462b --- /dev/null +++ b/okr/views/okr_objective.xml @@ -0,0 +1,90 @@ + + + + + Objetivo + okr.objective + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + Objetivo + okr.objective + + + + + + + + + + + + + + + + okr.objective.search + okr.objective + + + + + + + + + Objective + okr.objective + tree,form + + + + + + +
From 6c376b05068a83a415296db0910fd982f220c2f6 Mon Sep 17 00:00:00 2001 From: Pablo Montenegro Date: Wed, 8 Nov 2023 08:25:09 -0300 Subject: [PATCH 3/6] [NUEVOS CAMBIOS] nuevos cambios --- okr/data/ir_module_category_data.xml | 19 +++++++++++++++++++ okr/models/okr_key_result.py | 2 +- okr/models/okr_objective.py | 3 ++- okr/security/ir.model.access.csv | 4 ++-- okr/views/okr_key_result.xml | 2 +- okr/views/okr_objective.xml | 9 ++++++--- 6 files changed, 31 insertions(+), 8 deletions(-) diff --git a/okr/data/ir_module_category_data.xml b/okr/data/ir_module_category_data.xml index 4a87f3c6..5e5eefb7 100644 --- a/okr/data/ir_module_category_data.xml +++ b/okr/data/ir_module_category_data.xml @@ -1,6 +1,7 @@ + OKR OKR @@ -11,6 +12,7 @@ 1 + User @@ -23,5 +25,22 @@ + + + OKR manager can modify all key results + + [(1, '=', 1)] + + diff --git a/okr/models/okr_key_result.py b/okr/models/okr_key_result.py index b244cfe6..6966e12d 100644 --- a/okr/models/okr_key_result.py +++ b/okr/models/okr_key_result.py @@ -16,6 +16,6 @@ class OkrObjetivoLine(models.Model): result = fields.Integer() user_id = fields.Many2one('res.users', string="Responsible") plan_de_accion = fields.Char() - interdependencias = fields.Char() + interdependencies = fields.Many2many('hr.objective') realizado_en_el_q = fields.Char() notas_proximo_q = fields.Char() diff --git a/okr/models/okr_objective.py b/okr/models/okr_objective.py index 8ab07a3d..d6ee98a0 100644 --- a/okr/models/okr_objective.py +++ b/okr/models/okr_objective.py @@ -11,7 +11,7 @@ class OkrObjetivo(models.Model): name = fields.Many2one('kr.ppal', required=True) description = fields.Char(required=True) department_id = fields.Many2one('hr.department') - progress = fields.Integer(string="Progress", compute='_compute_progress',help="Progress from zero knowledge (0%) to fully mastered (100%).", default=0) + progress = fields.Integer(string="Progress", compute='_compute_progress',help="Progress from zero knowledge (0%) to fully mastered (100%).", default=0, store=True) weight = fields.Selection([('inspiracional', 'Inspiracional'), ('commitment', 'Commitment')]) comments = fields.Char() key_result_ids = fields.One2many('okr.key_result', 'objective') @@ -20,6 +20,7 @@ class OkrObjetivo(models.Model): required=True, default=time.strftime('%Y'), ) + user_id = fields.Many2one('res.users', string="Responsible") @api.depends('key_result_ids') def _compute_progress(self): diff --git a/okr/security/ir.model.access.csv b/okr/security/ir.model.access.csv index 5b55e12d..d0d746cc 100644 --- a/okr/security/ir.model.access.csv +++ b/okr/security/ir.model.access.csv @@ -1,7 +1,7 @@ id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink access_kr_ppal_user,access_kr_ppal_user,model_kr_ppal,group_okr_user,1,1,1,1 access_kr_ppal_manager,access_kr_ppal_manager,model_kr_ppal,group_okr_manager,1,1,1,1 -access_okr_key_result_user,access_okr_key_result_user,model_okr_key_result,group_okr_user,1,0,0,0 +access_okr_key_result_user,access_okr_key_result_user,model_okr_key_result,group_okr_user,1,1,0,0 access_okr_key_result_manager,access_okr_key_result_manager,model_okr_key_result,group_okr_manager,1,1,1,1 -access_okr_objective_user,access_okr_objective_user,model_okr_objective,group_okr_user,1,0,0,0 +access_okr_objective_user,access_okr_objective_user,model_okr_objective,group_okr_user,1,1,0,0 access_okr_objective_manager,access_okr_objective_manager,model_okr_objective,group_okr_manager,1,1,1,1 diff --git a/okr/views/okr_key_result.xml b/okr/views/okr_key_result.xml index 09cbf3f4..1b4a1c01 100644 --- a/okr/views/okr_key_result.xml +++ b/okr/views/okr_key_result.xml @@ -16,7 +16,7 @@ - + diff --git a/okr/views/okr_objective.xml b/okr/views/okr_objective.xml index 06ea462b..8427a128 100644 --- a/okr/views/okr_objective.xml +++ b/okr/views/okr_objective.xml @@ -10,6 +10,7 @@ + @@ -27,7 +28,7 @@ - + @@ -38,7 +39,6 @@ - @@ -53,9 +53,10 @@ Objetivo okr.objective - + + @@ -72,6 +73,7 @@ + @@ -81,6 +83,7 @@ okr.objective tree,form + {'search_default_group_by_department_id': True} From 1f01828d02d48973a3b80f798bb46934ffbf3e8a Mon Sep 17 00:00:00 2001 From: Pablo Montenegro Date: Wed, 8 Nov 2023 09:22:25 -0300 Subject: [PATCH 4/6] =?UTF-8?q?[agregar=20mensajer=C3=ADa]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- okr/models/okr_objective.py | 1 + okr/views/okr_objective.xml | 81 ++++++++++++++++++++----------------- 2 files changed, 45 insertions(+), 37 deletions(-) diff --git a/okr/models/okr_objective.py b/okr/models/okr_objective.py index d6ee98a0..abde0e99 100644 --- a/okr/models/okr_objective.py +++ b/okr/models/okr_objective.py @@ -6,6 +6,7 @@ class OkrObjetivo(models.Model): _name = "okr.objective" _description = "OKR Objective" + _inherit = ['mail.thread', 'mail.activity.mixin'] _rec_name = 'name' name = fields.Many2one('kr.ppal', required=True) diff --git a/okr/views/okr_objective.xml b/okr/views/okr_objective.xml index 8427a128..ce34277e 100644 --- a/okr/views/okr_objective.xml +++ b/okr/views/okr_objective.xml @@ -6,45 +6,52 @@ okr.objective
- + - - - - - - - + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + +
+ + + +
From 4e5672f873301401d03e5a1c69ee5d819ed12178 Mon Sep 17 00:00:00 2001 From: Pablo Montenegro Date: Wed, 8 Nov 2023 09:38:38 -0300 Subject: [PATCH 5/6] agregar campo interdependencias en los key results, se puede elegir varios departamentos --- okr/models/okr_key_result.py | 3 ++- okr/models/okr_objective.py | 4 ++++ okr/views/okr_objective.xml | 7 ++++--- 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/okr/models/okr_key_result.py b/okr/models/okr_key_result.py index 6966e12d..1181bb89 100644 --- a/okr/models/okr_key_result.py +++ b/okr/models/okr_key_result.py @@ -5,6 +5,7 @@ class OkrObjetivoLine(models.Model): _name = "okr.key_result" _description = "OKR key result" + _check_company_auto = True name = fields.Char(required=True) description = fields.Char(required=True) @@ -16,6 +17,6 @@ class OkrObjetivoLine(models.Model): result = fields.Integer() user_id = fields.Many2one('res.users', string="Responsible") plan_de_accion = fields.Char() - interdependencies = fields.Many2many('hr.objective') + interdependencies = fields.Many2many('hr.department') realizado_en_el_q = fields.Char() notas_proximo_q = fields.Char() diff --git a/okr/models/okr_objective.py b/okr/models/okr_objective.py index abde0e99..5c96089b 100644 --- a/okr/models/okr_objective.py +++ b/okr/models/okr_objective.py @@ -7,6 +7,7 @@ class OkrObjetivo(models.Model): _name = "okr.objective" _description = "OKR Objective" _inherit = ['mail.thread', 'mail.activity.mixin'] + _check_company_auto = True _rec_name = 'name' name = fields.Many2one('kr.ppal', required=True) @@ -22,6 +23,9 @@ class OkrObjetivo(models.Model): default=time.strftime('%Y'), ) user_id = fields.Many2one('res.users', string="Responsible") + company_id = fields.Many2one( + 'res.company', default=lambda self: self.env.company, + help="Company for whose invoices the mandate can be used.") @api.depends('key_result_ids') def _compute_progress(self): diff --git a/okr/views/okr_objective.xml b/okr/views/okr_objective.xml index ce34277e..fc33904b 100644 --- a/okr/views/okr_objective.xml +++ b/okr/views/okr_objective.xml @@ -20,15 +20,14 @@ +
- + @@ -42,6 +41,7 @@ + @@ -70,6 +70,7 @@ + From 830679efd8850e2b030d8aa4db3e9c5725d32f0c Mon Sep 17 00:00:00 2001 From: Pablo Montenegro Date: Thu, 11 Jan 2024 11:38:28 -0300 Subject: [PATCH 6/6] [MIG] okr: Migration to 17.0 --- okr/__manifest__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/okr/__manifest__.py b/okr/__manifest__.py index 80576644..786f89ee 100644 --- a/okr/__manifest__.py +++ b/okr/__manifest__.py @@ -1,6 +1,6 @@ { 'name': "OKR", -'version': '16.0.1.0.0', +'version': "17.0.1.0.0", 'category': 'OKR', 'summary': "Gestión de OKR", 'license': 'LGPL-3',