Skip to content

Commit 11e3808

Browse files
committed
[IMP] vcp_management: add link from vcp.request to vcp.review
1 parent 01182fa commit 11e3808

3 files changed

Lines changed: 37 additions & 1 deletion

File tree

vcp_management/models/vcp_request.py

Lines changed: 13 additions & 1 deletion
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
4+
from odoo import api, fields, models
55

66

77
class VcpRequest(models.Model):
@@ -41,6 +41,13 @@ class VcpRequest(models.Model):
4141
related="organization_id.partner_id",
4242
string="Organization Partner",
4343
)
44+
review_ids = fields.One2many(
45+
comodel_name="vcp.review",
46+
string="Reviews",
47+
readonly=True,
48+
inverse_name="request_id",
49+
)
50+
review_count = fields.Integer(compute="_compute_review_count", store=True)
4451
url = fields.Char(readonly=True)
4552
state = fields.Char(readonly=True)
4653
is_merged = fields.Boolean(readonly=True)
@@ -62,3 +69,8 @@ class VcpRequest(models.Model):
6269
_sql_constraints = [
6370
("external_id_uniq", "unique(external_id)", "External ID must be unique.")
6471
]
72+
73+
@api.depends("review_ids")
74+
def _compute_review_count(self):
75+
for record in self:
76+
record.review_count = len(record.review_ids)

vcp_management/models/vcp_review.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,8 @@ class VcpReview(models.Model):
2929
request_id = fields.Many2one(
3030
"vcp.request",
3131
readonly=True,
32+
required=True,
33+
ondelete="cascade",
3234
)
3335
organization_id = fields.Many2one(
3436
related="request_id.organization_id",

vcp_management/views/vcp_request.xml

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,33 @@
22
<!-- Copyright 2026 Dixmit
33
License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). -->
44
<odoo>
5+
<record model="ir.actions.act_window" id="vcp_request_2_review_act_window">
6+
<field name="name">Reviews</field>
7+
<field name="res_model">vcp.review</field>
8+
<field name="view_mode">list,form</field>
9+
<field name="domain">[("request_id", "=", active_id)]</field>
10+
</record>
11+
512
<record model="ir.ui.view" id="vcp_request_form_view">
613
<field name="model">vcp.request</field>
714
<field name="arch" type="xml">
815
<form>
916
<header />
1017
<sheet>
18+
<div name="button_box" class="oe_button_box">
19+
<button
20+
class="oe_stat_button"
21+
icon="fa-eye"
22+
type="action"
23+
name="%(vcp_request_2_review_act_window)d"
24+
>
25+
<field
26+
name="review_count"
27+
string="Reviews"
28+
widget="statinfo"
29+
/>
30+
</button>
31+
</div>
1132
<widget
1233
name="web_ribbon"
1334
title="Merged"
@@ -61,6 +82,7 @@
6182
<field name="number" />
6283
<field name="name" />
6384
<field name="url" widget="url" />
85+
<field name="review_count" optional="hide" />
6486
</list>
6587
</field>
6688
</record>

0 commit comments

Comments
 (0)