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.
		
		
		
		
		
			
		
			
				
					
					
						
							112 lines
						
					
					
						
							5.8 KiB
						
					
					
				
			
		
		
		
			
			
			
		
		
	
	
							112 lines
						
					
					
						
							5.8 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='project_dynamic_fields_view_form' model='ir.ui.view'>
							 | 
						|
								        <field name="name">project.dynamic.fields.view.form</field>
							 | 
						|
								        <field name="model">project.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="field_type 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"/>
							 | 
						|
								                        </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="extra_features == False">
							 | 
						|
								                            <field name="help"/>
							 | 
						|
								                        </group>
							 | 
						|
								                        <group invisible="extra_features == False">
							 | 
						|
								                            <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 project.dynamic.fields model-->
							 | 
						|
								    <record id='project_dynamic_fields_action_create'
							 | 
						|
								            model='ir.actions.act_window'>
							 | 
						|
								        <field name="name">Create Custom Fields</field>
							 | 
						|
								        <field name="res_model">project.dynamic.fields</field>
							 | 
						|
								        <field name="view_mode">form</field>
							 | 
						|
								        <field name="view_id" ref="project_dynamic_fields_view_form"/>
							 | 
						|
								        <field name="target">new</field>
							 | 
						|
								    </record>
							 | 
						|
								    <!--    This is an XML record defining a view for the "project.dynamic.fields" model. The view is a tree view and displays three fields: "name", "field_description", and "ttype". -->
							 | 
						|
								    <record id='project_dynamic_fields_view_tree' model='ir.ui.view'>
							 | 
						|
								        <field name="name">project.dynamic.fields.view.tree</field>
							 | 
						|
								        <field name="model">project.dynamic.fields</field>
							 | 
						|
								        <field name="arch" type="xml">
							 | 
						|
								            <tree create="false">
							 | 
						|
								                <field name="name"/>
							 | 
						|
								                <field name="field_description"/>
							 | 
						|
								                <field name="ttype"/>
							 | 
						|
								            </tree>
							 | 
						|
								        </field>
							 | 
						|
								    </record>
							 | 
						|
								    <!--    Delete fields tree view-->
							 | 
						|
								    <record id="project_dynamic_fields_action_delete"
							 | 
						|
								            model="ir.actions.act_window">
							 | 
						|
								        <field name="name">Delete Custom Fields</field>
							 | 
						|
								        <field name="res_model">project.dynamic.fields</field>
							 | 
						|
								        <field name="view_mode">tree</field>
							 | 
						|
								        <field name="view_id" ref="project_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 create fields -->
							 | 
						|
								    <menuitem
							 | 
						|
								            id="project_dynamic_fields_menu_create"
							 | 
						|
								            name="Create Fields"
							 | 
						|
								            parent="project.menu_project_config"
							 | 
						|
								            action="project_dynamic_fields.project_dynamic_fields_action_create"
							 | 
						|
								            groups="project_dynamic_fields.group_add_project_custom_fields"
							 | 
						|
								            sequence="10"/>
							 | 
						|
								    <!-- Menu Item in Project to Delete fields -->
							 | 
						|
								    <menuitem
							 | 
						|
								            id="project_dynamic_fields_menu_delete"
							 | 
						|
								            name="Delete Fields"
							 | 
						|
								            parent="project.menu_project_config"
							 | 
						|
								            action="project_dynamic_fields.project_dynamic_fields_action_delete"
							 | 
						|
								            groups="project_dynamic_fields.group_add_project_custom_fields"
							 | 
						|
								            sequence="12"/>
							 | 
						|
								</odoo>
							 | 
						|
								
							 |