summaryrefslogtreecommitdiff
path: root/odoo/addons/base/views
diff options
context:
space:
mode:
authorThibault Delavallée <tde@odoo.com>2017-10-17 16:02:04 +0200
committerThibault Delavallée <tde@odoo.com>2017-11-27 11:14:55 +0100
commitb162eb2e1e716282a4fc26bce2e363e190bb9cfb (patch)
tree6039a0e8912b92bd270f842e57a7ed55e3cd7557 /odoo/addons/base/views
parent969a55576ebd2e044315644e493b7c3c330f9787 (diff)
[MOV] base: move ir_* views to views/
Diffstat (limited to 'odoo/addons/base/views')
-rw-r--r--odoo/addons/base/views/ir_actions_views.xml458
-rw-r--r--odoo/addons/base/views/ir_attachment_views.xml106
-rw-r--r--odoo/addons/base/views/ir_config_parameter_views.xml36
-rw-r--r--odoo/addons/base/views/ir_cron_views.xml89
-rw-r--r--odoo/addons/base/views/ir_default_views.xml62
-rw-r--r--odoo/addons/base/views/ir_filters_views.xml67
-rw-r--r--odoo/addons/base/views/ir_logging_views.xml64
-rw-r--r--odoo/addons/base/views/ir_mail_server_views.xml60
-rw-r--r--odoo/addons/base/views/ir_model_views.xml594
-rw-r--r--odoo/addons/base/views/ir_property_views.xml67
-rw-r--r--odoo/addons/base/views/ir_qweb_widget_templates.xml46
-rw-r--r--odoo/addons/base/views/ir_rule_views.xml106
-rw-r--r--odoo/addons/base/views/ir_sequence_views.xml107
-rw-r--r--odoo/addons/base/views/ir_translation_views.xml89
-rw-r--r--odoo/addons/base/views/ir_ui_menu_views.xml73
-rw-r--r--odoo/addons/base/views/ir_ui_view_views.xml139
16 files changed, 2163 insertions, 0 deletions
diff --git a/odoo/addons/base/views/ir_actions_views.xml b/odoo/addons/base/views/ir_actions_views.xml
new file mode 100644
index 00000000000..b2d62493177
--- /dev/null
+++ b/odoo/addons/base/views/ir_actions_views.xml
@@ -0,0 +1,458 @@
+<?xml version="1.0" encoding="utf-8"?>
+<odoo>
+
+ <!-- ir.actions -->
+
+ <record id="action_view" model="ir.ui.view">
+ <field name="name">ir.actions.actions</field>
+ <field name="model">ir.actions.actions</field>
+ <field name="arch" type="xml">
+ <form string="Action">
+ <group>
+ <field name="name"/>
+ <field name="type"/>
+ </group>
+ </form>
+ </field>
+ </record>
+ <record id="action_view_tree" model="ir.ui.view">
+ <field name="name">ir.actions.actions.tree</field>
+ <field name="model">ir.actions.actions</field>
+ <field name="arch" type="xml">
+ <tree string="Action">
+ <field name="name"/>
+ <field name="type"/>
+ </tree>
+ </field>
+ </record>
+ <record id="action_view_search" model="ir.ui.view">
+ <field name="name">ir.actions.actions.search</field>
+ <field name="model">ir.actions.actions</field>
+ <field name="arch" type="xml">
+ <search string="Action">
+ <field name="name" filter_domain="['|', ('name','ilike',self), ('type','ilike',self)]" string="Action"/>
+ </search>
+ </field>
+ </record>
+ <record id="ir_sequence_actions" model="ir.actions.act_window">
+ <field name="name">Actions</field>
+ <field name="type">ir.actions.act_window</field>
+ <field name="res_model">ir.actions.actions</field>
+ <field name="view_type">form</field>
+ <field name="view_id" ref="action_view_tree"/>
+ <field name="search_view_id" ref="action_view_search"/>
+ </record>
+ <menuitem id="next_id_6" name="Actions" parent="base.menu_custom" sequence="5"/>
+ <menuitem action="ir_sequence_actions" id="menu_ir_sequence_actions" parent="next_id_6"/>
+
+ <!-- ir.actions.report -->
+
+ <record id="act_report_xml_view" model="ir.ui.view">
+ <field name="name">ir.actions.report</field>
+ <field name="model">ir.actions.report</field>
+ <field name="arch" type="xml">
+ <form string="Report">
+ <field name="binding_model_id" invisible="1"/>
+ <sheet>
+ <div class="oe_button_box" name="button_box">
+ <button name="create_action" string="Add in the 'Print' menu" type="object"
+ attrs="{'invisible':[('binding_model_id','!=',False)]}" icon="fa-plus-square"
+ help="Display an option on related documents to print this report" class="oe_stat_button"/>
+ <button name="unlink_action" string="Remove from the 'Print' menu" type="object"
+ attrs="{'invisible':[('binding_model_id','=',False)]}" icon="fa-minus-square"
+ help="Remove the contextual action related this report" class="oe_stat_button"/>
+ <button name="associated_view" string="QWeb views" type="object"
+ attrs="{'invisible':[('report_type', 'not in', ['qweb-pdf', 'qweb-html'])]}" icon='fa-code'
+ class="oe_stat_button"/>
+ </div>
+ <group>
+ <group>
+ <field name="name"/>
+ <field name="report_type"/>
+ <field name="paperformat_id"
+ attrs="{'invisible':[('report_type','not in',['qweb-pdf'])]}"/>
+ </group>
+ <group>
+ <field name="model"/>
+ <field name="report_name"/>
+ <field name="print_report_name" />
+ </group>
+ </group>
+ <notebook>
+ <page name="security" string="Security">
+ <field name="groups_id"/>
+ </page>
+ <page name='advanced' string="Advanced Properties">
+ <group>
+ <field name="multi"/>
+ <field name="attachment_use"/>
+ <field name="attachment"/>
+ </group>
+ </page>
+ </notebook>
+ </sheet>
+ </form>
+ </field>
+ </record>
+ <record id="act_report_xml_view_tree" model="ir.ui.view">
+ <field name="name">ir.actions.report.tree</field>
+ <field name="model">ir.actions.report</field>
+ <field name="arch" type="xml">
+ <tree string="Report xml">
+ <field name="name"/>
+ <field name="model"/>
+ <field name="type"/>
+ <field name="report_name"/>
+ <field name="report_type"/>
+ <field name="attachment"/>
+ </tree>
+ </field>
+ </record>
+ <record id="act_report_xml_search_view" model="ir.ui.view">
+ <field name="name">ir.actions.report.search</field>
+ <field name="model">ir.actions.report</field>
+ <field name="arch" type="xml">
+ <search string="Report Xml">
+ <field name="name"
+ filter_domain="['|', '|', '|', '|', ('name','ilike',self), ('model','ilike',self), ('type','ilike',self), ('report_name','ilike',self), ('report_type','ilike',self)]"
+ string="Report"/>
+ <field name="model" filter_domain="[('model','=', self)]" string="Model"/>
+ <group expand="0" string="Group By" colspan="4">
+ <filter string="Report Type" name="report_type" domain="[]" context="{'group_by':'report_type'}"/>
+ <filter string="Report Model" name="report_model" domain="[]" context="{'group_by':'model'}"/>
+ </group>
+ </search>
+ </field>
+ </record>
+ <record id="ir_action_report" model="ir.actions.act_window">
+ <field name="name">Reports</field>
+ <field name="type">ir.actions.act_window</field>
+ <field name="res_model">ir.actions.report</field>
+ <field name="view_type">form</field>
+ <field name="view_id" ref="act_report_xml_view_tree"/>
+ <field name="search_view_id" ref="act_report_xml_search_view"/>
+ </record>
+ <menuitem action="ir_action_report" id="menu_ir_action_report" parent="base.next_id_6"/>
+
+ <!-- ir.actions.act_window -->
+
+ <record id="view_window_action_tree" model="ir.ui.view">
+ <field name="name">ir.actions.windows.tree</field>
+ <field name="model">ir.actions.act_window</field>
+ <field name="arch" type="xml">
+ <tree string="Open Window">
+ <field name="name"/>
+ <field name="res_model"/>
+ <field name="view_type"/>
+ <field name="view_id"/>
+ <field name="domain"/>
+ <field name="context"/>
+ </tree>
+ </field>
+ </record>
+ <record id="view_window_action_form" model="ir.ui.view">
+ <field name="name">ir.actions.windows.form</field>
+ <field name="model">ir.actions.act_window</field>
+ <field name="arch" type="xml">
+ <form string="Open a Window">
+ <group>
+ <group>
+ <field name="name"/>
+ <field name="xml_id" string="External ID"/>
+ <field name="res_model" string="Object"/>
+ <field name="src_model" string="Source Object"/>
+ </group>
+ <group>
+ <field name="usage"/>
+ <field name="type" readonly="1"/>
+ <field name="target"/>
+ </group>
+ </group>
+ <notebook>
+ <page string="General Settings">
+ <group>
+ <group string="Views">
+ <field name="view_mode"/>
+ <field name="view_id"/>
+ <field name="search_view_id"/>
+ </group>
+ <group string="Filters">
+ <field name="domain"/>
+ <field name="context"/>
+ <field name="limit"/>
+ <field name="auto_search"/>
+ <field name="filter"/>
+ <field name="multi"/>
+ </group>
+ </group>
+ <group string="Help">
+ <field colspan="2" name="help" nolabel="1"/>
+ </group>
+ <group string="Views">
+ <field colspan="2" name="view_ids" nolabel="1">
+ <form string="Views">
+ <group>
+ <field colspan="4" name="sequence"/>
+ <field name="view_mode"/>
+ <field domain="[('type', '=', view_mode)]" name="view_id"/>
+ </group>
+ </form>
+ <tree string="Views">
+ <field name="sequence"/>
+ <field name="view_mode"/>
+ <field name="view_id"/>
+ </tree>
+ </field>
+ </group>
+ </page>
+ <page string="Security">
+ <field name="groups_id"/>
+ </page>
+ </notebook>
+ </form>
+ </field>
+ </record>
+ <record id="view_window_action_search" model="ir.ui.view">
+ <field name="name">ir.actions.windows.search</field>
+ <field name="model">ir.actions.act_window</field>
+ <field name="arch" type="xml">
+ <search string="Open a Window">
+ <field name="name" filter_domain="['|', ('name','ilike',self), ('res_model','ilike',self)]" string="Action"/>
+ <field name="view_type"/>
+ <group expand="0" string="Group By" colspan="4">
+ <filter string="View Type" name="view_type" domain="[]" context="{'group_by':'view_type'}"/>
+ </group>
+ </search>
+ </field>
+ </record>
+ <record id="ir_action_window" model="ir.actions.act_window">
+ <field name="name">Window Actions</field>
+ <field name="type">ir.actions.act_window</field>
+ <field name="res_model">ir.actions.act_window</field>
+ <field name="view_type">form</field>
+ <field name="search_view_id" ref="view_window_action_search"/>
+ </record>
+ <record id="ir_action_window_view1" model="ir.actions.act_window.view">
+ <field eval="1" name="sequence"/>
+ <field name="view_mode">tree</field>
+ <field name="view_id" ref="view_window_action_tree"/>
+ <field name="act_window_id" ref="ir_action_window"/>
+ </record>
+ <record id="ir_action_window_view2" model="ir.actions.act_window.view">
+ <field eval="2" name="sequence"/>
+ <field name="view_mode">form</field>
+ <field name="view_id" ref="view_window_action_form"/>
+ <field name="act_window_id" ref="ir_action_window"/>
+ </record>
+ <menuitem action="ir_action_window" id="menu_ir_action_window" parent="base.next_id_6"/>
+
+ <!-- ir.actions.server -->
+
+ <record id="view_server_action_form" model="ir.ui.view">
+ <field name="name">Server Action</field>
+ <field name="model">ir.actions.server</field>
+ <field name="arch" type="xml">
+ <form string="Server Action">
+ <header>
+ <field name="binding_model_id" invisible="1"/>
+ <button name="create_action" string="Create Contextual Action" type="object"
+ class="btn-primary"
+ attrs="{'invisible':[('binding_model_id','!=',False)]}"
+ help="Display an option in the 'More' top-menu in order to run this action."/>
+ <button name="unlink_action" string="Remove Contextual Action" type="object"
+ attrs="{'invisible':[('binding_model_id','=',False)]}"
+ help="Remove 'More' top-menu contextual action related to this action"/>
+ </header>
+ <sheet>
+ <div class="oe_title">
+ <label for="name" class="oe_edit_only"/>
+ <h1><field name="name" placeholder="e.g. Update order quantity"/></h1>
+ </div>
+ <group name="action_wrapper">
+ <group name="action_content">
+ <field name="model_id"/>
+ <field name="model_name" invisible="1"/>
+ <field name="state"/>
+ <field name="type" invisible="1"/>
+ <field name="crud_model_id"
+ attrs="{'invisible': [('state', '!=', 'object_create')], 'required': [('state', '=', 'object_create')]}"/>
+ <field name="crud_model_name" invisible="1"/>
+ <field name="link_field_id"
+ domain="[('model_id', '=', model_id), ('relation', '=', crud_model_name), ('ttype', 'in', ['many2one'])]"
+ attrs="{'invisible': [('state', '!=', 'object_create')]}"/>
+ </group>
+ </group>
+ <notebook>
+ <page string="Python Code" name='code' autofocus="autofocus"
+ attrs="{'invisible': [('state', '!=', 'code')]}">
+ <field name="code" widget="ace" options="{'mode': 'python'}" placeholder="Enter Python code here. Help about Python expression is available in the help tab of this document."/>
+ </page>
+
+ <page string="Data to Write" autofocus="autofocus"
+ attrs="{'invisible':[('state', 'not in', ['object_create', 'object_write'])]}">
+ <p attrs="{'invisible': [('model_id', '!=', False)]}">
+ Please set the Model to Create before choosing values
+ </p>
+ <field name="fields_lines">
+ <tree string="Field Mappings" editable="bottom">
+ <field name="col1" domain="['|', ('model_id', '=', parent.crud_model_id), ('model_id', '=', parent.model_id)]"/>
+ <field name="type"/>
+ <field name="value"/>
+ </tree>
+ </field>
+ </page>
+
+ <page string="Actions" autofocus="autofocus"
+ attrs="{'invisible': [('state', '!=', 'multi')]}">
+ <p class="oe_grey">
+ If several child actions return an action, only the last one will be executed.
+ This may happen when having server actions executing code that returns an action, or server actions returning a client action.
+ </p>
+ <field name="child_ids" domain="[('model_id', '=', model_id)]"/>
+ </page>
+
+ <page string="Help"
+ attrs="{'invisible': [('state', '!=', 'code')]}">
+ <group>
+ <div style="margin-top: 4px;">
+ <h3>Help with Python expressions</h3>
+ <p>Various fields may use Python code or Python expressions. The following variables can be used:</p>
+ <ul>
+ <li><code>env</code>: Odoo Environment on which the action is triggered</li>
+ <li><code>model</code>: Odoo Model of the record on which the action is triggered; is a void recordset</li>
+ <li><code>record</code>: record on which the action is triggered; may be be void</li>
+ <li><code>records</code>: recordset of all records on which the action is triggered in multi mode; may be void</li>
+ <li><code>time</code>, <code>datetime</code>, <code>dateutil</code>, <code>timezone</code>: useful Python libraries</li>
+ <li><code>log(message, level='info')</code>:logging function to record debug information in <code>ir.logging</code> table</li>
+ <li><code>Warning</code>: Warning Exception to use with <code>raise</code></li>
+ <li>To return an action, assign: <code>action = {...}</code></li>
+ </ul>
+ <div attrs="{'invisible': [('state', '!=', 'code')]}">
+ <p>Example of Python code</p>
+<code style='white-space: pre-wrap'>
+partner_name = record.name + '_code'
+env['res.partner'].create({'name': partner_name})
+</code>
+ </div>
+ </div>
+ </group>
+ </page>
+ </notebook>
+ </sheet>
+ </form>
+ </field>
+ </record>
+ <record id="view_server_action_tree" model="ir.ui.view">
+ <field name="name">Server Actions</field>
+ <field name="model">ir.actions.server</field>
+ <field name="arch" type="xml">
+ <tree string="Server Actions">
+ <field name="sequence" widget="handle"/>
+ <field name="name"/>
+ <field name="state"/>
+ <field name="model_id"/>
+ <field name="usage"/>
+ </tree>
+ </field>
+ </record>
+ <record id="view_server_action_search" model="ir.ui.view">
+ <field name="name">ir.actions.server.search</field>
+ <field name="model">ir.actions.server</field>
+ <field name="arch" type="xml">
+ <search string="Server Actions">
+ <field name="name" string="Server Action"/>
+ <field name="model_id"/>
+ <field name="state"/>
+ <group expand="0" string="Group By" colspan="4" col="4">
+ <filter string="Action Type" name="action_type" domain="[]" context="{'group_by':'state'}"/>
+ <filter string="Model" name="model" domain="[]" context="{'group_by':'model_id'}"/>
+ <filter string="Usage" name="usage" domain="[]" context="{'group_by':'usage'}"/>
+ </group>
+ </search>
+ </field>
+ </record>
+ <record id="action_server_action" model="ir.actions.act_window">
+ <field name="name">Server Actions</field>
+ <field name="type">ir.actions.act_window</field>
+ <field name="res_model">ir.actions.server</field>
+ <field name="view_type">form</field>
+ <field name="view_mode">tree,form</field>
+ <field name="view_id" ref="view_server_action_tree"/>
+ <field name="search_view_id" ref="view_server_action_search"/>
+ <field name="context">{'key':'server_action'}</field>
+ </record>
+ <menuitem action="action_server_action" id="menu_server_action" parent="base.next_id_6"/>
+
+ <!-- ir.actions.todo -->
+
+ <record id="ir_actions_todo_tree" model="ir.ui.view">
+ <field name="model">ir.actions.todo</field>
+ <field name="name">Config Wizard Steps</field>
+ <field name="arch" type="xml">
+ <tree string="Config Wizard Steps">
+ <field name="sequence"/>
+ <field name="action_id"/>
+ <field name="state" readonly="1"/>
+ <button name="action_launch" states="open" string="Launch" type="object" icon="fa-cogs" help="Launch Configuration Wizard"/>
+ <button name="action_open" states="done"
+ string="Todo" type="object" help="Set as Todo"
+ icon="fa-exchange"/>
+ </tree>
+ </field>
+ </record>
+ <record id="config_wizard_step_view_form" model="ir.ui.view">
+ <field name="model">ir.actions.todo</field>
+ <field name="name">Config Wizard Steps</field>
+ <field name="arch" type="xml">
+ <form string="Config Wizard Steps">
+ <header>
+ <button name="action_launch"
+ states="open" string="Launch"
+ type="object" icon="fa-cogs" class="oe_highlight"
+ help="Launch Configuration Wizard"/>
+ <button name="action_open" states="done"
+ string="Set as Todo" type="object"
+ icon="fa-exchange" class="oe_highlight"/>
+ <field name="state" widget="statusbar" statusbar_visible="open,done" nolabel="1" readonly="1" />
+ </header>
+ <sheet>
+ <group col="4">
+ <field name="action_id"/>
+ <field name="sequence"/>
+ </group>
+ </sheet>
+ </form>
+ </field>
+ </record>
+ <record id="config_wizard_step_view_search" model="ir.ui.view">
+ <field name="model">ir.actions.todo</field>
+ <field name="name">ir.actions.todo.select</field>
+ <field name="arch" type="xml">
+ <search string="Search Actions">
+ <filter string="To Do" name="todo" domain=" [('state','=','open')]" help="Wizards to be Launched"/>
+ <field name="action_id"/>
+ <field name="state"/>
+ </search>
+ </field>
+ </record>
+ <record id="act_ir_actions_todo_form" model="ir.actions.act_window">
+ <field name="name">Configuration Wizards</field>
+ <field name="res_model">ir.actions.todo</field>
+ <field name="view_id" ref="ir_actions_todo_tree"/>
+ <field name="view_type">form</field>
+ <field name="help">The configuration wizards are used to help you configure a new instance of Odoo. They are launched during the installation of new modules, but you can choose to restart some wizards manually from this menu.</field>
+ </record>
+ <menuitem id="menu_ir_actions_todo_form" action="act_ir_actions_todo_form" parent="base.next_id_6"/>
+ <record id="action_run_ir_action_todo" model="ir.actions.server">
+ <field name="name">Config: Run Remaining Action Todo</field>
+ <field name="type">ir.actions.server</field>
+ <field name="model_id" ref="model_res_config"/>
+ <field name="state">code</field>
+ <field name="code">
+config = model.next() or {}
+if config.get('type') not in ('ir.actions.act_window_close',):
+ action = config
+</field>
+ </record>
+
+</odoo>
diff --git a/odoo/addons/base/views/ir_attachment_views.xml b/odoo/addons/base/views/ir_attachment_views.xml
new file mode 100644
index 00000000000..573f56d9a9b
--- /dev/null
+++ b/odoo/addons/base/views/ir_attachment_views.xml
@@ -0,0 +1,106 @@
+<?xml version="1.0" encoding="utf-8"?>
+<odoo>
+ <!-- Attachment -->
+ <record id="view_attachment_form" model="ir.ui.view">
+ <field name="model">ir.attachment</field>
+ <field name="arch" type="xml">
+ <form string="Attachments">
+ <sheet>
+ <label for="name" class="oe_edit_only"/>
+ <h1>
+ <field name="name"/>
+ </h1>
+ <group>
+ <group>
+ <field name="type"/>
+ <field name="datas" filename="datas_fname" attrs="{'invisible':[('type','=','url')]}"/>
+ <field name="datas_fname" invisible="1" attrs="{'invisible':[('type','=','url')]}" class="oe_inline oe_right"/>
+ <field name="url" widget="url" attrs="{'invisible':[('type','=','binary')]}"/>
+ <field name="mimetype" groups="base.group_no_one"/>
+ </group>
+ <group string="Attached To" groups="base.group_no_one">
+ <field name="res_model"/>
+ <field name="res_field"/>
+ <field name="res_id"/>
+ <field name="res_name"/>
+ <field name="company_id" groups="base.group_multi_company" options="{'no_create': True}"/>
+ <field name="public"/>
+ </group>
+ <group string="History" groups="base.group_no_one">
+ <label for="create_uid" string="Creation"/>
+ <div name="creation_div">
+ <field name="create_uid" readonly="1" class="oe_inline"/> on
+ <field name="create_date" readonly="1" class="oe_inline"/>
+ </div>
+ </group>
+ <group name="description_group" string="Description" groups="base.group_no_one" colspan="4">
+ <field name="description" nolabel="1"/>
+ </group>
+ <group groups="base.group_no_one" string="Indexed Content" colspan="4">
+ <field name="index_content" nolabel="1"/>
+ </group>
+ </group>
+ </sheet>
+ </form>
+ </field>
+ </record>
+ <record id="view_attachment_tree" model="ir.ui.view">
+ <field name="model">ir.attachment</field>
+ <field name="arch" type="xml">
+ <tree string="Attachments">
+ <field name="name"/>
+ <field name="datas_fname"/>
+ <field name="res_model"/>
+ <field name="res_field"/>
+ <field name="res_id"/>
+ <field name="type"/>
+ <field name="company_id" groups="base.group_multi_company"/>
+ <field name="create_uid"/>
+ <field name="create_date"/>
+ </tree>
+ </field>
+ </record>
+ <record id="view_attachment_search" model="ir.ui.view">
+ <field name="model">ir.attachment</field>
+ <field name="arch" type="xml">
+ <search string="Attachments">
+ <field name="name" filter_domain="['|', ('name','ilike',self), ('datas_fname','ilike',self)]" string="Attachment"/>
+ <field name="create_date"/>
+ <filter name="url_filter" string="URL" domain="[('type','=','url')]"/>
+ <filter name="binary_filter" string="Binary" domain="[('type','=','binary')]"/>
+ <separator/>
+ <filter name="my_documents_filter"
+ string="My Document(s)"
+ domain="[('create_uid','=',uid)]"
+ help="Filter on my documents"/>
+ <field name="create_uid"/>
+ <field name="type"/>
+ <group expand="0" string="Group By">
+ <filter name="owner" string="Owner" domain="[]" context="{'group_by':'create_uid'}"/>
+ <filter string="Type" name="type" domain="[]" context="{'group_by':'type'}" groups="base.group_no_one"/>
+ <filter string="Company" name="company" domain="[]" context="{'group_by':'company_id'}" groups="base.group_multi_company"/>
+ <filter string="Creation Month" name="creation_month" domain="[]" context="{'group_by':'create_date'}"/>
+ <filter string="Attached Document Name" name="attached_document_name" domain="[]" context="{'group_by': 'res_name'}"/>
+ </group>
+ </search>
+ </field>
+ </record>
+ <record id="action_attachment" model="ir.actions.act_window">
+ <field name="name">Attachments</field>
+ <field name="type">ir.actions.act_window</field>
+ <field name="res_model">ir.attachment</field>
+ <field name="view_type">form</field>
+ <field name="view_id" eval="False"/>
+ <field name="search_view_id" ref="view_attachment_search"/>
+ <field name="help" type="html">
+ <p class="oe_view_nocontent_create">
+ Click here to create new documents.
+ </p>
+ <p>
+ Also you will find here all the related documents and download it by clicking on any individual document.
+ </p>
+ </field>
+ </record>
+ <menuitem action="action_attachment" id="menu_action_attachment" parent="base.next_id_9"/>
+
+</odoo>
diff --git a/odoo/addons/base/views/ir_config_parameter_views.xml b/odoo/addons/base/views/ir_config_parameter_views.xml
new file mode 100644
index 00000000000..6480f989a53
--- /dev/null
+++ b/odoo/addons/base/views/ir_config_parameter_views.xml
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="utf-8"?>
+<odoo>
+ <record model="ir.ui.view" id="view_ir_config_search">
+ <field name="model">ir.config_parameter</field>
+ <field name="arch" type="xml">
+ <search string="System Properties">
+ <field name="key" string="Key"/>
+ <field name="value"/>
+ </search>
+ </field>
+ </record>
+ <record model="ir.ui.view" id="view_ir_config_list">
+ <field name="model">ir.config_parameter</field>
+ <field name="arch" type="xml">
+ <tree string="System Parameters">
+ <field name="key"/>
+ <field name="value"/>
+ </tree>
+ </field>
+ </record>
+ <record model="ir.ui.view" id="view_ir_config_form">
+ <field name="model">ir.config_parameter</field>
+ <field name="arch" type="xml">
+ <form string="System Parameters">
+ <sheet>
+ <group>
+ <field name="key"/>
+ <field name="value"/>
+ </group>
+ </sheet>
+ </form>
+ </field>
+ </record>
+ <act_window name="System Parameters" res_model="ir.config_parameter" id="ir_config_list_action"/>
+ <menuitem id="ir_config_menu" name="System Parameters" parent="menu_ir_property" action="ir_config_list_action"/>
+</odoo>
diff --git a/odoo/addons/base/views/ir_cron_views.xml b/odoo/addons/base/views/ir_cron_views.xml
new file mode 100644
index 00000000000..aad8af6d6e3
--- /dev/null
+++ b/odoo/addons/base/views/ir_cron_views.xml
@@ -0,0 +1,89 @@
+<?xml version="1.0" encoding="utf-8"?>
+<odoo>
+ <!-- ir.cron -->
+ <record id="ir_cron_view_form" model="ir.ui.view">
+ <field name="name">ir.cron.view.form</field>
+ <field name="model">ir.cron</field>
+ <field name="mode">primary</field>
+ <field name="inherit_id" ref="base.view_server_action_form"/>
+ <field name="arch" type="xml">
+ <div class="oe_title" position="before">
+ <div class="oe_button_box" name="button_box">
+ <button name="toggle_active" type="object" class="oe_stat_button" icon="fa-archive">
+ <field name="active" widget="boolean_button"/>
+ </button>
+ </div>
+ </div>
+ <xpath expr="//button[@name='create_action']" position="replace">
+ <button name="method_direct_trigger" type="object" string="Run Manually" class="oe_highlight"/>
+ </xpath>
+ <xpath expr="//button[@name='unlink_action']" position="replace">
+ </xpath>
+ <xpath expr="//group[@name='action_wrapper']" position="inside">
+ <group>
+ <field name="user_id"/>
+ <label for="interval_number" string="Execute Every"/>
+ <div>
+ <field name="interval_number" class="oe_inline"/>
+ <field name="interval_type" class="oe_inline"/>
+ </div>
+ <field name="nextcall"/>
+ <field name="numbercall"/>
+ <field name="priority"/>
+ <field name="doall"/>
+ </group>
+ </xpath>
+ </field>
+ </record>
+ <record id="ir_cron_view_tree" model="ir.ui.view">
+ <field name="model">ir.cron</field>
+ <field name="arch" type="xml">
+ <tree string="Scheduled Actions" decoration-muted="(not active)">
+ <field name="priority"/>
+ <field name="name"/>
+ <field name="nextcall"/>
+ <field name="interval_number"/>
+ <field name="interval_type"/>
+ <field name="numbercall"/>
+ <field name="user_id" invisible="1"/>
+ <field name="active"/>
+ </tree>
+ </field>
+ </record>
+ <record model="ir.ui.view" id="ir_cron_view_calendar">
+ <field name="model">ir.cron</field>
+ <field name="priority" eval="2"/>
+ <field name="arch" type="xml">
+ <calendar string="Scheduled Actions" date_start="nextcall" color="user_id">
+ <field name="name"/>
+ </calendar>
+ </field>
+ </record>
+ <record id="ir_cron_view_search" model="ir.ui.view">
+ <field name="model">ir.cron</field>
+ <field name="arch" type="xml">
+ <search string="Scheduled Actions">
+ <field name="name" string="Scheduled Action"/>
+ <field name="user_id"/>
+ <field name="nextcall"/>
+ <field name="active"/>
+ <separator/>
+ <filter string="All" name="all" domain="['|', ('active', '=', False), ('active', '=', True)]" />
+ <group expand="0" string="Group By">
+ <filter string="User" name="user" domain="[]" context="{'group_by':'user_id'}"/>
+ <filter string="Execution" name="execution" domain="[]" context="{'group_by':'nextcall'}" />
+ </group>
+ </search>
+ </field>
+ </record>
+ <record id="ir_cron_act" model="ir.actions.act_window">
+ <field name="name">Scheduled Actions</field>
+ <field name="res_model">ir.cron</field>
+ <field name="view_type">form</field>
+ <field name="view_mode">tree,form,calendar</field>
+ <field name="context">{'search_default_all': 1}</field>
+ <field name="view_id" ref="ir_cron_view_tree"/>
+ </record>
+ <menuitem id="menu_ir_cron_act" action="ir_cron_act" parent="base.menu_automation"/>
+
+</odoo>
diff --git a/odoo/addons/base/views/ir_default_views.xml b/odoo/addons/base/views/ir_default_views.xml
new file mode 100644
index 00000000000..caa12a6dc19
--- /dev/null
+++ b/odoo/addons/base/views/ir_default_views.xml
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="utf-8"?>
+<odoo>
+
+ <record id="ir_default_form_view" model="ir.ui.view">
+ <field name="name">ir.default form view</field>
+ <field name="model">ir.default</field>
+ <field name="arch" type="xml">
+ <form string="User-defined Defaults">
+ <group>
+ <group>
+ <field name="field_id"/>
+ <field name="json_value"/>
+ </group>
+ <group>
+ <field name="user_id"/>
+ <field name="company_id" groups="base.group_multi_company"/>
+ </group>
+ </group>
+ </form>
+ </field>
+ </record>
+
+ <record id="ir_default_tree_view" model="ir.ui.view">
+ <field name="name">ir.default tree view</field>
+ <field name="model">ir.default</field>
+ <field name="arch" type="xml">
+ <tree string="User-defined Defaults">
+ <field name="field_id"/>
+ <field name="json_value"/>
+ <field name="user_id"/>
+ <field name="company_id" groups="base.group_multi_company"/>
+ </tree>
+ </field>
+ </record>
+
+ <record id="ir_default_search_view" model="ir.ui.view">
+ <field name="name">ir.default search view</field>
+ <field name="model">ir.default</field>
+ <field name="arch" type="xml">
+ <search string="User-defined Defaults">
+ <field name="field_id"/>
+ <field name="user_id"/>
+ <field name="company_id" groups="base.group_multi_company"/>
+ <group expand="0" string="Group By">
+ <filter string="User" name="groupby_user" domain="[]" context="{'group_by':'user_id'}"/>
+ <filter string="Company" name="groupby_company" domain="[]" context="{'group_by':'company_id'}"/>
+ </group>
+ </search>
+ </field>
+ </record>
+
+ <record id="ir_default_menu_action" model="ir.actions.act_window">
+ <field name="name">User-defined Defaults</field>
+ <field name="type">ir.actions.act_window</field>
+ <field name="res_model">ir.default</field>
+ <field name="view_type">form</field>
+ <field name="view_mode">tree,form</field>
+ <field name="search_view_id" ref="ir_default_search_view"/>
+ </record>
+ <menuitem action="ir_default_menu_action" id="ir_default_menu" parent="next_id_6"/>
+
+</odoo>
diff --git a/odoo/addons/base/views/ir_filters_views.xml b/odoo/addons/base/views/ir_filters_views.xml
new file mode 100644
index 00000000000..7faf7ded0b7
--- /dev/null
+++ b/odoo/addons/base/views/ir_filters_views.xml
@@ -0,0 +1,67 @@
+<?xml version="1.0" encoding="utf-8"?>
+<odoo>
+ <data>
+ <record id="ir_filters_view_form" model="ir.ui.view">
+ <field name="model">ir.filters</field>
+ <field name="arch" type="xml">
+ <form string="Filters">
+ <sheet>
+ <group col="4">
+ <field name="name"/>
+ <field name="user_id" string="Available for User"/>
+ <field name="model_id"/>
+ <field name="is_default"/>
+ <field name="action_id"/>
+ <field name="active"/>
+ </group>
+ <group>
+ <field name="domain" widget="domain" options="{'model': 'model_id'}"/>
+ <field name="context"/>
+ <field name="sort"/>
+ </group>
+ </sheet>
+ </form>
+ </field>
+ </record>
+ <record id="ir_filters_view_tree" model="ir.ui.view">
+ <field name="model">ir.filters</field>
+ <field name="arch" type="xml">
+ <tree string="Filters">
+ <field name="name"/>
+ <field name="model_id"/>
+ <field name="user_id"/>
+ <field name="is_default"/>
+ <field name="action_id"/>
+ <field name="domain" groups="base.group_no_one"/>
+ <field name="context" groups="base.group_no_one"/>
+ <field name="sort" groups="base.group_no_one"/>
+ </tree>
+ </field>
+ </record>
+ <record id="ir_filters_view_search" model="ir.ui.view">
+ <field name="model">ir.filters</field>
+ <field name="arch" type="xml">
+ <search string="Filters">
+ <field name="name" string="Filter Name"/>
+ <filter string="User" domain="[('user_id','!=',False)]" name="user" help="Filters visible only for one user"/>
+ <filter string="Shared" domain="[('user_id','=',False)]" name="shared" help="Filters shared with all users"/>
+ <filter string="My filters" domain="[('user_id','=',uid)]" name="my_filters" help="Filters created by myself"/>
+ <separator/>
+ <group expand="0" string="Group By">
+ <filter string="User" name="user" domain="[]" context="{'group_by':'user_id'}"/>
+ <filter string="Model" name="model" domain="[]" context="{'group_by':'model_id'}"/>
+ </group>
+ <field name="model_id"/>
+ <field name="user_id"/>
+ </search>
+ </field>
+ </record>
+ <record id="actions_ir_filters_view" model="ir.actions.act_window">
+ <field name="name">Filters</field>
+ <field name="type">ir.actions.act_window</field>
+ <field name="res_model">ir.filters</field>
+ </record>
+ <menuitem parent="base.next_id_2" name="User-defined Filters"
+ id="menu_ir_filters" action="actions_ir_filters_view" sequence="5"/>
+ </data>
+</odoo>
diff --git a/odoo/addons/base/views/ir_logging_views.xml b/odoo/addons/base/views/ir_logging_views.xml
new file mode 100644
index 00000000000..ab76e725cd8
--- /dev/null
+++ b/odoo/addons/base/views/ir_logging_views.xml
@@ -0,0 +1,64 @@
+<?xml version="1.0" encoding="utf-8"?>
+<odoo>
+ <record model="ir.ui.view" id="ir_logging_form_view">
+ <field name="model">ir.logging</field>
+ <field name="arch" type="xml">
+ <form string="Log">
+ <group>
+ <field name="create_date" />
+ <field name="dbname" />
+ <field name="type" />
+ <field name="name" />
+ <field name="level" />
+ <field name="path" />
+ <field name="line" />
+ <field name="func" />
+ <field name="message" />
+ </group>
+ </form>
+ </field>
+ </record>
+ <record model="ir.ui.view" id="ir_logging_tree_view">
+ <field name="model">ir.logging</field>
+ <field name="arch" type="xml">
+ <tree string="Logs">
+ <field name="create_date" />
+ <field name="create_uid" />
+ <field name="dbname" />
+ <field name="type" />
+ <field name="name" />
+ <field name="level" />
+ <field name="path" />
+ <field name="line" />
+ <field name="func" />
+ </tree>
+ </field>
+ </record>
+ <record model="ir.ui.view" id="ir_logging_search_view">
+ <field name="model">ir.logging</field>
+ <field name="arch" type="xml">
+ <search string="Logs">
+ <field name="dbname" />
+ <field name="type" />
+ <field name="name" />
+ <field name="level" />
+ <field name="message" />
+ <group expand="0" string="Group By">
+ <filter string="Database" name="database" domain="[]" context="{'group_by': 'dbname'}" />
+ <filter string="Level" name="group_by_level" domain="[]" context="{'group_by': 'level'}" />
+ <filter string="Type" name="group_by_type" domain="[]" context="{'group_by': 'type'}" />
+ <filter string="Month" name="group_by_month" domain="[]" context="{'group_by': 'create_date'}" />
+ <filter string="Day" name="group_by_day" domain="[]" context="{'group_by': 'create_date:day'}" />
+ </group>
+ </search>
+ </field>
+ </record>
+ <record model="ir.actions.act_window" id="ir_logging_all_act">
+ <field name="name">Logging</field>
+ <field name="res_model">ir.logging</field>
+ <field name="view_type">form</field>
+ <field name="view_mode">tree,form</field>
+ <field name="search_view_id" ref="ir_logging_search_view" />
+ </record>
+ <menuitem parent="base.next_id_9" id="ir_logging_all_menu" action="ir_logging_all_act" />
+</odoo>
diff --git a/odoo/addons/base/views/ir_mail_server_views.xml b/odoo/addons/base/views/ir_mail_server_views.xml
new file mode 100644
index 00000000000..0a638b4acac
--- /dev/null
+++ b/odoo/addons/base/views/ir_mail_server_views.xml
@@ -0,0 +1,60 @@
+<?xml version="1.0" encoding="utf-8"?>
+<odoo>
+ <!-- ir.mail.server -->
+ <record model="ir.ui.view" id="ir_mail_server_form">
+ <field name="model">ir.mail_server</field>
+ <field name="arch" type="xml">
+ <form string="Outgoing Mail Servers">
+ <sheet>
+ <group col="4">
+ <field name="name"/>
+ <field name="sequence"/>
+ </group>
+ <group col="4" string="Connection Information">
+ <field name="smtp_host"/>
+ <field name="smtp_port"/>
+ <field name="smtp_debug" groups="base.group_no_one"/>
+ </group>
+ <group string="Security and Authentication" colspan="4">
+ <field name="smtp_encryption"/>
+ <field name="smtp_user"/>
+ <field name="smtp_pass" password="True"/>
+ <button name="test_smtp_connection" type="object" string="Test Connection" icon="fa-television"/>
+ </group>
+ </sheet>
+ </form>
+ </field>
+ </record>
+ <record model="ir.ui.view" id="ir_mail_server_list">
+ <field name="model">ir.mail_server</field>
+ <field name="arch" type="xml">
+ <tree string="Outgoing Mail Servers">
+ <field name="sequence"/>
+ <field name="name"/>
+ <field name="smtp_host"/>
+ <field name="smtp_user"/>
+ <field name="smtp_encryption"/>
+ </tree>
+ </field>
+ </record>
+ <record id="view_ir_mail_server_search" model="ir.ui.view">
+ <field name="model">ir.mail_server</field>
+ <field name="arch" type="xml">
+ <search string="Outgoing Mail Servers">
+ <field name="name"
+ filter_domain="['|', '|', ('name','ilike',self), ('smtp_host','ilike',self), ('smtp_user','ilike',self)]"
+ string="Outgoing Mail Server"/>
+ <field name="smtp_encryption"/>
+ </search>
+ </field>
+ </record>
+ <record model="ir.actions.act_window" id="action_ir_mail_server_list">
+ <field name="name">Outgoing Mail Servers</field>
+ <field name="res_model">ir.mail_server</field>
+ <field name="view_type">form</field>
+ <field name="view_mode">tree,form</field>
+ <field name="view_id" ref="ir_mail_server_list" />
+ <field name="search_view_id" ref="view_ir_mail_server_search"/>
+ </record>
+ <menuitem id="menu_mail_servers" parent="menu_email" action="action_ir_mail_server_list" sequence="15" groups="base.group_no_one"/>
+</odoo>
diff --git a/odoo/addons/base/views/ir_model_views.xml b/odoo/addons/base/views/ir_model_views.xml
new file mode 100644
index 00000000000..39d7db4bc85
--- /dev/null
+++ b/odoo/addons/base/views/ir_model_views.xml
@@ -0,0 +1,594 @@
+<?xml version="1.0" encoding="utf-8"?>
+<odoo>
+
+ <!-- menu_create from model form -->
+ <record id="view_model_menu_create" model="ir.ui.view">
+ <field name="name">Create Menu</field>
+ <field name="model">wizard.ir.model.menu.create</field>
+ <field name="arch" type="xml">
+ <form string="Create Menu">
+ <group>
+ <field name="name"/>
+ <field name="menu_id" domain="[('parent_id','!=',False)]"/>
+ </group>
+ <footer>
+ <button name="menu_create" string="Create _Menu" type="object" class="btn-primary"/>
+ <button string="Cancel" class="btn-default" special="cancel" />
+ </footer>
+ </form>
+ </field>
+ </record>
+ <act_window context="{'model_id': active_id}" id="act_menu_create" name="Create Menu" res_model="wizard.ir.model.menu.create" target="new" view_mode="form"/>
+
+ <!-- model -->
+ <record id="view_model_form" model="ir.ui.view">
+ <field name="model">ir.model</field>
+ <field name="arch" type="xml">
+ <form string="Model Description">
+ <sheet>
+ <group>
+ <group>
+ <field name="id" invisible="1"/>
+ <field name="name"/>
+ <field name="model" attrs="{'readonly': [('id', '!=', False)]}"/>
+ <field name="transient" attrs="{'readonly': [('id', '!=', False)]}" groups="base.group_no_one"/>
+ </group>
+ <group>
+ <field name="state" readonly="1" groups="base.group_no_one"/>
+ <field name="modules" groups="base.group_no_one"/>
+ </group>
+ </group>
+ <notebook>
+ <page string="Fields">
+ <field name="field_id">
+ <tree string="Fields Description">
+ <field name="name"/>
+ <field name="field_description"/>
+ <field name="ttype"/>
+ <field name="required"/>
+ <field name="readonly"/>
+ <field name="index" groups="base.group_no_one"/>
+ <field name="state" groups="base.group_no_one"/>
+ </tree>
+ <form string="Fields Description">
+ <group>
+ <group>
+ <field name="name"/>
+ <field name="field_description"/>
+ </group>
+ <group>
+ <field name="ttype"/>
+ <field name="help"/>
+ </group>
+ </group>
+ <notebook>
+ <page name="base" string="Properties">
+ <group string="Base Properties">
+ <group>
+ <field name="required"/>
+ <field name="readonly"/>
+ <field name="store" groups="base.group_no_one"/>
+ <field name="index" groups="base.group_no_one"/>
+ <field name="copy" groups="base.group_no_one"/>
+ </group>
+ <group>
+ <field name="translate"
+ attrs="{'readonly': [('ttype','not in',['char','text','html'])],
+ 'invisible': [('ttype','not in',['char','text','html'])]}"/>
+ <field name="selection" placeholder="[('blue', 'Blue'),('yellow', 'Yellow')]"
+ attrs="{'required': [('ttype','in',['selection','reference'])],
+ 'readonly': [('ttype','not in',['selection','reference'])],
+ 'invisible': [('ttype','not in',['selection','reference'])]}"/>
+ <field name="size" groups="base.group_no_one"
+ attrs="{'readonly': [('ttype','not in',['char','reference'])],
+ 'invisible': [('ttype','not in',['char','reference'])]}"/>
+ <field name="relation"
+ attrs="{'required': [('ttype','in',['many2one','one2many','many2many'])],
+ 'readonly': [('ttype','not in',['many2one','one2many','many2many'])],
+ 'invisible': [('ttype','not in',['many2one','one2many','many2many'])]}"/>
+ <field name="on_delete" groups="base.group_no_one"
+ attrs="{'readonly': [('ttype','!=','many2one')],
+ 'invisible': [('ttype','!=','many2one')]}"/>
+ <field name="relation_field"
+ attrs="{'required': [('ttype','=','one2many')],
+ 'readonly': [('ttype','!=','one2many')],
+ 'invisible': [('ttype','!=','one2many')]}"/>
+ <field name="relation_table" groups="base.group_no_one"
+ attrs="{'readonly': ['|', ('ttype','!=','many2many'), ('state','!=','manual')],
+ 'invisible': ['|', ('ttype','!=','many2many'), ('state','!=','manual')]}"/>
+ <field name="column1" groups="base.group_no_one"
+ attrs="{'readonly': ['|', ('ttype','!=','many2many'), ('state','!=','manual')],
+ 'invisible': ['|', ('ttype','!=','many2many'), ('state','!=','manual')]}"/>
+ <field name="column2" groups="base.group_no_one"
+ attrs="{'readonly': ['|', ('ttype','!=','many2many'), ('state','!=','manual')],
+ 'invisible': ['|', ('ttype','!=','many2many'), ('state','!=','manual')]}"/>
+ <field name="domain" groups="base.group_no_one"
+ attrs="{'readonly': [('ttype','not in',['many2one','one2many','many2many'])],
+ 'invisible': [('ttype','not in',['many2one','one2many','many2many'])]}"/>
+ </group>
+ </group>
+ <group string="Advanced Properties" groups="base.group_no_one">
+ <field name="related"/>
+ <field name="depends"/>
+ <field name="compute" widget="ace" options="{'mode': 'python'}"/>
+ </group>
+ <div groups="base.group_no_one">
+ <h3>How to define a computed field</h3>
+ <p>Computed fields are defined with the fields
+ <strong>Dependencies</strong> and <strong>Compute</strong>.</p>
+ <p>The field <strong>Dependencies</strong> lists the fields that
+ the current field depends on. It is a comma-separated list of
+ field names, like <code>name, size</code>. You can also refer to
+ fields accessible through other relational fields, for instance
+ <code>partner_id.company_id.name</code>.</p>
+ <p>The field <strong>Compute</strong> is the Python code to
+ compute the value of the field on a set of records. The value of
+ the field must be assigned to each record with a dictionary-like
+ assignment.</p>
+ <pre>
+ for record in self:
+ record['size'] = len(record.name)
+</pre>
+ <p>The only predefined variables are</p>
+ <ul>
+ <li><code>self</code> (the set of records to compute)</li>
+ <li><code>datetime</code> (Python module)</li>
+ <li><code>dateutil</code> (Python module)</li>
+ <li><code>time</code> (Python module)</li>
+ </ul>
+ <p>Other features are accessible through <code>self</code>, like
+ <code>self.env</code>, etc.</p>
+ </div>
+ </page>
+ <page name="groups" string="Access Rights">
+ <field name="groups"/>
+ </page>
+ <page name="misc" string="Miscellaneous" groups="base.group_no_one">
+ <group>
+ <field name="state"/>
+ <field name="modules"/>
+ </group>
+ </page>
+ </notebook>
+ </form>
+ </field>
+ <button groups="base.group_no_one"
+ icon="fa-align-justify"
+ name="%(act_menu_create)d"
+ string="Create a Menu" type="action"
+ target="new" />
+ </page>
+ <page string="Access Rights">
+ <field name="access_ids">
+ <tree string="Access Rights" editable="top"
+ decoration-warning="not group_id and
+ (perm_read or perm_write or
+ perm_create or perm_unlink)">
+ <field name="name"/>
+ <field name="group_id"/>
+ <field name="perm_read"/>
+ <field name="perm_write"/>
+ <field name="perm_create"/>
+ <field name="perm_unlink"/>
+ </tree>
+ </field>
+ </page>
+ <page string="Record Rules">
+ <field name="rule_ids">
+ <tree string="Record Rules" editable="top" decoration-info="global">
+ <field name="name"/>
+ <field name="groups" widget="many2many_tags" options="{'no_create':True}"/>
+ <field name="global" invisible="1"/>
+ <field name="domain_force"/>
+ <field name="perm_read"/>
+ <field name="perm_write"/>
+ <field name="perm_create"/>
+ <field name="perm_unlink"/>
+ </tree>
+ </field>
+ </page>
+ <page string="Notes" groups="base.group_no_one">
+ <field name="info"/>
+ </page>
+ <page string="Views" groups="base.group_no_one">
+ <field name="view_ids"/>
+ </page>
+ </notebook>
+ </sheet>
+ </form>
+ </field>
+ </record>
+ <record id="view_model_tree" model="ir.ui.view">
+ <field name="model">ir.model</field>
+ <field name="arch" type="xml">
+ <tree string="Model Description">
+ <field name="model"/>
+ <field name="name"/>
+ <field name="state"/>
+ <field name="transient"/>
+ </tree>
+ </field>
+ </record>
+ <record id="view_model_search" model="ir.ui.view">
+ <field name="model">ir.model</field>
+ <field name="arch" type="xml">
+ <search string="Model Description">
+ <field name="name" filter_domain="['|', ('name','ilike',self), ('model','ilike',self)]" string="Model"/>
+ <field name="model" filter_domain="[('model','ilike',self)]" string="Technical Name"/>
+ <filter string="Transient" name="transient" domain="[('transient', '=', True)]"/>
+ <separator/>
+ <filter string="Custom" name="custom" domain="[('state', '=', 'manual')]"/>
+ <filter string="Base" name="base" domain="[('state', '=', 'base')]"/>
+ </search>
+ </field>
+ </record>
+ <record id="action_model_model" model="ir.actions.act_window">
+ <field name="name">Models</field>
+ <field name="res_model">ir.model</field>
+ <field name="view_type">form</field>
+ <field name="context">{}</field>
+ <field name="view_id" ref="view_model_tree"/>
+ </record>
+ <menuitem action="action_model_model" id="ir_model_model_menu" parent="next_id_9"/>
+
+ <!-- ir model fields -->
+ <record id="view_model_fields_form" model="ir.ui.view">
+ <field name="model">ir.model.fields</field>
+ <field name="arch" type="xml">
+ <form string="Fields" duplicate="false">
+ <sheet>
+ <group>
+ <group>
+ <field name="name"/>
+ <field name="field_description"/>
+ <field name="model_id" attrs="{'readonly': [('state','!=', 'manual')]}"/>
+ </group>
+ <group>
+ <field name="ttype"/>
+ <field name="help"/>
+ </group>
+ </group>
+ <notebook>
+ <page name="base" string="Properties">
+ <group string="Base Properties">
+ <group>
+ <field name="required"/>
+ <field name="readonly"/>
+ <field name="store" groups="base.group_no_one"/>
+ <field name="index" groups="base.group_no_one"/>
+ <field name="copy" groups="base.group_no_one"/>
+ </group>
+ <group>
+ <field name="translate"
+ attrs="{'readonly': [('ttype','not in',['char','text','html'])],
+ 'invisible': [('ttype','not in',['char','text','html'])]}"/>
+ <field name="selection" placeholder="[('blue', 'Blue'),('yellow', 'Yellow')]"
+ attrs="{'required': [('ttype','in',['selection','reference'])],
+ 'readonly': [('ttype','not in',['selection','reference'])],
+ 'invisible': [('ttype','not in',['selection','reference'])]}"/>
+ <field name="size" groups="base.group_no_one"
+ attrs="{'readonly': [('ttype','not in',['char','reference'])],
+ 'invisible': [('ttype','not in',['char','reference'])]}"/>
+ <field name="relation"
+ attrs="{'required': [('ttype','in',['many2one','one2many','many2many'])],
+ 'readonly': [('ttype','not in',['many2one','one2many','many2many'])],
+ 'invisible': [('ttype','not in',['many2one','one2many','many2many'])]}"/>
+ <field name="on_delete" groups="base.group_no_one"
+ attrs="{'readonly': [('ttype','!=','many2one')],
+ 'invisible': [('ttype','!=','many2one')]}"/>
+ <field name="relation_field"
+ attrs="{'required': [('ttype','=','one2many')],
+ 'readonly': [('ttype','!=','one2many')],
+ 'invisible': [('ttype','!=','one2many')]}"/>
+ <field name="relation_table" groups="base.group_no_one"
+ attrs="{'readonly': ['|', ('ttype','!=','many2many'), ('state','!=','manual')],
+ 'invisible': ['|', ('ttype','!=','many2many'), ('state','!=','manual')]}"/>
+ <field name="column1" groups="base.group_no_one"
+ attrs="{'readonly': ['|', ('ttype','!=','many2many'), ('state','!=','manual')],
+ 'invisible': ['|', ('ttype','!=','many2many'), ('state','!=','manual')]}"/>
+ <field name="column2" groups="base.group_no_one"
+ attrs="{'readonly': ['|', ('ttype','!=','many2many'), ('state','!=','manual')],
+ 'invisible': ['|', ('ttype','!=','many2many'), ('state','!=','manual')]}"/>
+ <field name="domain" groups="base.group_no_one"
+ attrs="{'readonly': [('ttype','not in',['many2one','one2many','many2many'])],
+ 'invisible': [('ttype','not in',['many2one','one2many','many2many'])]}"/>
+ </group>
+ </group>
+ <group string="Advanced Properties" groups="base.group_no_one">
+ <field name="related"/>
+ <field name="depends" attrs="{'required': [('compute', '!=', False)] }"/>
+ <field name="compute" widget="ace" options="{'mode': 'python'}"/>
+ </group>
+ <div groups="base.group_no_one">
+ <h3>How to define a computed field</h3>
+ <p>Computed fields are defined with the fields
+ <strong>Dependencies</strong> and <strong>Compute</strong>.</p>
+ <p>The field <strong>Dependencies</strong> lists the fields that
+ the current field depends on. It is a comma-separated list of
+ field names, like <code>name, size</code>. You can also refer to
+ fields accessible through other relational fields, for instance
+ <code>partner_id.company_id.name</code>.</p>
+ <p>The field <strong>Compute</strong> is the Python code to
+ compute the value of the field on a set of records. The value of
+ the field must be assigned to each record with a dictionary-like
+ assignment.</p>
+ <pre>
+ for record in self:
+ record['size'] = len(record.name)
+</pre>
+ <p>The only predefined variables are</p>
+ <ul>
+ <li><code>self</code> (the set of records to compute)</li>
+ <li><code>datetime</code> (Python module)</li>
+ <li><code>dateutil</code> (Python module)</li>
+ <li><code>time</code> (Python module)</li>
+ </ul>
+ <p>Other features are accessible through <code>self</code>, like
+ <code>self.env</code>, etc.</p>
+ </div>
+ </page>
+ <page name="groups" string="Access Rights">
+ <field name="groups"/>
+ </page>
+ <page name="misc" string="Miscellaneous" groups="base.group_no_one">
+ <group>
+ <field name="state"/>
+ <field name="modules"/>
+ </group>
+ </page>
+ </notebook>
+ </sheet>
+ </form>
+ </field>
+ </record>
+ <record id="view_model_fields_tree" model="ir.ui.view">
+ <field name="model">ir.model.fields</field>
+ <field name="arch" type="xml">
+ <tree string="Fields" duplicate="false">
+ <field name="name"/>
+ <field name="field_description"/>
+ <field name="model_id"/>
+ <field name="ttype"/>
+ <field name="state"/>
+ </tree>
+ </field>
+ </record>
+ <record id="view_model_fields_search" model="ir.ui.view">
+ <field name="model">ir.model.fields</field>
+ <field name="arch" type="xml">
+ <search string="Fields">
+ <field name="name" filter_domain="['|', ('name','ilike',self), ('field_description','ilike',self)]" string="Field"/>
+ <filter string="Required" name="required" domain="[('required', '=', True)]"/>
+ <separator/>
+ <filter string="Readonly" name="readonly" domain="[('readonly', '=', True)]"/>
+ <separator/>
+ <filter string="Custom" name="custom" domain="[('state', '=', 'manual')]"/>
+ <filter string="Base" name="base" domain="[('state', '=', 'base')]"/>
+ <separator/>
+ <filter string="Translate" name="translate" domain="[('translate', '=', True)]"/>
+ <field name="model_id"/>
+ <field name="ttype"/>
+ <field name="required"/>
+ <field name="readonly"/>
+ <group expand="0" string="Group By">
+ <filter string="Object" name="group_by_object" domain="[]" context="{'group_by':'model_id'}"/>
+ </group>
+ </search>
+ </field>
+ </record>
+ <record id="action_model_fields" model="ir.actions.act_window">
+ <field name="name">Fields</field>
+ <field name="res_model">ir.model.fields</field>
+ <field name="view_type">form</field>
+ <field name="context">{}</field>
+ <field name="view_id" ref="view_model_fields_tree"/>
+ </record>
+ <menuitem action="action_model_fields" id="ir_model_model_fields" parent="base.next_id_9"/>
+
+ <!-- ir model data -->
+ <record model="ir.ui.view" id="view_model_data_form">
+ <field name="model">ir.model.data</field>
+ <field name="arch" type="xml">
+ <form string="External Identifiers">
+ <sheet>
+ <h1>
+ <field name="complete_name"/>
+ </h1>
+ <group>
+ <group>
+ <field name="module"/>
+ <field name="name"/>
+ <field name="noupdate"/>
+ <field name="date_update" />
+ <field name="date_init" />
+ </group>
+ <group>
+ <field name="display_name"/>
+ <field name="model"/>
+ <field name="res_id"/>
+ <field name="reference" widget="reference" string="Record"/>
+ </group>
+ </group>
+ </sheet>
+ </form>
+ </field>
+ </record>
+ <record id="view_model_data_list" model="ir.ui.view">
+ <field name="model">ir.model.data</field>
+ <field name="arch" type="xml">
+ <tree string="External Identifiers">
+ <field name="complete_name"/>
+ <field name="display_name"/>
+ <field name="model" groups="base.group_no_one"/>
+ <field name="module" invisible="1"/>
+ <field name="res_id"/>
+ </tree>
+ </field>
+ </record>
+ <record id="view_model_data_search" model="ir.ui.view">
+ <field name="model">ir.model.data</field>
+ <field name="arch" type="xml">
+ <search string="External Identifiers">
+ <field name="name" filter_domain="[('name','ilike',self)]" string="External Identifier"/>
+ <filter string="Updatable" name="updatable" domain="[('noupdate', '=', False)]"/>
+ <field name="module"/>
+ <field name="model"/>
+ <field name="res_id"/>
+ <field name="noupdate"/>
+ <group expand="0" string="Group By">
+ <filter string="Module" name="group_by_module" domain="[]" context="{'group_by':'module'}"/>
+ <filter string="Object" name="group_by_object" domain="[]" context="{'group_by':'model'}"/>
+ </group>
+ </search>
+ </field>
+ </record>
+ <record id="action_model_data" model="ir.actions.act_window">
+ <field name="name">External Identifiers</field>
+ <field name="res_model">ir.model.data</field>
+ <field name="view_type">form</field>
+ <field name="view_id" ref="view_model_data_list"/>
+ </record>
+ <menuitem id="next_id_5" name="Sequences &amp; Identifiers" parent="base.menu_custom" sequence="21" groups="base.group_no_one"/>
+ <menuitem action="action_model_data" id="ir_model_data_menu" parent="base.next_id_5"
+ groups="base.group_no_one"/>
+
+ <!-- ir model contraints -->
+ <record model="ir.ui.view" id="view_model_constraint_form">
+ <field name="model">ir.model.constraint</field>
+ <field name="arch" type="xml">
+ <form string="Model Constraints">
+ <group col="4">
+ <field name="type"/>
+ <field name="name"/>
+ <field name="module"/>
+ <field name="model"/>
+ <newline/>
+ <field name="date_update" />
+ <field name="date_init" />
+ </group>
+ </form>
+ </field>
+ </record>
+ <record id="view_model_constraint_list" model="ir.ui.view">
+ <field name="model">ir.model.constraint</field>
+ <field name="arch" type="xml">
+ <tree string="Model Constraints">
+ <field name="type"/>
+ <field name="name"/>
+ <field name="module"/>
+ <field name="model"/>
+ </tree>
+ </field>
+ </record>
+ <record id="action_model_constraint" model="ir.actions.act_window">
+ <field name="name">Model Constraints</field>
+ <field name="res_model">ir.model.constraint</field>
+ <field name="view_type">form</field>
+ <field name="view_id" ref="view_model_constraint_list"/>
+ </record>
+ <menuitem action="action_model_constraint" id="ir_model_constraint_menu" parent="base.next_id_9"
+ groups="base.group_no_one"/>
+
+ <!-- ir model relations -->
+ <record model="ir.ui.view" id="view_model_relation_form">
+ <field name="model">ir.model.relation</field>
+ <field name="arch" type="xml">
+ <form string="ManyToMany Relations">
+ <group col="4">
+ <field name="name"/>
+ <field name="module"/>
+ <field name="model"/>
+ <newline/>
+ <field name="date_update" />
+ <field name="date_init" />
+ </group>
+ </form>
+ </field>
+ </record>
+ <record id="view_model_relation_list" model="ir.ui.view">
+ <field name="model">ir.model.relation</field>
+ <field name="arch" type="xml">
+ <tree string="ManyToMany Relations">
+ <field name="name"/>
+ <field name="module"/>
+ <field name="model"/>
+ </tree>
+ </field>
+ </record>
+ <record id="action_model_relation" model="ir.actions.act_window">
+ <field name="name">ManyToMany Relations</field>
+ <field name="res_model">ir.model.relation</field>
+ <field name="view_type">form</field>
+ <field name="view_id" ref="view_model_relation_list"/>
+ </record>
+ <menuitem action="action_model_relation" id="ir_model_relation_menu" parent="base.next_id_9"
+ groups="base.group_no_one"/>
+
+ <!-- ir.model.access -->
+ <record id="ir_access_view_tree" model="ir.ui.view">
+ <field name="model">ir.model.access</field>
+ <field name="arch" type="xml">
+ <tree string="Access Rights" editable="top"
+ decoration-warning="not group_id and
+ (perm_read or perm_write or
+ perm_create or perm_unlink)">
+ <field name="name"/>
+ <field name="model_id"/>
+ <field name="group_id"/>
+ <field name="perm_read"/>
+ <field name="perm_write"/>
+ <field name="perm_create"/>
+ <field name="perm_unlink"/>
+ </tree>
+ </field>
+ </record>
+ <record id="ir_access_view_form" model="ir.ui.view">
+ <field name="model">ir.model.access</field>
+ <field name="arch" type="xml">
+ <form string="Access Rights">
+ <sheet>
+ <group col="4">
+ <field name="name"/>
+ <field name="model_id"/>
+ <field name="group_id"/>
+ <field name="active"/>
+ </group>
+ <group string="Access" col="4">
+ <field name="perm_read"/>
+ <field name="perm_write"/>
+ <field name="perm_create"/>
+ <field name="perm_unlink"/>
+ </group>
+ </sheet>
+ </form>
+ </field>
+ </record>
+ <record id="ir_access_view_search" model="ir.ui.view">
+ <field name="model">ir.model.access</field>
+ <field name="arch" type="xml">
+ <search string="Access Rights">
+ <field name="name" string="Access Rights"/>
+ <filter string="Global" name="global" domain="[('group_id','=',False)]"/>
+ <separator/>
+ <filter string="Full Access" name="full_access" domain="[('perm_read','=',True),('perm_write','=',True),('perm_create','=',True),('perm_unlink','=',True)]"/>
+ <filter string="Read Access" name="read_access" domain="[('perm_read','=',True)]"/>
+ <filter string="Write Access" name="write_access" domain="[('perm_write','=',True)]"/>
+ <field name="model_id"/>
+ <field name="group_id"/>
+ <group expand="0" string="Group By" colspan="11" col="11" groups="base.group_no_one">
+ <filter string="Group" name="group" domain="[]" context="{'group_by':'group_id'}"/>
+ <filter string="Object" name="group_by_object" domain="[]" context="{'group_by':'model_id'}"/>
+ </group>
+ </search>
+ </field>
+ </record>
+ <record id="ir_access_act" model="ir.actions.act_window">
+ <field name="name">Access Rights</field>
+ <field name="res_model">ir.model.access</field>
+ <field name="view_type">form</field>
+ <field name="view_id" ref="ir_access_view_tree"/>
+ <field name="search_view_id" ref="ir_access_view_search"/>
+ </record>
+ <menuitem action="ir_access_act" id="menu_ir_access_act" parent="base.menu_security"/>
+
+</odoo>
diff --git a/odoo/addons/base/views/ir_property_views.xml b/odoo/addons/base/views/ir_property_views.xml
new file mode 100644
index 00000000000..5b12a53ea31
--- /dev/null
+++ b/odoo/addons/base/views/ir_property_views.xml
@@ -0,0 +1,67 @@
+<?xml version="1.0" encoding="utf-8"?>
+<odoo>
+ <data>
+ <!-- Properties -->
+ <record id="ir_property_view_search" model="ir.ui.view">
+ <field name="name">ir.property.search</field>
+ <field name="model">ir.property</field>
+ <field name="arch" type="xml">
+ <search string="Parameters">
+ <field name="name" string="Name"/>
+ <filter string="Generic" name="generic"
+ help="Parameters that are used by all resources."
+ domain="[('res_id','=',False)]"/>
+ <field name="fields_id"/>
+ <field name="company_id" groups="base.group_multi_company"/>
+ </search>
+ </field>
+ </record>
+ <record id="ir_property_view" model="ir.ui.view">
+ <field name="name">ir.property.form</field>
+ <field name="model">ir.property</field>
+ <field name="arch" type="xml">
+ <form string="Parameters">
+ <sheet>
+ <group col="4">
+ <field name="name"/>
+ <field name="company_id" groups="base.group_multi_company"/>
+ <newline/>
+ <field name="fields_id"/>
+ <field name="type"/>
+ <field name="res_id"/>
+ </group>
+ <group>
+ <field name="value_integer" string="Value" attrs="{'invisible' : [('type', 'not in', ('integer', 'boolean'))]}"/>
+ <field name="value_float" string="Value" attrs="{'invisible' : [('type', '!=', 'float')]}"/>
+ <field name="value_datetime" string="Value" attrs="{'invisible' : [('type', 'not in', ('date', 'datetime'))]}"/>
+ <field name="value_text" string="Value" attrs="{'invisible' : [('type', 'not in', ('char', 'text', 'selection'))]}"/>
+ <field name="value_reference" string="Value" attrs="{'invisible' : [('type', '!=', 'many2one')]}"/>
+ <field name="value_binary" string="Value" attrs="{'invisible' : [('type', '!=', 'binary')]}"/>
+ </group>
+ </sheet>
+ </form>
+ </field>
+ </record>
+ <record id="ir_property_view_tree" model="ir.ui.view">
+ <field name="name">ir.property.tree</field>
+ <field name="model">ir.property</field>
+ <field name="arch" type="xml">
+ <tree string="Parameters">
+ <field name="name"/>
+ <field name="company_id" groups="base.group_multi_company"/>
+ <field name="fields_id"/>
+ <field name="res_id"/>
+ <field name="type"/>
+ </tree>
+ </field>
+ </record>
+ <record id="ir_property_form" model="ir.actions.act_window">
+ <field name="name">Company Properties</field>
+ <field name="type">ir.actions.act_window</field>
+ <field name="res_model">ir.property</field>
+ <field name="view_type">form</field>
+ <field name="view_id" ref="ir_property_view_tree"/>
+ </record>
+ <menuitem id="menu_ir_property_form_all" parent="menu_ir_property" action="ir_property_form"/>
+ </data>
+</odoo>
diff --git a/odoo/addons/base/views/ir_qweb_widget_templates.xml b/odoo/addons/base/views/ir_qweb_widget_templates.xml
new file mode 100644
index 00000000000..63057f1a25a
--- /dev/null
+++ b/odoo/addons/base/views/ir_qweb_widget_templates.xml
@@ -0,0 +1,46 @@
+<odoo>
+<template id="contact_name">
+ <div t-if="'name' in fields">
+ <t t-if="object.name">
+ <span itemprop="name" t-esc="name"/>
+ </t>
+ <t t-if="not object.name and object.parent_name">
+ <span itemprop="name" t-esc="object.parent_name"/>
+ </t>
+ <div t-if="options.get('country_image') and 'country_id' in fields and object.country_id and object.country_id.image">
+ <span t-field="object.country_id.image" t-options='{"widget": "image", "class": "country_flag"}'/>
+ </div>
+ </div>
+</template>
+<template id="contact">
+ <address t-ignore="true" class="mb0" itemscope="itemscope" itemtype="http://schema.org/Organization">
+ <div t-if="not (('name' in fields) or (address and 'address' in fields) or (city and 'city' in fields) or (mobile and 'mobile' in fields) or (website and 'website' in fields) or (email and 'email' in fields))" class="css_non_editable_mode_hidden">
+ --<span class="text-muted" t-esc="name"/>--
+ </div>
+ <t t-if="object.country_id.name_position != 'after'">
+ <t t-call="base.contact_name"/>
+ </t>
+ <div itemprop="address" itemscope="itemscope" itemtype="http://schema.org/PostalAddress">
+ <div t-if="address and 'address' in fields">
+ <i t-if="not options.get('no_marker')" class='fa fa-map-marker fa-fw'/> <span itemprop="streetAddress" t-raw="address.replace('\n', options.get('no_tag_br') and ', ' or ('&lt;br/&gt;%s' % ('' if options.get('no_marker') else '&amp;nbsp; &amp;nbsp; ')))"/>
+ </div>
+ <div t-if="city and 'city' in fields">
+ <i t-if="not options.get('no_marker')" class='fa fa-map-marker fa-fw'/>
+ <span itemprop="addressLocality" t-raw="city"/>,
+ <span itemprop="addressCountry" t-raw="country_id"/>
+ </div>
+ <div t-if="phone and 'phone' in fields"><i t-if="not options.get('no_marker') or options.get('phone_icons')" class='fa fa-phone fa-fw'/> <span itemprop="telephone" t-esc="phone"/></div>
+ <div t-if="mobile and 'mobile' in fields"><i t-if="not options.get('no_marker') or options.get('phone_icons')" class='fa fa-mobile fa-fw'/> <span itemprop="telephone" t-esc="mobile"/></div>
+ <div t-if="fax and 'fax' in fields"><i t-if="not options.get('no_marker') or options.get('phone_icons')" class='fa fa-fax fa-fw'/> <span itemprop="faxNumber" t-esc="fax"/></div>
+ <div t-if="website and 'website' in fields">
+ <i t-if="not options.get('no_marker')" class='fa fa-globe'/>
+ <a t-att-href="website and '%s%s' % ('http://' if '://' not in website else '',website)"><span itemprop="website" t-esc="website"/></a>
+ </div>
+ <div t-if="email and 'email' in fields"><i t-if="not options.get('no_marker')" class='fa fa-envelope fa-fw'/> <span itemprop="email" t-esc="email"/></div>
+ </div>
+ <t t-if="object.country_id and object.country_id.name_position == 'after'">
+ <t t-call="base.contact_name"/>
+ </t>
+ </address>
+</template>
+</odoo>
diff --git a/odoo/addons/base/views/ir_rule_views.xml b/odoo/addons/base/views/ir_rule_views.xml
new file mode 100644
index 00000000000..c4f0ca99967
--- /dev/null
+++ b/odoo/addons/base/views/ir_rule_views.xml
@@ -0,0 +1,106 @@
+<?xml version="1.0" encoding="utf-8"?>
+<odoo>
+ <!-- Rules -->
+ <record id="view_rule_form" model="ir.ui.view">
+ <field name="model">ir.rule</field>
+ <field name="arch" type="xml">
+ <form string="Record rules">
+ <sheet>
+ <div class="oe_button_box" name="button_box">
+ <button name="toggle_active" type="object" class="oe_stat_button" icon="fa-archive">
+ <field name="active" widget="boolean_button"/>
+ </button>
+ </div>
+ <group>
+ <group string="General">
+ <field name="name"/>
+ <field name="model_id"/>
+ </group>
+ <group col="4" string="Access Rights">
+ <field name="perm_read"/>
+ <field name="perm_write"/>
+ <field name="perm_create"/>
+ <field name="perm_unlink"/>
+ </group>
+ </group>
+ <separator string="Rule Definition (Domain Filter)"/>
+ <field name="domain_force" colspan="2" nolabel="1"/>
+ <group string="Groups (no group = global)">
+ <field name="global"/>
+ <field name="groups" nolabel="1" colspan="4"/>
+ </group>
+ <i class="fa fa-info fa-3x text-info pull-left"/>
+ <h3>Interaction between rules</h3>
+ <div>
+ <p>
+ Global rules (non group-specific) are restrictions, and cannot be bypassed.
+ Group-specific rules grant additional permissions, but are constrained within the bounds of global ones.
+ The first group rules restrict further the global rules, but can be relaxed by additional group rules.
+ </p>
+ <p>
+ Detailed algorithm:
+ <ol>
+ <li>Global rules are combined together with a logical AND operator, and with the result of the following steps</li>
+ <li>Group-specific rules are combined together with a logical OR operator</li>
+ <li>If user belongs to several groups, the results from step 2 are combined with logical OR operator</li>
+ </ol>
+ </p>
+ <p>Example: GLOBAL_RULE_1 AND GLOBAL_RULE_2 AND ( (GROUP_A_RULE_1 OR GROUP_A_RULE_2) OR (GROUP_B_RULE_1 OR GROUP_B_RULE_2) )</p>
+ </div>
+ </sheet>
+ </form>
+ </field>
+ </record>
+ <record id="view_rule_tree" model="ir.ui.view">
+ <field name="model">ir.rule</field>
+ <field name="arch" type="xml">
+ <tree string="Record Rules" decoration-info="global">
+ <field name="name"/>
+ <field name="model_id"/>
+ <field name="global" invisible="1"/>
+ <field name="groups" widget="many2many_tags" options="{'no_create':True}"/>
+ <field name="domain_force"/>
+ <field name="perm_read"/>
+ <field name="perm_write"/>
+ <field name="perm_create"/>
+ <field name="perm_unlink"/>
+ </tree>
+ </field>
+ </record>
+ <record id="view_rule_search" model="ir.ui.view">
+ <field name="model">ir.rule</field>
+ <field name="arch" type="xml">
+ <search string="Record Rules">
+ <field name="name" string="Record Rule"/>
+ <filter string="Global" name="global" domain="[('global','=',True)]"/>
+ <separator/>
+ <filter string="Full Access Right" name="full_access_right" domain="[('perm_read','=',True),('perm_write','=',True),('perm_create','=',True),('perm_unlink','=',True)]"/>
+ <filter string="Read Access Right" name="read_access_right" domain="[('perm_read','=',True)]"/>
+ <filter string="Write Access Right" name="write_access_right" domain="[('perm_write','=',True)]"/>
+ <filter string="Create Access Right" name="create_access_right" domain="[('perm_create','=',True)]"/>
+ <filter string="Delete Access Right" name="delete_access_right" domain="[('perm_unlink','=',True)]"/>
+ <field name="model_id"/>
+ <field name="groups"/>
+ </search>
+ </field>
+ </record>
+
+ <record id="action_rule" model="ir.actions.act_window">
+ <field name="name">Record Rules</field>
+ <field name="res_model">ir.rule</field>
+ <field name="view_type">form</field>
+ <field name="view_id" ref="view_rule_tree"/>
+ <field name="search_view_id" ref="view_rule_search"/>
+ </record>
+ <menuitem action="action_rule" id="menu_action_rule" parent="base.menu_security" sequence="3"/>
+
+
+ <record id="property_rule" model="ir.rule">
+ <field name="name">Property multi-company</field>
+ <field name="model_id" ref="model_ir_property"/>
+ <field eval="True" name="global"/>
+ <field name="domain_force">['|',('company_id','child_of',[user.company_id.id]),('company_id','=',False)]</field>
+ </record>
+
+
+</odoo>
diff --git a/odoo/addons/base/views/ir_sequence_views.xml b/odoo/addons/base/views/ir_sequence_views.xml
new file mode 100644
index 00000000000..9bfaf30850c
--- /dev/null
+++ b/odoo/addons/base/views/ir_sequence_views.xml
@@ -0,0 +1,107 @@
+<?xml version="1.0" encoding="utf-8"?>
+<odoo>
+ <!-- Sequences -->
+ <record id="sequence_view" model="ir.ui.view">
+ <field name="model">ir.sequence</field>
+ <field name="arch" type="xml">
+ <form string="Sequences">
+ <sheet>
+ <group>
+ <group>
+ <field name="name"/>
+ <field name="implementation"/>
+ </group>
+ <group>
+ <field name="code"/>
+ <field name="active"/>
+ <field name="company_id" groups="base.group_multi_company"/>
+ </group>
+ </group>
+ <notebook>
+ <page string="Sequence">
+ <group>
+ <group>
+ <field name="prefix"/>
+ <field name="suffix"/>
+ <field name="use_date_range"/>
+ </group>
+ <group>
+ <field name="padding"/>
+ <field name="number_increment"/>
+ <field name="number_next_actual" attrs="{'invisible': [('use_date_range', '=', True)]}"/>
+ </group>
+ </group>
+ <field name="date_range_ids" attrs="{'invisible': [('use_date_range', '=', False)]}">
+ <tree string="Sequences" editable="top">
+ <field name="date_from"/>
+ <field name="date_to"/>
+ <field name="number_next_actual"/>
+ </tree>
+ </field>
+ <group col="3" string="Legend (for prefix, suffix)">
+ <group>
+ <label colspan="2" string="Current Year with Century: %%(year)s"/>
+ <label colspan="2" string="Current Year without Century: %%(y)s"/>
+ <label colspan="2" string="Month: %%(month)s"/>
+ <label colspan="2" string="Day: %%(day)s"/>
+ </group>
+ <group>
+ <label colspan="2" string="Day of the Year: %%(doy)s"/>
+ <label colspan="2" string="Week of the Year: %%(woy)s"/>
+ <label colspan="2" string="Day of the Week (0:Monday): %%(weekday)s"/>
+ </group>
+ <group>
+ <label colspan="2" string="Hour 00->24: %%(h24)s"/>
+ <label colspan="2" string="Hour 00->12: %%(h12)s"/>
+ <label colspan="2" string="Minute: %%(min)s"/>
+ <label colspan="2" string="Second: %%(sec)s"/>
+ </group>
+ </group>
+ <group attrs="{'invisible': [('use_date_range', '=', False)]}">
+ <div>
+ When subsequences per date range are used, you can prefix variables with 'range_'
+ to use the beginning of the range instead of the current date, e.g. %%(range_year)s instead of %%(year)s.
+ </div>
+ </group>
+ </page>
+ </notebook>
+ </sheet>
+ </form>
+ </field>
+ </record>
+ <record id="sequence_view_tree" model="ir.ui.view">
+ <field name="model">ir.sequence</field>
+ <field name="arch" type="xml">
+ <tree string="Sequences">
+ <field name="code"/>
+ <field name="name"/>
+ <field name="prefix"/>
+ <field name="padding"/>
+ <field name="company_id" groups="base.group_multi_company"/>
+ <field name="number_next_actual"/>
+ <field name="number_increment"/>
+ <field name="implementation"/>
+ </tree>
+ </field>
+ </record>
+ <record id="view_sequence_search" model="ir.ui.view">
+ <field name="model">ir.sequence</field>
+ <field name="arch" type="xml">
+ <search string="Sequences">
+ <field name="name" string="Sequence"/>
+ <field name="code"/>
+ <field name="company_id" groups="base.group_multi_company"/>
+ </search>
+ </field>
+ </record>
+ <record id="ir_sequence_form" model="ir.actions.act_window">
+ <field name="name">Sequences</field>
+ <field name="type">ir.actions.act_window</field>
+ <field name="res_model">ir.sequence</field>
+ <field name="view_type">form</field>
+ <field name="view_id" ref="sequence_view_tree"/>
+ <field name="context">{'active_test': False}</field>
+ </record>
+ <menuitem action="ir_sequence_form" id="menu_ir_sequence_form" parent="next_id_5"/>
+
+</odoo>
diff --git a/odoo/addons/base/views/ir_translation_views.xml b/odoo/addons/base/views/ir_translation_views.xml
new file mode 100644
index 00000000000..9e4937a74b1
--- /dev/null
+++ b/odoo/addons/base/views/ir_translation_views.xml
@@ -0,0 +1,89 @@
+<?xml version="1.0" encoding="utf-8"?>
+<odoo>
+ <!-- Translations -->
+ <record id="view_translation_search" model="ir.ui.view">
+ <field name="model">ir.translation</field>
+ <field name="arch" type="xml">
+ <search string="Translations">
+ <filter string="Untranslated" name="untranslated"
+ domain="['|','|',('state','=','to_translate'),('value', '=', False),('value','=','')]"/>
+ <filter name="openerp-web"
+ string="Web-only translations"
+ domain="[('comments', 'like', 'openerp-web')]"/>
+ <field name="lang"/>
+ <field name="source"/>
+ <field name="value"/>
+ <field name="name" filter_domain="('|', ('name', '=', self), ('name', 'ilike', self + ','))" string="Model"/>
+ <field name="res_id" filter_domain="('&amp;', ('name', '=', 'ir.ui.view,arch_db'), ('res_id', '=', self))" string="View ID"/>
+ </search>
+ </field>
+ </record>
+
+ <record id="view_translation_form" model="ir.ui.view">
+ <field name="model">ir.translation</field>
+ <field name="arch" type="xml">
+ <form string="Translations">
+ <header>
+ <field name="state" widget="statusbar" nolabel="1"/>
+ </header>
+ <sheet>
+ <group>
+ <group>
+ <field name="name"/>
+ <field name="lang"/>
+ </group>
+ <group>
+ <field name="module" groups="base.group_no_one"/>
+ <field name="type"/>
+ <field name="res_id"/>
+ </group>
+ <group string="Source Term">
+ <field name="source" nolabel="1" height="400"/>
+ </group>
+ <group string="Translation">
+ <field name="value" nolabel="1" height="400"/>
+ </group>
+ <group string="Comments">
+ <field name="comments" nolabel="1" height="100"/>
+ </group>
+ </group>
+ </sheet>
+ </form>
+ </field>
+ </record>
+ <record id="view_translation_tree" model="ir.ui.view">
+ <field name="model">ir.translation</field>
+ <field name="arch" type="xml">
+ <tree string="Translations" editable="top">
+ <field name="source"/>
+ <field name="value"/>
+ <field name="name"/>
+ <field name="lang"/>
+ <field name="type"/>
+ <field name="state"/>
+ </tree>
+ </field>
+ </record>
+
+ <record id="view_translation_dialog_tree" model="ir.ui.view">
+ <field name="model">ir.translation</field>
+ <field name="arch" type="xml">
+ <tree string="Translations" editable="top" create="false">
+ <field name="lang" readonly="1"/>
+ <field name="source"/>
+ <field name="value"/>
+ <field name="state"/>
+ </tree>
+ </field>
+ </record>
+
+ <record id="action_translation" model="ir.actions.act_window">
+ <field name="name">Translated Terms</field>
+ <field name="res_model">ir.translation</field>
+ <field name="view_type">form</field>
+ <field name="view_id" ref="view_translation_tree"/>
+ </record>
+
+ <menuitem action="action_translation" id="menu_action_translation" parent="base.menu_translation_app" />
+
+</odoo>
diff --git a/odoo/addons/base/views/ir_ui_menu_views.xml b/odoo/addons/base/views/ir_ui_menu_views.xml
new file mode 100644
index 00000000000..8a42b511e66
--- /dev/null
+++ b/odoo/addons/base/views/ir_ui_menu_views.xml
@@ -0,0 +1,73 @@
+<?xml version="1.0" encoding="utf-8"?>
+<odoo>
+
+ <record id="edit_menu_access" model="ir.ui.view">
+ <field name="model">ir.ui.menu</field>
+ <field name="arch" type="xml">
+ <form string="Menu">
+ <sheet>
+ <group>
+ <group>
+ <field name="name"/>
+ <field name="parent_id" groups="base.group_no_one"/>
+ <field name="sequence" groups="base.group_no_one"/>
+ </group>
+ <group groups="base.group_no_one">
+ <field name="complete_name"/>
+ <field name="action"/>
+ <field name="web_icon"/>
+ <field name="web_icon_data"/>
+ </group>
+ </group>
+ <notebook>
+ <page string="Access Rights">
+ <field name="groups_id"/>
+ </page>
+ <page string="Submenus" groups="base.group_no_one">
+ <!-- Note: make sure you have 'ir.ui.menu.full_list'
+ in the context to see all submenus! -->
+ <field name="child_id"
+ context="{'default_parent_id': active_id}">
+ <tree string="Menu">
+ <field name="sequence"/>
+ <field icon="icon" name="name" string="Menu"/>
+ </tree>
+ </field>
+ </page>
+ </notebook>
+ </sheet>
+ </form>
+ </field>
+ </record>
+ <record id="edit_menu" model="ir.ui.view">
+ <field name="model">ir.ui.menu</field>
+ <field eval="8" name="priority"/>
+ <field name="arch" type="xml">
+ <tree string="Menu">
+ <field name="sequence"/>
+ <field icon="icon" name="complete_name" string="Menu"/>
+ </tree>
+ </field>
+ </record>
+ <record id="edit_menu_access_search" model="ir.ui.view">
+ <field name="name">ir.ui.menu.search</field>
+ <field name="model">ir.ui.menu</field>
+ <field name="arch" type="xml">
+ <search string="Menu">
+ <field name="name" string="Menu"/>
+ <field name="parent_id"/>
+ </search>
+ </field>
+ </record>
+ <record id="grant_menu_access" model="ir.actions.act_window">
+ <field name="name">Menu Items</field>
+ <field name="res_model">ir.ui.menu</field>
+ <field name="view_type">form</field>
+ <field name="view_id" ref="edit_menu"/>
+ <field name="context">{'ir.ui.menu.full_list':True}</field>
+ <field name="search_view_id" ref="edit_menu_access_search"/>
+ <field name="help">Manage and customize the items available and displayed in your Odoo system menu. You can delete an item by clicking on the box at the beginning of each line and then delete it through the button that appeared. Items can be assigned to specific groups in order to make them accessible to some users within the system.</field>
+ </record>
+ <menuitem action="grant_menu_access" id="menu_grant_menu_access" parent="base.next_id_2" sequence="1"/>
+
+</odoo>
diff --git a/odoo/addons/base/views/ir_ui_view_views.xml b/odoo/addons/base/views/ir_ui_view_views.xml
new file mode 100644
index 00000000000..58f3a70fd42
--- /dev/null
+++ b/odoo/addons/base/views/ir_ui_view_views.xml
@@ -0,0 +1,139 @@
+<?xml version="1.0" encoding="utf-8"?>
+<odoo>
+ <!-- View -->
+ <record id="view_view_form" model="ir.ui.view">
+ <field name="model">ir.ui.view</field>
+ <field name="arch" type="xml">
+ <form string="Views">
+ <sheet>
+ <group>
+ <group>
+ <field name="name"/>
+ <field name="type"/>
+ <field name="model"/>
+ <field name="priority"/>
+ <field name="active"/>
+ </group>
+ <group groups="base.group_no_one">
+ <field name="field_parent"/>
+ <field name="inherit_id"/>
+ <field name="mode"/>
+ <field name="model_data_id"/>
+ <field name="xml_id"/>
+ </group>
+ </group>
+ <notebook>
+ <page string="Architecture">
+ <button type="object" name="open_translations"
+ string="Edit Translations" class="oe_link oe_right"/>
+ <field name="arch_base" widget="ace" options="{'mode': 'xml'}"/>
+ </page>
+ <page string="Access Rights">
+ <field name="groups_id"/>
+ </page>
+ <page name="inherit_children" string="Inherited Views">
+ <field name="inherit_children_ids" context="{'default_model':model,'default_type':type,'default_inherit_id':active_id,'default_mode':'extension'}">
+ <tree default_order="priority,id">
+ <field name="id"/>
+ <field name="priority"/>
+ <field name="name"/>
+ <field name="xml_id"/>
+ </tree>
+ </field>
+ </page>
+ </notebook>
+ </sheet>
+ </form>
+ </field>
+ </record>
+ <record id="view_view_tree" model="ir.ui.view">
+ <field name="model">ir.ui.view</field>
+ <field name="arch" type="xml">
+ <tree string="Views">
+ <field name="priority" string="Sequence" widget="handle"/>
+ <field name="name"/>
+ <field name="type"/>
+ <field name="model"/>
+ <field name="xml_id" groups="base.group_no_one"/>
+ <field name="inherit_id"/>
+ </tree>
+ </field>
+ </record>
+ <record id="view_view_search" model="ir.ui.view">
+ <field name="model">ir.ui.view</field>
+ <field name="arch" type="xml">
+ <search string="Views">
+ <field name="name" filter_domain="['|', '|', ('name','ilike',self), ('model','ilike',self), ('model_data_id','ilike',self)]" string="View"/>
+ <filter string="Active" name="active" domain="[('active', '=',True)]"/>
+ <filter string="Inactive" name="inactive" domain="[('active', '=',False)]"/>
+ <separator/>
+ <filter string="Form" name="form" domain="[('type', '=','form')]"/>
+ <filter string="Tree" name="tree" domain="[('type', '=', 'tree')]"/>
+ <filter string="Kanban" name="kanban" domain="[('type', '=', 'kanban')]"/>
+ <filter string="Search" name="search" domain="[('type', '=', 'search')]"/>
+ <filter string="QWeb" name="qweb" domain="[('type', '=', 'qweb')]"/>
+ <field name="model"/>
+ <field name="inherit_id"/>
+ <field name="type"/>
+ <field name="arch_db" string="View Architecture"/>
+ <group expand="0" string="Group By">
+ <filter string="Object" name="object" domain="[]" context="{'group_by':'model'}"/>
+ <filter string="Type" name="type" domain="[]" context="{'group_by':'type'}"/>
+ <filter string="Inherit" name="inherit" domain="[]" context="{'group_by':'inherit_id'}"/>
+ </group>
+ </search>
+ </field>
+ </record>
+ <record id="action_ui_view" model="ir.actions.act_window">
+ <field name="name">Views</field>
+ <field name="type">ir.actions.act_window</field>
+ <field name="res_model">ir.ui.view</field>
+ <field name="view_id" ref="view_view_tree"/>
+ <field name="context">{'search_default_active': 1}</field>
+ <field name="help">Views allows you to personalize each view of Odoo. You can add new fields, move fields, rename them or delete the ones that you do not need.</field>
+ </record>
+ <menuitem action="action_ui_view" id="menu_action_ui_view" parent="base.next_id_2" sequence="2"/>
+
+ <!-- View customizations -->
+ <record id="view_view_custom_form" model="ir.ui.view">
+ <field name="model">ir.ui.view.custom</field>
+ <field name="arch" type="xml">
+ <form string="Customized Views">
+ <sheet>
+ <group col="4">
+ <field name="user_id"/>
+ <field name="ref_id"/>
+ <separator string="View Architecture" colspan="4" />
+ <field name="arch" colspan="4" nolabel="1"/>
+ </group>
+ </sheet>
+ </form>
+ </field>
+ </record>
+ <record id="view_view_custom_tree" model="ir.ui.view">
+ <field name="model">ir.ui.view.custom</field>
+ <field name="arch" type="xml">
+ <tree string="Customized Views">
+ <field name="user_id"/>
+ <field name="ref_id"/>
+ </tree>
+ </field>
+ </record>
+ <record id="view_view_custom_search" model="ir.ui.view">
+ <field name="model">ir.ui.view.custom</field>
+ <field name="arch" type="xml">
+ <search string="Customized Views">
+ <field name="user_id"/>
+ <field name="ref_id"/>
+ </search>
+ </field>
+ </record>
+ <record id="action_ui_view_custom" model="ir.actions.act_window">
+ <field name="name">Customized Views</field>
+ <field name="type">ir.actions.act_window</field>
+ <field name="res_model">ir.ui.view.custom</field>
+ <field name="help" type="html"><p class="oe_view_nocontent_create">Click here to create a customized view</p><p>Customized views are used when users reorganize the content of their dashboard views (via web client)</p></field>
+ </record>
+ <menuitem id="menu_action_ui_view_custom" action="action_ui_view_custom" parent="base.next_id_2" sequence="3"/>
+
+</odoo>