Initial commit: Odoo 18.0-20251222 extra-addons
This commit is contained in:
63
tracking_manager/views/ir_model.xml
Executable file
63
tracking_manager/views/ir_model.xml
Executable file
@@ -0,0 +1,63 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!-- Copyright (C) 2022 Akretion (<http://www.akretion.com>).
|
||||
@author Kévin Roche <kevin.roche@akretion.com>
|
||||
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). -->
|
||||
<odoo>
|
||||
<record id="view_model_form" model="ir.ui.view">
|
||||
<field name="name">tracking.ir.model form</field>
|
||||
<field name="model">ir.model</field>
|
||||
<field name="inherit_id" ref="base.view_model_form" />
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="//sheet/group[1]" position="after">
|
||||
<group string="Custom Tracking">
|
||||
<group>
|
||||
<field name="active_custom_tracking" string="Active" />
|
||||
<field
|
||||
name="automatic_custom_tracking"
|
||||
string="Automatic configuration"
|
||||
invisible="not active_custom_tracking"
|
||||
/>
|
||||
<field
|
||||
name="automatic_custom_tracking_domain"
|
||||
invisible="not automatic_custom_tracking"
|
||||
required="automatic_custom_tracking"
|
||||
widget="domain"
|
||||
options="{'model': 'ir.model.fields', 'in_dialog': True, 'foldable': True}"
|
||||
/>
|
||||
<label
|
||||
for="update_custom_tracking"
|
||||
string="Update fields configuration"
|
||||
invisible="not automatic_custom_tracking"
|
||||
/>
|
||||
<button
|
||||
name="update_custom_tracking"
|
||||
string="Update"
|
||||
icon="fa-refresh"
|
||||
type="object"
|
||||
class="btn-secondary"
|
||||
invisible="not automatic_custom_tracking"
|
||||
/>
|
||||
</group>
|
||||
</group>
|
||||
</xpath>
|
||||
|
||||
<xpath expr="//sheet/group[1]" position="before">
|
||||
<div class="oe_button_box" name="button_box">
|
||||
<button
|
||||
name="%(ir_model_fields_action)d"
|
||||
type="action"
|
||||
class="oe_stat_button"
|
||||
icon="fa-server"
|
||||
invisible="not active_custom_tracking"
|
||||
>
|
||||
<field
|
||||
name="tracked_field_count"
|
||||
widget="statinfo"
|
||||
string="Tracked Fields"
|
||||
/>
|
||||
</button>
|
||||
</div>
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
</odoo>
|
||||
57
tracking_manager/views/ir_model_fields.xml
Executable file
57
tracking_manager/views/ir_model_fields.xml
Executable file
@@ -0,0 +1,57 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!-- Copyright (C) 2022 Akretion (<http://www.akretion.com>).
|
||||
@author Kévin Roche <kevin.roche@akretion.com>
|
||||
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). -->
|
||||
<odoo>
|
||||
<record model="ir.actions.act_window" id="ir_model_fields_action">
|
||||
<field name="name">Trackable Fields</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="res_model">ir.model.fields</field>
|
||||
<field name="view_mode">list,form</field>
|
||||
<field
|
||||
name="domain"
|
||||
>[("trackable", "=", True), ("model_id", "=", context['active_id']), ("ttype", "!=", "binary")]</field>
|
||||
<field name="context">{}</field>
|
||||
<field name="target">current</field>
|
||||
</record>
|
||||
|
||||
<record id="ir_model_fields_view_tree_custom_tracking" model="ir.ui.view">
|
||||
<field name="model">ir.model.fields</field>
|
||||
<field name="arch" type="xml">
|
||||
<list editable="bottom" create="0" delete="0" duplicate="0">
|
||||
<field name="name" readonly="True" />
|
||||
<field name="field_description" readonly="True" />
|
||||
<field name="ttype" readonly="True" />
|
||||
<field name="native_tracking" readonly="True" />
|
||||
<field name="custom_tracking" widget="boolean_toggle" />
|
||||
</list>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="ir_model_fields_action_view" model="ir.actions.act_window.view">
|
||||
<field name="sequence" eval="2" />
|
||||
<field name="view_mode">list</field>
|
||||
<field name="view_id" ref="ir_model_fields_view_tree_custom_tracking" />
|
||||
<field name="act_window_id" ref="ir_model_fields_action" />
|
||||
</record>
|
||||
|
||||
<record id="view_model_track_fields_search" model="ir.ui.view">
|
||||
<field name="name">ir.model.fields.search</field>
|
||||
<field name="model">ir.model.fields</field>
|
||||
<field name="inherit_id" ref="base.view_model_fields_search" />
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="//filter[@name='translate']" position="after">
|
||||
<filter
|
||||
name="tracking_on"
|
||||
string="Custom Tracking ON"
|
||||
domain="[('custom_tracking','=', True)]"
|
||||
/>
|
||||
<filter
|
||||
name="tracking_off"
|
||||
string="Custom Tracking OFF"
|
||||
domain="[('custom_tracking','=', False)]"
|
||||
/>
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
</odoo>
|
||||
52
tracking_manager/views/message_template.xml
Executable file
52
tracking_manager/views/message_template.xml
Executable file
@@ -0,0 +1,52 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!-- Copyright (C) 2022 Akretion (<http://www.akretion.com>).
|
||||
@author Kévin Roche <kevin.roche@akretion.com>
|
||||
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). -->
|
||||
<odoo>
|
||||
<template id="track_o2m_m2m_template">
|
||||
<div>
|
||||
<ul>
|
||||
<t t-foreach="lines" t-as="line">
|
||||
<li>
|
||||
<b>
|
||||
<t t-esc="line.get('name')" />: </b>
|
||||
<br />
|
||||
<t t-foreach="line.get('messages')" t-as="message">
|
||||
<ul>
|
||||
<t t-if="message.get('mode', False) == 'create'">
|
||||
<b>New :</b>
|
||||
</t>
|
||||
<t t-if="message.get('mode', False) == 'unlink'">
|
||||
<b>Delete :</b>
|
||||
</t>
|
||||
<t t-if="message.get('mode', False) == 'update'">
|
||||
<b>Change :</b>
|
||||
</t>
|
||||
<t t-esc="message.get('record')" />
|
||||
<t t-if="message.get('mode', False) == 'update'">
|
||||
<ul>
|
||||
<t
|
||||
t-foreach="message.get('changes')"
|
||||
t-as="change"
|
||||
>
|
||||
<li>
|
||||
<t t-esc="change.get('name')" /> :
|
||||
<t t-esc="change.get('old')" />
|
||||
<div
|
||||
class="o_Message_trackingValueSeparator o_Message_trackingValueItem fa fa-long-arrow-right"
|
||||
title="Changed"
|
||||
role="img"
|
||||
/>
|
||||
<t t-esc="change.get('new')" />
|
||||
</li>
|
||||
</t>
|
||||
</ul>
|
||||
</t>
|
||||
</ul>
|
||||
</t>
|
||||
</li>
|
||||
</t>
|
||||
</ul>
|
||||
</div>
|
||||
</template>
|
||||
</odoo>
|
||||
Reference in New Issue
Block a user