Skip to content

Commit 01182fa

Browse files
committed
[IMP] vcp_management: Add a menu entry for the vcp.request.label model. Also fetch 'color' field, and allow to change the color
1 parent 7abefa1 commit 01182fa

9 files changed

Lines changed: 83 additions & 19 deletions

File tree

vcp_github/models/vcp_repository.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,9 @@ def _parse_github_pr(self, pr, client):
9898
"label_ids": [fields.Command.clear()]
9999
+ [
100100
fields.Command.link(
101-
self.env["vcp.request.label"]._get_label(label["name"])
101+
self.env["vcp.request.label"]._get_label(
102+
label["name"], label["color"]
103+
)
102104
)
103105
for label in origin_data["labels"]
104106
],

vcp_github/tests/test_github.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ def test_update_repository(self):
104104
"html_url": "https://github.com/oca/server-tools/pull/1",
105105
"state": "closed",
106106
"title": "Fix issue",
107-
"labels": [{"name": "merged 🎉"}],
107+
"labels": [{"name": "merged 🎉", "color": "FFAABB"}],
108108
"created_at": "2023-01-01T00:00:00Z",
109109
"updated_at": "2023-01-03T00:00:00Z",
110110
"closed_at": "2023-01-02T00:00:00Z",

vcp_management/__manifest__.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
"views/vcp_comment.xml",
1818
"views/vcp_review.xml",
1919
"views/vcp_request.xml",
20+
"views/vcp_request_label.xml",
2021
"views/vcp_repository.xml",
2122
"views/vcp_branch.xml",
2223
"views/vcp_platform.xml",

vcp_management/models/__init__.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
from . import vcp_repository
88
from . import vcp_repository_branch
99
from . import vcp_request
10+
from . import vcp_request_label
1011
from . import vcp_review
1112
from . import vcp_comment
1213
from . import res_partner

vcp_management/models/vcp_request.py

Lines changed: 1 addition & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# Copyright 2026 Dixmit
22
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
33

4-
from odoo import fields, models, tools
4+
from odoo import fields, models
55

66

77
class VcpRequest(models.Model):
@@ -62,19 +62,3 @@ class VcpRequest(models.Model):
6262
_sql_constraints = [
6363
("external_id_uniq", "unique(external_id)", "External ID must be unique.")
6464
]
65-
66-
67-
class VcpRequestLabel(models.Model):
68-
_name = "vcp.request.label"
69-
_description = "Vcp Request Label"
70-
71-
name = fields.Char(required=True)
72-
73-
_sql_constraints = [("name_uniq", "unique(name)", "Label name must be unique.")]
74-
75-
@tools.ormcache("name")
76-
def _get_label(self, name):
77-
label = self.search([("name", "=", name)], limit=1)
78-
if not label:
79-
label = self.sudo().create({"name": name})
80-
return label.id
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
# Copyright 2026 Dixmit
2+
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
3+
4+
from odoo import fields, models, tools
5+
6+
7+
class VcpRequestLabel(models.Model):
8+
_name = "vcp.request.label"
9+
_description = "Vcp Request Label"
10+
11+
name = fields.Char(required=True, readonly=True)
12+
13+
color = fields.Char()
14+
15+
_sql_constraints = [("name_uniq", "unique(name)", "Label name must be unique.")]
16+
17+
@tools.ormcache("name")
18+
def _get_label(self, name, color):
19+
label = self.search([("name", "=", name)], limit=1)
20+
if not label:
21+
label = self.sudo().create({"name": name, "color": f"#{color}"})
22+
return label.id

vcp_management/security/ir.model.access.csv

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ access_rule_information,Access Repository Branch Rule information,model_vcp_rule
1212
manage_rule_information,Access Repository Branch Rule information,model_vcp_rule_information,group_vcp_manager,1,1,1,1
1313
access_request,Access Pull Requests,model_vcp_request,group_vcp_user,1,0,0,0
1414
access_request_label,Access Pull Requests Labels,model_vcp_request_label,group_vcp_user,1,0,0,0
15+
manage_request_label,Access Pull Requests Labels,model_vcp_request_label,group_vcp_manager,1,1,1,1
1516
access_review,Access Reviews,model_vcp_review,group_vcp_user,1,0,0,0
1617
access_comment,Access Comments,model_vcp_comment,group_vcp_user,1,0,0,0
1718
access_vcp_host_type,Access Host Type,model_vcp_host_type,group_vcp_user,1,0,0,0

vcp_management/views/menu.xml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,12 @@
4848
action="vcp_review_act_window"
4949
sequence="50"
5050
/>
51+
<menuitem
52+
id="vcp_request_label_menu"
53+
name="Request Labels"
54+
action="vcp_request_label_act_window"
55+
sequence="100"
56+
/>
5157
</menuitem>
5258

5359
<menuitem id="vcp_settings_menu" name="Settings" sequence="80">
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
<?xml version="1.0" encoding="utf-8" ?>
2+
<!-- Copyright 2026 Dixmit
3+
License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). -->
4+
<odoo>
5+
<record model="ir.ui.view" id="vcp_request_label_form_view">
6+
<field name="model">vcp.request.label</field>
7+
<field name="arch" type="xml">
8+
<form>
9+
<header />
10+
<sheet>
11+
<group>
12+
<field name="name" />
13+
<field name="color" widget="color" />
14+
</group>
15+
</sheet>
16+
</form>
17+
</field>
18+
</record>
19+
20+
<record model="ir.ui.view" id="vcp_request_label_search_view">
21+
<field name="model">vcp.request.label</field>
22+
<field name="arch" type="xml">
23+
<search>
24+
<field name="name" />
25+
</search>
26+
</field>
27+
</record>
28+
29+
<record model="ir.ui.view" id="vcp_request_label_tree_view">
30+
<field name="model">vcp.request.label</field>
31+
<field name="arch" type="xml">
32+
<list>
33+
<field name="name" />
34+
<field name="color" widget="color" />
35+
</list>
36+
</field>
37+
</record>
38+
39+
<record model="ir.actions.act_window" id="vcp_request_label_act_window">
40+
<field name="name">Request Labels</field>
41+
<field name="res_model">vcp.request.label</field>
42+
<field name="path">vcp-request-label</field>
43+
<field name="view_mode">list,form</field>
44+
<field name="domain">[]</field>
45+
<field name="context">{}</field>
46+
</record>
47+
</odoo>

0 commit comments

Comments
 (0)