diff --git a/addons/project/models/project.py b/addons/project/models/project.py index 02cf6c2beed..009cdf542eb 100644 --- a/addons/project/models/project.py +++ b/addons/project/models/project.py @@ -663,7 +663,7 @@ class Project(models.Model): def _get_user_values(self): return { - 'is_project_manager': self.user_has_groups('project.group_project_manager'), + 'is_project_user': self.user_has_groups('project.group_project_user'), } def _get_tasks_analysis(self): diff --git a/addons/project/models/project_update.py b/addons/project/models/project_update.py index 9ccfd24bb82..886a96d89d8 100644 --- a/addons/project/models/project_update.py +++ b/addons/project/models/project_update.py @@ -8,9 +8,9 @@ from werkzeug.urls import url_encode from odoo import api, fields, models STATUS_COLOR = { - 'on_track': 10, # green + 'on_track': 20, # green / success 'at_risk': 2, # orange - 'off_track': 1, # red + 'off_track': 23, # red / danger 'on_hold': 4, # light blue } @@ -71,7 +71,7 @@ class ProjectUpdate(models.Model): @api.model def create(self, vals): update = super().create(vals) - update.project_id.last_update_id = update + update.project_id.sudo().last_update_id = update return update # --------------------------------- diff --git a/addons/project/security/ir.model.access.csv b/addons/project/security/ir.model.access.csv index 2a121607701..c2ed253e6f6 100644 --- a/addons/project/security/ir.model.access.csv +++ b/addons/project/security/ir.model.access.csv @@ -30,7 +30,7 @@ access_project_task_recurrence,project.task.recurrence,model_project_task_recurr project.access_project_task_burndown_chart_report,access_project_task_burndown_chart_report,project.model_project_task_burndown_chart_report,project.group_project_manager,1,1,1,1 access_project_update_user,project.update.user,model_project_update,base.group_user,1,0,0,0 access_project_update_portal,project.update.portal,model_project_update,base.group_portal,1,0,0,0 -access_project_update_project_user,project.update.project.user,model_project_update,project.group_project_user,1,0,0,0 +access_project_update_project_user,project.update.project.user,model_project_update,project.group_project_user,1,1,1,1 access_project_update_project_manager,project.update.project.manager,model_project_update,project.group_project_manager,1,1,1,1 access_project_milestone_user,project.milestone.user,model_project_milestone,base.group_user,1,0,0,0 access_project_milestone_portal,project.milestone.portal,model_project_milestone,base.group_portal,1,0,0,0 diff --git a/addons/project/static/src/js/project_control_panel.js b/addons/project/static/src/js/project_control_panel.js index 04b2afe384b..7107bae4dab 100644 --- a/addons/project/static/src/js/project_control_panel.js +++ b/addons/project/static/src/js/project_control_panel.js @@ -32,7 +32,7 @@ export class ProjectControlPanel extends ControlPanel { method: 'get_last_update_or_default', args: [this.project_id], }); - this.is_project_manager = await session.user_has_group('project.group_project_manager'); + this.is_project_user = await session.user_has_group('project.group_project_user'); } } diff --git a/addons/project/static/src/scss/project_widgets.scss b/addons/project/static/src/scss/project_widgets.scss index db6e353e636..ba9e0666971 100644 --- a/addons/project/static/src/scss/project_widgets.scss +++ b/addons/project/static/src/scss/project_widgets.scss @@ -7,6 +7,19 @@ background-color: nth($o-colors, $size); } } + + &.o_color_bubble_20 { + background-color: $o-success; + } + &.o_color_bubble_21 { + background-color: $o-info; + } + &.o_color_bubble_22 { + background-color: $o-warning; + } + &.o_color_bubble_23 { + background-color: $o-danger; + } } .o_status_with_color { diff --git a/addons/project/static/src/xml/project_templates.xml b/addons/project/static/src/xml/project_templates.xml index 211e6bb11f1..5a43c2f4b6a 100644 --- a/addons/project/static/src/xml/project_templates.xml +++ b/addons/project/static/src/xml/project_templates.xml @@ -24,7 +24,7 @@ - + @@ -32,7 +32,7 @@ -
  • +
  • @@ -59,7 +59,7 @@
    - diff --git a/addons/project/tests/test_project_update_access_rights.py b/addons/project/tests/test_project_update_access_rights.py index 59ef64edb67..747ea83c3ab 100644 --- a/addons/project/tests/test_project_update_access_rights.py +++ b/addons/project/tests/test_project_update_access_rights.py @@ -25,7 +25,7 @@ class TestProjectUpdateAccessRights(TestProjectCommon): def test_project_update_user_can_read(self): self.project_update_1.with_user(self.env.user).name - @users('Project user', 'Base user') + @users('Base user') def test_project_update_user_no_write(self): with self.assertRaises(AccessError, msg="%s should not be able to write in the project update" % self.env.user.name): self.project_update_1.with_user(self.env.user).name = "Test write" @@ -34,13 +34,7 @@ class TestProjectUpdateAccessRights(TestProjectCommon): def test_project_update_admin_can_write(self): self.project_update_1.with_user(self.env.user).name = "Test write" - @users('Project user') - def test_project_update_user_project_owner_cannot_write(self): - self.project_pigs.user_id = self.env.user - with self.assertRaises(AccessError, msg="%s, who owns the project, should not be able to write in the project update" % self.env.user.name): - self.project_update_1.with_user(self.env.user).name = "Test write" - - @users('Project user', 'Base user') + @users('Base user') def test_project_update_user_no_unlink(self): with self.assertRaises(AccessError, msg="%s should not be able to unlink in the project update" % self.env.user.name): self.project_update_1.with_user(self.env.user).unlink() @@ -48,9 +42,3 @@ class TestProjectUpdateAccessRights(TestProjectCommon): @users('Project admin') def test_project_update_admin_unlink(self): self.project_update_1.with_user(self.env.user).unlink() - - @users('Project user') - def test_project_update_user_project_owner_no_unlink(self): - self.project_pigs.user_id = self.env.user - with self.assertRaises(AccessError, msg="%s should not be able to unlink the project update even if project owner" % self.env.user.name): - self.project_update_1.with_user(self.env.user).unlink() diff --git a/addons/sale_timesheet/static/src/xml/sale_project_templates.xml b/addons/sale_timesheet/static/src/xml/sale_project_templates.xml index cd5bcea78e1..0fb9091fd02 100644 --- a/addons/sale_timesheet/static/src/xml/sale_project_templates.xml +++ b/addons/sale_timesheet/static/src/xml/sale_project_templates.xml @@ -12,7 +12,7 @@ - +