合并企业版代码(未测试,先提交到测试分支)

This commit is contained in:
qihao.gong@jikimo.com
2023-04-14 17:42:23 +08:00
parent 7a7b3d7126
commit d28525526a
1300 changed files with 513579 additions and 5426 deletions

View File

@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<record id="action_web_studio_app_creator" model="ir.actions.client">
<field name="name">Studio App Creator</field>
<field name="tag">action_web_studio_app_creator</field>
</record>
</odoo>

View File

@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data>
<!-- Reports -->
<template id="web_studio.report_layout" inherit_id="web.report_layout">
<xpath expr="//head" position="inside">
<t t-if="studio" t-call-assets="web_studio.report_assets"/>
</xpath>
</template>
</data>
</odoo>

View File

@@ -0,0 +1,31 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<record id="simplified_form_view_import_module" model="ir.ui.view">
<field name="name">base.import.module.form.simplified</field>
<field name="model">base.import.module</field>
<field name="priority">1</field>
<field name="arch" type="xml">
<form>
<field name="state" invisible="1"/>
<group states="init" col="4">
<field name="module_file" string="Module file (.zip)" colspan="4"/>
<field name="force" groups="base.group_no_one"/>
</group>
<group states="done" col="4">
<field name="import_message" colspan="4" nolabel="1" readonly="1"/>
</group>
<footer>
<div states="init">
<button name="import_module" string="Import" type="object" class="btn-primary" data-hotkey="q"/>
<button special="cancel" data-hotkey="z" string="Cancel" class="btn-secondary"/>
</div>
<div states="done">
<button special="cancel" data-hotkey="z" string="Close" class="btn-primary"/>
</div>
</footer>
</form>
</field>
</record>
</odoo>

View File

@@ -0,0 +1,41 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<record id="act_report_xml_view_kanban" model="ir.ui.view">
<field name="name">ir.actions.report.kanban</field>
<field name="model">ir.actions.report</field>
<field name="arch" type="xml">
<kanban class="o_web_studio_report_kanban" js_class="studio_report_kanban">
<field name="name"/>
<field name="report_name"/>
<field name="report_type"/>
<templates>
<t t-name="kanban-box">
<div class="oe_kanban_global_click">
<div class="o_dropdown_kanban dropdown" t-if="!selection_mode">
<a role="button" class="dropdown-toggle btn" data-bs-toggle="dropdown" href="#" aria-label="Dropdown menu" title="Dropdown menu"><span class="fa fa-ellipsis-v"/></a>
<div class="dropdown-menu" role="menu">
<t t-if="widget.deletable">
<a role="menuitem" type="delete" class="dropdown-item">Delete</a>
</t>
<a role="menuitem" class="dropdown-item" type="object" name="copy_report_and_template">Duplicate</a>
</div>
</div>
<div class="o_kanban_image">
<div t-if="record.report_type.value == 'PDF'" class="o_image" data-mimetype="application/pdf" role="img" aria-label="PDF file" title="PDF file"/>
<div t-else="1" class="o_image" data-mimetype="text/file" role="img" aria-label="File" title="File"/>
</div>
<div class="oe_kanban_details">
<strong>
<field name="name"/>
</strong>
<small><field name="report_name" groups="base.group_no_one"/></small>
</div>
</div>
</t>
</templates>
</kanban>
</field>
</record>
</odoo>

View File

@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<record model="ir.ui.view" id="studio_customizations_filter">
<field name="name">web_studio.customizations_filter</field>
<field name="model">ir.model.data</field>
<field name="inherit_id" ref="base.view_model_data_search"/>
<field name="arch" type="xml">
<field name="module" position="after">
<filter string="Studio Customizations" name="studio_customiz" domain="[('studio', '=', True)]"/>
</field>
</field>
</record>
</odoo>

View File

