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

View File

@@ -20,6 +20,13 @@
</field> </field>
</record> </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"> <record id="view_vps_server_tree" model="ir.ui.view">
<field name="name">vps.server.tree</field> <field name="name">vps.server.tree</field>
<field name="model">vps.server</field> <field name="model">vps.server</field>