Move vps notebook to smartbutton

This commit is contained in:
Mario
2024-08-04 01:36:22 +02:00
parent 04d1057a8a
commit 19c80e2b2e
4 changed files with 31 additions and 17 deletions

View File

@@ -1,6 +1,19 @@
from odoo import models, fields
from odoo import models, fields, api
class ResPartner(models.Model):
_inherit = 'res.partner'
vps_server_ids = fields.One2many('vps.server', 'customer_id', string='VPS Servers')
vps_server_ids = fields.One2many('vps.server', 'customer_id', string='VPS Servers')
vps_server_count = fields.Integer(string='VPS Server Count', compute='_compute_vps_server_count')
@api.depends('vps_server_ids')
def _compute_vps_server_count(self):
for partner in self:
partner.vps_server_count = len(partner.vps_server_ids)
def action_view_vps_servers(self):
self.ensure_one()
action = self.env.ref('ow_vm_management.action_vps_server').read()[0]
action['domain'] = [('customer_id', '=', self.id)]
action['context'] = {'default_customer_id': self.id}
return action

View File

@@ -5,21 +5,15 @@
<field name="model">res.partner</field>
<field name="inherit_id" ref="base.view_partner_form"/>
<field name="arch" type="xml">
<xpath expr="//notebook" position="inside">
<page string="VPS Servers" attrs="{'invisible': [('is_company', '=', False)]}">
<field name="is_company" invisible="1"/>
<field name="vps_server_ids" readonly="1">
<tree>
<field name="name"/>
<field name="ip_address"/>
<field name="cpu"/>
<field name="ram"/>
<field name="storage"/>
<field name="os"/>
</tree>
</field>
</page>
</xpath>
<!-- Remove the notebook page if it exists -->
<!-- <xpath expr="//page[@name='vps_servers']" position="replace"/> -->
<!-- Add the smart button -->
<div name="button_box" position="inside">
<button name="action_view_vps_servers" type="object" class="oe_stat_button" icon="fa-server" attrs="{'invisible': [('vps_server_count', '=', 0)]}">
<field name="vps_server_count" widget="statinfo" string="VPS Servers"/>
</button>
</div>
</field>
</record>
</odoo>

View File

@@ -20,6 +20,13 @@
</field>
</record>
<record id="action_vps_server" model="ir.actions.act_window">
<field name="name">VPS Servers</field>
<field name="res_model">vps.server</field>
<field name="view_mode">tree,form</field>
<field name="context">{'search_default_customer_id': active_id}</field>
</record>
<record id="view_vps_server_tree" model="ir.ui.view">
<field name="name">vps.server.tree</field>
<field name="model">vps.server</field>