summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGiacomello Nathan (ngi) <ngi@odoo.com>2020-09-18 11:04:47 +0000
committerYannick Tivisse <yti@odoo.com>2020-09-25 09:57:56 +0000
commite026017adb7b51bb695825ded6528141b74deca3 (patch)
tree3ec9006cc8b2a430912337152b6162ccf5b00db5
parentf085be23da4eab4dc4369fea9e13dc827f12bf4f (diff)
[FIX] Expenses: Display headers in My Expense menu items
Expense header was displayed in all tree & kanban views. This commit removes the header in other views than 'My Expenses' menus because the expense header should only be visible in the 'My Expenses' menu Task id: 2341766 closes odoo/odoo#58023 Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
-rw-r--r--addons/hr_expense/static/src/js/expense_views.js45
-rw-r--r--addons/hr_expense/views/hr_expense_views.xml104
2 files changed, 141 insertions, 8 deletions
diff --git a/addons/hr_expense/static/src/js/expense_views.js b/addons/hr_expense/static/src/js/expense_views.js
index 546fd3197cb..a031f647de1 100644
--- a/addons/hr_expense/static/src/js/expense_views.js
+++ b/addons/hr_expense/static/src/js/expense_views.js
@@ -87,7 +87,12 @@ odoo.define('hr_expense.expenses.tree', function (require) {
}
};
- var ExpenseListRenderer = ListRenderer.extend(ExpenseDashboardMixin, ExpenseQRCodeMixin);
+ // Expense List Renderer
+ var ExpenseListRenderer = ListRenderer.extend(ExpenseQRCodeMixin);
+
+ // Expense List Renderer with the Header
+ // Used in "My Expenses to Report", "All My Expenses" & "My Reports"
+ var ExpenseListRendererHeader = ExpenseListRenderer.extend(ExpenseDashboardMixin);
var ExpensesListViewDashboardUpload = ListView.extend({
config: _.extend({}, ListView.prototype.config, {
@@ -96,6 +101,14 @@ odoo.define('hr_expense.expenses.tree', function (require) {
}),
});
+ // Used in "My Expenses to Report" & "All My Expenses"
+ var ExpensesListViewDashboardUploadHeader = ExpensesListViewDashboardUpload.extend({
+ config: _.extend({}, ExpensesListViewDashboardUpload.prototype.config, {
+ Renderer: ExpenseListRendererHeader,
+ }),
+ });
+
+ // The dashboard view of the expense module
var ExpensesListViewDashboard = ListView.extend({
config: _.extend({}, ListView.prototype.config, {
Renderer: ExpenseListRenderer,
@@ -103,6 +116,14 @@ odoo.define('hr_expense.expenses.tree', function (require) {
}),
});
+ // The dashboard view of the expense module with an header
+ // Used in "My Expenses"
+ var ExpensesListViewDashboardHeader = ExpensesListViewDashboard.extend({
+ config: _.extend({}, ExpensesListViewDashboard.prototype.config, {
+ Renderer: ExpenseListRendererHeader,
+ })
+ });
+
var ExpensesKanbanController = KanbanController.extend(DocumentUploadMixin, {
buttons_template: 'ExpensesKanbanView.buttons',
events: _.extend({}, KanbanController.prototype.events, {
@@ -111,8 +132,11 @@ odoo.define('hr_expense.expenses.tree', function (require) {
}),
});
- var ExpenseKanbanRenderer = KanbanRenderer.extend(ExpenseDashboardMixin, ExpenseQRCodeMixin);
+ var ExpenseKanbanRenderer = KanbanRenderer.extend(ExpenseQRCodeMixin);
+
+ var ExpenseKanbanRendererHeader = ExpenseKanbanRenderer.extend(ExpenseDashboardMixin);
+ // The kanban view
var ExpensesKanbanView = KanbanView.extend({
config: _.extend({}, KanbanView.prototype.config, {
Controller: ExpensesKanbanController,
@@ -120,7 +144,24 @@ odoo.define('hr_expense.expenses.tree', function (require) {
}),
});
+ // The kanban view with the Header
+ // Used in "My Expenses to Report", "All My Expenses" & "My Repo
+ var ExpensesKanbanViewHeader = ExpensesKanbanView.extend({
+ config: _.extend({}, ExpensesKanbanView.prototype.config, {
+ Renderer: ExpenseKanbanRendererHeader,
+ })
+ });
+
viewRegistry.add('hr_expense_tree_dashboard_upload', ExpensesListViewDashboardUpload);
+ // Tree view with the header.
+ // Used in "My Expenses to Report" & "All My Expenses"
+ viewRegistry.add('hr_expense_tree_dashboard_upload_header', ExpensesListViewDashboardUploadHeader);
viewRegistry.add('hr_expense_tree_dashboard', ExpensesListViewDashboard);
+ // Tree view with the header.
+ // Used in "My Reports"
+ viewRegistry.add('hr_expense_tree_dashboard_header', ExpensesListViewDashboardHeader);
viewRegistry.add('hr_expense_kanban', ExpensesKanbanView);
+ // Kanban view with the header.
+ // Used in "My Expenses to Report", "All My Expenses" & "My Reports"
+ viewRegistry.add('hr_expense_kanban_header', ExpensesKanbanViewHeader);
});
diff --git a/addons/hr_expense/views/hr_expense_views.xml b/addons/hr_expense/views/hr_expense_views.xml
index 377fb8f99a7..dda76383896 100644
--- a/addons/hr_expense/views/hr_expense_views.xml
+++ b/addons/hr_expense/views/hr_expense_views.xml
@@ -80,7 +80,8 @@
<field name="mode">primary</field>
<field name="arch" type="xml">
<xpath expr="//tree" position="attributes">
- <attribute name="js_class">hr_expense_tree_dashboard_upload</attribute>
+ <!-- Display the tree dashboard view with the header -->
+ <attribute name="js_class">hr_expense_tree_dashboard_upload_header</attribute>
</xpath>
</field>
</record>
@@ -93,7 +94,8 @@
<field name="mode">primary</field>
<field name="arch" type="xml">
<xpath expr="//tree" position="attributes">
- <attribute name="js_class">hr_expense_tree_dashboard</attribute>
+ <!-- Display the tree dashboard view with the header -->
+ <attribute name="js_class">hr_expense_tree_dashboard_header</attribute>
<attribute name="class">hr_expense</attribute>
</xpath>
</field>
@@ -237,6 +239,7 @@
</field>
</record>
+ <!-- Kanban view without header -->
<record id="hr_expense_kanban_view" model="ir.ui.view">
<field name="name">hr.expense.kanban</field>
<field name="model">hr.expense</field>
@@ -249,6 +252,19 @@
</field>
</record>
+ <!-- Kanban view with header. Used in "All My Expenses -->
+ <record id="hr_expense_kanban_view_header" model="ir.ui.view">
+ <field name="name">hr.expense.kanban</field>
+ <field name="model">hr.expense</field>
+ <field name="inherit_id" ref="hr_expense_view_expenses_analysis_kanban"/>
+ <field name="mode">primary</field>
+ <field name="arch" type="xml">
+ <xpath expr="//kanban" position="attributes">
+ <attribute name="js_class">hr_expense_kanban_header</attribute>
+ </xpath>
+ </field>
+ </record>
+
<record id="hr_expense_view_pivot" model="ir.ui.view">
<field name="name">hr.expense.pivot</field>
<field name="model">hr.expense</field>
@@ -374,7 +390,6 @@
<field name="res_model">hr.expense</field>
<field name="view_mode">tree,kanban,form,graph,pivot,activity</field>
<field name="search_view_id" ref="hr_expense_view_search"/>
- <field name="view_id" ref="view_my_expenses_tree"/>
<field name="context">{'search_default_my_expenses': 1, 'search_default_no_report': 1}</field>
<field name="help" type="html">
<p class="o_view_nocontent_expense_receipt">
@@ -392,12 +407,24 @@
</field>
</record>
+ <!-- Tree & Kanban view for "My Expenses to Report" with the header -->
+ <record id="hr_expense_actions_my_unsubmitted_tree" model="ir.actions.act_window.view">
+ <field name="view_mode">tree</field>
+ <field name="view_id" ref="view_my_expenses_tree"/>
+ <field name="act_window_id" ref="hr_expense_actions_my_unsubmitted"/>
+ </record>
+
+ <record id="hr_expense_actions_my_unsubmitted_kanban" model="ir.actions.act_window.view">
+ <field name="view_mode">kanban</field>
+ <field name="view_id" ref="hr_expense_kanban_view_header"/>
+ <field name="act_window_id" ref="hr_expense_actions_my_unsubmitted"/>
+ </record>
+
<record id="hr_expense_actions_my_all" model="ir.actions.act_window">
<field name="name">All My Expenses</field>
<field name="res_model">hr.expense</field>
<field name="view_mode">tree,kanban,form,graph,pivot,activity</field>
<field name="search_view_id" ref="hr_expense_view_search"/>
- <field name="view_id" ref="view_my_expenses_tree"/>
<field name="context">{'search_default_my_expenses': 1}</field>
<field name="help" type="html">
<p class="o_view_nocontent_expense_receipt">
@@ -415,6 +442,19 @@
</field>
</record>
+ <!-- Tree & Kanban view for "All My Expenses" with header -->
+ <record id="hr_expense_actions_my_all_tree" model="ir.actions.act_window.view">
+ <field name="view_mode">tree</field>
+ <field name="view_id" ref="view_my_expenses_tree"/>
+ <field name="act_window_id" ref="hr_expense_actions_my_all"/>
+ </record>
+
+ <record id="hr_expense_actions_my_all_kanban" model="ir.actions.act_window.view">
+ <field name="view_mode">kanban</field>
+ <field name="view_id" ref="hr_expense_kanban_view_header"/>
+ <field name="act_window_id" ref="hr_expense_actions_my_all"/>
+ </record>
+
<record id="view_product_hr_expense_form" model="ir.ui.view">
<field name="name">product.template.expense.form</field>
<field name="model">product.template</field>
@@ -560,6 +600,20 @@
</field>
</record>
+ <!-- Tree view for "My Reports" with header -->
+ <record id="view_hr_expense_sheet_dashboard_tree_header" model="ir.ui.view">
+ <field name="name">hr.expense.sheet.dashboard.tree</field>
+ <field name="model">hr.expense.sheet</field>
+ <field name="priority">20</field>
+ <field name="inherit_id" ref="hr_expense.view_hr_expense_sheet_tree"/>
+ <field name="mode">primary</field>
+ <field name="arch" type="xml">
+ <xpath expr="//tree" position="attributes">
+ <attribute name="js_class">hr_expense_tree_dashboard_header</attribute>
+ </xpath>
+ </field>
+ </record>
+
<record id="view_hr_expense_sheet_form" model="ir.ui.view">
<field name="name">hr.expense.sheet.form</field>
<field name="model">hr.expense.sheet</field>
@@ -676,7 +730,7 @@
<field name="name">hr.expense.sheet.kanban</field>
<field name="model">hr.expense.sheet</field>
<field name="arch" type="xml">
- <kanban class="o_kanban_mobile" js_class="hr_expense_kanban" sample="1">
+ <kanban class="o_kanban_mobile" sample="1">
<field name="name"/>
<field name="employee_id"/>
<field name="total_amount"/>
@@ -710,6 +764,32 @@
</field>
</record>
+ <!-- Kanban view without header -->
+ <record id="view_hr_expense_sheet_kanban_no_header" model="ir.ui.view">
+ <field name="name">hr.expense.sheet.kanban</field>
+ <field name="model">hr.expense.sheet</field>
+ <field name="inherit_id" ref="view_hr_expense_sheet_kanban"/>
+ <field name="mode">primary</field>
+ <field name="arch" type="xml">
+ <xpath expr="//kanban" position="attributes">
+ <attribute name="js_class">hr_expense_kanban</attribute>
+ </xpath>
+ </field>
+ </record>
+
+ <!-- Kanban view with header -->
+ <record id="view_hr_expense_sheet_kanban_header" model="ir.ui.view">
+ <field name="name">hr.expense.sheet.kanban</field>
+ <field name="model">hr.expense.sheet</field>
+ <field name="inherit_id" ref="view_hr_expense_sheet_kanban"/>
+ <field name="mode">primary</field>
+ <field name="arch" type="xml">
+ <xpath expr="//kanban" position="attributes">
+ <attribute name="js_class">hr_expense_kanban_header</attribute>
+ </xpath>
+ </field>
+ </record>
+
<record id="view_hr_expense_sheet_pivot" model="ir.ui.view">
<field name="name">hr.expense.sheet.pivot</field>
<field name="model">hr.expense.sheet</field>
@@ -804,7 +884,6 @@
<field name="search_view_id" ref="hr_expense_sheet_view_search"/>
<field name="domain">[('state', '!=', 'cancel')]</field>
<field name="context">{'search_default_my_reports': 1}</field>
- <field name="view_id" ref="view_hr_expense_sheet_dashboard_tree"/>
<field name="help" type="html">
<p class="o_view_nocontent_smiling_face">
No expense report found. Let's create one!
@@ -814,6 +893,19 @@
</field>
</record>
+ <!-- Tree & Kanban view for "My Reports" with header -->
+ <record id="action_hr_expense_sheet_my_all_tree" model="ir.actions.act_window.view">
+ <field name="view_mode">tree</field>
+ <field name="view_id" ref="view_hr_expense_sheet_dashboard_tree_header"/>
+ <field name="act_window_id" ref="action_hr_expense_sheet_my_all"/>
+ </record>
+
+ <record id="action_hr_expense_sheet_my_all_kanban" model="ir.actions.act_window.view">
+ <field name="view_mode">kanban</field>
+ <field name="view_id" ref="view_hr_expense_sheet_kanban_header"/>
+ <field name="act_window_id" ref="action_hr_expense_sheet_my_all"/>
+ </record>
+
<record id="action_hr_expense_sheet_all_to_approve" model="ir.actions.act_window">
<field name="name">Expense Reports to Approve</field>
<field name="res_model">hr.expense.sheet</field>