Tower: upload havari_license_client 16.0.1.0.0 (was 16.0.1.0.0, via marketplace)

This commit is contained in:
2026-05-19 11:43:17 +00:00
parent 1f83918b72
commit 7726948957
22 changed files with 282 additions and 0 deletions

View File

@@ -0,0 +1,95 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<!-- License Product Tree View -->
<record id="view_license_product_tree" model="ir.ui.view">
<field name="name">license.product.tree</field>
<field name="model">license.product</field>
<field name="arch" type="xml">
<tree string="Licensed Modules" create="false" edit="false" delete="false"
decoration-success="state == 'active'"
decoration-info="state == 'trial'"
decoration-warning="state in ('grace_period', 'pending')"
decoration-danger="state in ('expired', 'suspended', 'revoked')">
<field name="display_name"/>
<field name="technical_name"/>
<field name="state" widget="badge"
decoration-success="state == 'active'"
decoration-info="state == 'trial'"
decoration-warning="state in ('grace_period', 'pending')"
decoration-danger="state in ('expired', 'suspended', 'revoked')"/>
<field name="expires"/>
<field name="days_remaining"/>
<field name="last_check"/>
<button name="action_check_license" type="object" string="Check" icon="fa-refresh" class="btn-link"/>
</tree>
</field>
</record>
<!-- License Product Form View - Read Only (Client Safe) -->
<record id="view_license_product_form" model="ir.ui.view">
<field name="name">license.product.form</field>
<field name="model">license.product</field>
<field name="arch" type="xml">
<form string="License Details" create="false" edit="false" delete="false">
<header>
<button name="action_check_license" type="object" string="Check License" class="btn-primary"/>
<field name="state" widget="statusbar" statusbar_visible="pending,trial,active,expired"/>
</header>
<sheet>
<div class="oe_title">
<h1>
<field name="display_name" readonly="1"/>
</h1>
</div>
<group>
<group string="License Status">
<field name="expires" readonly="1" string="Expiry Date"/>
<field name="days_remaining" readonly="1"/>
<field name="message" readonly="1" string="Status"/>
</group>
<group string="Support">
<field name="purchase_url" widget="url" readonly="1" string="Renew License"/>
<field name="contact_url" widget="url" readonly="1" string="Contact Support"/>
</group>
</group>
<!-- Hidden sensitive fields -->
<group invisible="1">
<field name="technical_name"/>
<field name="name"/>
<field name="license_key"/>
<field name="fingerprint"/>
<field name="last_check"/>
<field name="last_successful_check"/>
<field name="allow_offline"/>
<field name="offline_days"/>
<field name="force_online"/>
<field name="in_grace_period"/>
<field name="grace_period_days_remaining"/>
</group>
</sheet>
</form>
</field>
</record>
<!-- License Product Action -->
<record id="action_license_product" model="ir.actions.act_window">
<field name="name">Licensed Modules</field>
<field name="res_model">license.product</field>
<field name="view_mode">tree,form</field>
<field name="help" type="html">
<p class="o_view_nocontent_smiling_face">
No licensed modules installed yet
</p>
<p>
Licensed modules will appear here automatically when installed.
</p>
</field>
</record>
<!-- Menu Item (under Settings) -->
<menuitem id="menu_license_product"
name="Licensed Modules"
parent="base.menu_administration"
action="action_license_product"
sequence="100"/>
</odoo>

View File

@@ -0,0 +1,31 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<!-- Add License section to General Settings -->
<record id="res_config_settings_view_form_license" model="ir.ui.view">
<field name="name">res.config.settings.view.form.inherit.license</field>
<field name="model">res.config.settings</field>
<field name="inherit_id" ref="base.res_config_settings_view_form"/>
<field name="priority">100</field>
<field name="arch" type="xml">
<xpath expr="//form" position="inside">
<app data-string="Licenses" string="Licenses" name="havari_license_client" groups="base.group_system">
<block title="Licensed Modules" name="license_block">
<setting string="Module Licenses" help="View and manage licenses for installed modules">
<div class="content-group">
<div class="mt16">
<field name="license_products_summary" readonly="1" nolabel="1"/>
</div>
<div class="mt16">
<button name="action_check_all_licenses" type="object"
string="Check All Licenses" class="btn-secondary" icon="fa-refresh"/>
<button name="action_view_licenses" type="object"
string="View All Licenses" class="btn-link" icon="fa-list"/>
</div>
</div>
</setting>
</block>
</app>
</xpath>
</field>
</record>
</odoo>