@@ -0,0 +1,155 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<!-- Approval Entries -->
<record id="studio_approval_entry_tree_view" model="ir.ui.view">
<field name="name">studio.approval.entry.tree</field>
<field name="model">studio.approval.entry</field>
<field name="arch" type="xml">
<tree>
<field name="name"/>
<field name="write_date"/>
</tree>
</field>
</record>
<record id="studio_approval_entry_form_view" model="ir.ui.view">
<field name="name">studio.approval.entry.form</field>
<field name="model">studio.approval.entry</field>
<field name="arch" type="xml">
<form string="Studio Approval Entry">
<sheet>
<div class="oe_title">
<h1><field name="name"/></h1>
</div>
<group>
<group>
<field name="user_id"/>
<field name="rule_id"/>
</group>
<group>
<field name="model"/>
<field name="res_id"/>
<field name="reference" widget="reference" string="Record"/>
</group>
</group>
</sheet>
</form>
</field>
</record>
<record id="studio_approval_entry_search_view" model="ir.ui.view">
<field name="name">studio.approval.entry.search</field>
<field name="model">studio.approval.entry</field>
<field name="arch" type="xml">
<search string="Approval Entries">
<field name="name"/>
<field name="model"/>
<field name="res_id"/>
<field name="user_id"/>
<field name="rule_id" invisible="1"/>
<separator/>
<filter string="My entries" name="my_entries" domain="[('user_id','=',uid)]"/>
<separator/>
<filter string="Approved" name="approved" domain="[('approved','=', True)]"/>
<filter string="Rejected" name="rejected" domain="[('user_id','=', False)]"/>
<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'}"/>
<filter string="Method" name="model" domain="[]" context="{'group_by':'method'}"/>
<filter string="Action" name="model" domain="[]" context="{'group_by':'action_id'}"/>
</group>
</search>
</field>
</record>
<record id="studio_approval_entry_action" model="ir.actions.act_window">
<field name="name">Studio Approval Entries</field>
<field name="res_model">studio.approval.entry</field>
<field name="view_mode">tree,form</field>
</record>
<menuitem id="menu_studio_approval_entry" name="Studio Approval Entries" sequence="11" action="studio_approval_entry_action" parent="base.next_id_2" groups="base.group_system"/>
<!-- Approval Rules -->
<record id="studio_approval_rule_tree_view" model="ir.ui.view">
<field name="name">studio.approval.tree</field>
<field name="model">studio.approval.rule</field>
<field name="arch" type="xml">
<tree>
<field name="name"/>
<field name="message"/>
<field name="group_id"/>
<field name="model_id"/>
<field name="conditional"/>
<field name="active" widget="boolean_toggle"/>
</tree>
</field>
</record>
<record id="studio_approval_rule_form_view" model="ir.ui.view">
<field name="name">studio.approval.form</field>
<field name="model">studio.approval.rule</field>
<field name="arch" type="xml">
<form string="Studio Approval Rule">
<sheet>
<div class="oe_button_box" name="button_box" attrs="{'invisible': [('id', '=', False)]}">
<button class="oe_stat_button" type="action" name="%(studio_approval_entry_action)d"
icon="fa-thumbs-up"
context="{'search_default_rule_id':active_id, 'default_chart_id': active_id}">
<field string="Entries" name="entries_count" widget="statinfo"/>
</button>
</div>
<field name="active" invisible="1"/>
<widget name="web_ribbon" title="Archived" bg_color="bg-danger" attrs="{'invisible': [('active', '=', True)]}"/>
<div class="oe_title">
<h1><field name="name"/></h1>
</div>
<group>
<group>
<field name="group_id"/>
<field name="model_id" />
<field name="model_name" invisible="1"/>
<field name="method" attrs="{'required': [('action_id', '=', False)]}"/>
<field name="action_id" attrs="{'required': [('method', '=', False)]}"/>
</group>
<group>
<field name="domain" widget="domain" options="{'model': 'model_name'}"/>
<field name="exclusive_user"/>
<field name="message"/>
</group>
</group>
</sheet>
</form>
</field>
</record>
<record id="studio_approval_rule_search_view" model="ir.ui.view">
<field name="name">studio.approval.search</field>
<field name="model">studio.approval.rule</field>
<field name="arch" type="xml">
<search string="Approval Rules">
<field name="name"/>
<field name="group_id"/>
<field name="model_id"/>
<separator/>
<filter string="Active" name="active" domain="[('active','=',True)]"/>
<filter string="Archived" name="inactive" domain="[('active','=',False)]"/>
<group expand="0" string="Group By">
<filter string="Group" name="group" domain="[]" context="{'group_by':'group_id'}"/>
<filter string="Model" name="model" domain="[]" context="{'group_by':'model_id'}"/>
<filter string="Method" name="model" domain="[]" context="{'group_by':'method'}"/>
<filter string="Action" name="model" domain="[]" context="{'group_by':'action_id'}"/>
</group>
</search>
</field>
</record>
<record id="studio_approval_rule_action" model="ir.actions.act_window">
<field name="name">Studio Approvals</field>
<field name="res_model">studio.approval.rule</field>
<field name="view_mode">tree,form</field>
<field name="context">{'active_test': False}</field>
</record>
<menuitem id="menu_studio_approval_rule" name="Studio Approvals Rules" sequence="10" action="studio_approval_rule_action" parent="base.next_id_2" groups="base.group_system"/>
</odoo>