You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
106 lines
5.3 KiB
106 lines
5.3 KiB
<?xml version="1.0" encoding="utf-8"?>
|
|
<odoo>
|
|
<!--This is an XML view definition for a form view in Odoo, which allows users to create and manage dynamic fields for a model. -->
|
|
<record id="crm_dynamic_fields_view_form" model="ir.ui.view">
|
|
<field name="name">crm.dynamic.fields.view.form</field>
|
|
<field name="model">crm.dynamic.fields</field>
|
|
<field name="arch" type="xml">
|
|
<form string="Dynamic Fields">
|
|
<sheet>
|
|
<group>
|
|
<group string="Field Info">
|
|
<field name="name"/>
|
|
<field name="field_description"/>
|
|
<field name="state" readonly="1"
|
|
groups="base.group_no_one"/>
|
|
<field name="model_id" options="{'no_open': True,
|
|
'no_create': True}"/>
|
|
<field name="field_type"/>
|
|
<field name="selection_field"
|
|
placeholder="[('blue', 'Blue'),
|
|
('yellow', 'Yellow')]"
|
|
required="field_type in ['selection','reference']"
|
|
readonly="field_type not in ['selection','reference']"
|
|
invisible="field_type not in ['selection','reference']"/>
|
|
<field name="ref_model_id"
|
|
options="{'no_open': True, 'no_create': True}"
|
|
required="required in ['many2one','many2many']"
|
|
readonly="field_type not in ['many2one','many2many']"
|
|
invisible="field_type not in ['many2one','many2many']"
|
|
/>
|
|
<field name="widget_id" widget="selection"
|
|
invisible="field_type not in ['binary', 'many2many', 'selection', 'float', 'many2one']"
|
|
/>
|
|
<field name="required"/>
|
|
<field name="is_translate"/>
|
|
</group>
|
|
<group string="Position">
|
|
<field name="position_field_id"
|
|
options="{'no_open': True, 'no_create': True}"/>
|
|
<field name="position"/>
|
|
</group>
|
|
</group>
|
|
<group string="Extra Properties">
|
|
<group>
|
|
<field name="extra_features"/>
|
|
</group>
|
|
<group invisible=" not extra_features">
|
|
<field name="help"/>
|
|
</group>
|
|
<group invisible=" not extra_features">
|
|
<field name="readonly"/>
|
|
<field name="store"/>
|
|
<field name="index"/>
|
|
<field name="copied"/>
|
|
</group>
|
|
</group>
|
|
</sheet>
|
|
<footer>
|
|
<button name="action_create_fields" string="Create"
|
|
type="object" class="oe_highlight"/>
|
|
<button string="Cancel" class="oe_link" special="cancel"/>
|
|
</footer>
|
|
</form>
|
|
</field>
|
|
</record>
|
|
<!--This XML record defines an action to open a form view for creating custom fields in the crm.dynamic.fields model-->
|
|
<record id="crm_dynamic_fields_create_action"
|
|
model="ir.actions.act_window">
|
|
<field name="name">Create Custom Fields</field>
|
|
<field name="res_model">crm.dynamic.fields</field>
|
|
<field name="view_mode">form</field>
|
|
<field name="view_id" ref="crm_dynamic_fields_view_form"/>
|
|
<field name="target">new</field>
|
|
</record>
|
|
<!--tree view-->
|
|
<record id="crm_dynamic_fields_view_tree" model="ir.ui.view">
|
|
<field name="name">crm.dynamic.fields.view.tree</field>
|
|
<field name="model">crm.dynamic.fields</field>
|
|
<field name="arch" type="xml">
|
|
<list create="false">
|
|
<field name="name"/>
|
|
<field name="field_description"/>
|
|
<field name="ttype"/>
|
|
</list>
|
|
</field>
|
|
</record>
|
|
<!-- Delete fields tree view -->
|
|
<record id="crm_dynamic_fields_delete_action"
|
|
model="ir.actions.act_window">
|
|
<field name="name">Delete Custom Fields</field>
|
|
<field name="res_model">crm.dynamic.fields</field>
|
|
<field name="view_mode">list</field>
|
|
<field name="view_id" ref="crm_dynamic_fields_view_tree"/>
|
|
<field name="help" type="html">
|
|
<p class="o_view_nocontent_smiling_face">Delete created custom
|
|
fields
|
|
</p>
|
|
</field>
|
|
</record>
|
|
<!-- Menu Item in Project to Delete fields -->
|
|
<menuitem id="crm_dynamic_fields_menu_delete" name="Delete Fields"
|
|
parent="crm.crm_menu_config"
|
|
action="crm_dynamic_fields.crm_dynamic_fields_delete_action"
|
|
groups="crm_dynamic_fields.group_add_crm_dynamic_fields"
|
|
sequence="12"/>
|
|
</odoo>
|
|
|