Skip to content
Snippets Groups Projects
Commit 46636f23 authored by Lucas Lefèvre's avatar Lucas Lefèvre
Browse files

[FIX] spreadsheet_dashboard_hr_expense: remove wrong dependency


Module `spreadsheet_dashboard_hr_expense` depends on `hr_expense`
but uses the field `sale_order_id` which is only introduced with
`sale_expense`.
`spreadsheet_dashboard_hr_expense`'s dependencies are wrong.

To fix the issue:

1) we remove references to `sale_order_id` in `spreadsheet_dashboard_hr_expense`.
Note that it won't be applied to existing databases. The spreadsheet would
need to be updated "by hand" by deleting the cells, the filter and the pivot
object.

2) we introduce a new auto_install module with the correct dependencies to restore
the current dashboard.

On the master branch, `spreadsheet_dashboard_hr_expense`'s
dependencies is correctly changed to `sale_expense` by odoo/odoo#105148

closes #103899

closes odoo/odoo#104125

Signed-off-by: default avatarRémi Rahir (rar) <rar@odoo.com>
parent c67c32c2
No related branches found
No related tags found
No related merge requests found
......@@ -103,56 +103,6 @@
"style": 4,
"content": "=ODOO.LIST(1,10,\"name\")"
},
"A32": {
"style": 1,
"content": "[Top Reinvoiced Orders](odoo://view/{\"viewType\":\"pivot\",\"action\":{\"domain\":[[\"analytic_account_id\",\"!=\",false]],\"context\":{\"group_by\":[\"analytic_account_id\"],\"pivot_measures\":[\"__count\",\"total_amount\"],\"pivot_column_groupby\":[],\"pivot_row_groupby\":[\"analytic_account_id\"]},\"modelName\":\"hr.expense\",\"views\":[[false,\"graph\"],[false,\"pivot\"],[false,\"list\"],[false,\"kanban\"],[false,\"form\"],[false,\"search\"]]},\"threshold\":0,\"name\":\"Expenses Analysis\"})",
"border": 1
},
"A33": {
"style": 2,
"content": "=_t(\"Order\")",
"border": 2
},
"A34": {
"style": 5,
"content": "=ODOO.PIVOT.HEADER(9,\"#sale_order_id\",1)"
},
"A35": {
"style": 6,
"content": "=ODOO.PIVOT.HEADER(9,\"#sale_order_id\",2)"
},
"A36": {
"style": 5,
"content": "=ODOO.PIVOT.HEADER(9,\"#sale_order_id\",3)"
},
"A37": {
"style": 6,
"content": "=ODOO.PIVOT.HEADER(9,\"#sale_order_id\",4)"
},
"A38": {
"style": 5,
"content": "=ODOO.PIVOT.HEADER(9,\"#sale_order_id\",5)"
},
"A39": {
"style": 6,
"content": "=ODOO.PIVOT.HEADER(9,\"#sale_order_id\",6)"
},
"A40": {
"style": 5,
"content": "=ODOO.PIVOT.HEADER(9,\"#sale_order_id\",7)"
},
"A41": {
"style": 6,
"content": "=ODOO.PIVOT.HEADER(9,\"#sale_order_id\",8)"
},
"A42": {
"style": 5,
"content": "=ODOO.PIVOT.HEADER(9,\"#sale_order_id\",9)"
},
"A43": {
"style": 6,
"content": "=ODOO.PIVOT.HEADER(9,\"#sale_order_id\",10)"
},
"B20": {
"style": 2,
"content": "=_t(\"Employee\")",
......@@ -193,56 +143,6 @@
"B30": {
"content": "=ODOO.LIST(1,10,\"employee_id\")"
},
"B33": {
"style": 8,
"content": "=_t(\"# Expenses\")",
"border": 2
},
"B34": {
"style": 7,
"format": 1,
"content": "=ODOO.PIVOT(9,\"__count\",\"#sale_order_id\",1)"
},
"B35": {
"format": 1,
"content": "=ODOO.PIVOT(9,\"__count\",\"#sale_order_id\",2)"
},
"B36": {
"style": 7,
"format": 1,
"content": "=ODOO.PIVOT(9,\"__count\",\"#sale_order_id\",3)"
},
"B37": {
"format": 1,
"content": "=ODOO.PIVOT(9,\"__count\",\"#sale_order_id\",4)"
},
"B38": {
"style": 7,
"format": 1,
"content": "=ODOO.PIVOT(9,\"__count\",\"#sale_order_id\",5)"
},
"B39": {
"format": 1,
"content": "=ODOO.PIVOT(9,\"__count\",\"#sale_order_id\",6)"
},
"B40": {
"style": 7,
"format": 1,
"content": "=ODOO.PIVOT(9,\"__count\",\"#sale_order_id\",7)"
},
"B41": {
"format": 1,
"content": "=ODOO.PIVOT(9,\"__count\",\"#sale_order_id\",8)"
},
"B42": {
"style": 7,
"format": 1,
"content": "=ODOO.PIVOT(9,\"__count\",\"#sale_order_id\",9)"
},
"B43": {
"format": 1,
"content": "=ODOO.PIVOT(9,\"__count\",\"#sale_order_id\",10)"
},
"C20": {
"style": 8,
"content": "=_t(\"Total\")",
......@@ -293,56 +193,6 @@
"format": 2,
"content": "=ODOO.LIST(1,10,\"total_amount\")"
},
"C33": {
"style": 8,
"content": "=_t(\"Total\")",
"border": 2
},
"C34": {
"style": 7,
"format": 2,
"content": "=ODOO.PIVOT(9,\"total_amount\",\"#sale_order_id\",1)"
},
"C35": {
"format": 2,
"content": "=ODOO.PIVOT(9,\"total_amount\",\"#sale_order_id\",2)"
},
"C36": {
"style": 7,
"format": 2,
"content": "=ODOO.PIVOT(9,\"total_amount\",\"#sale_order_id\",3)"
},
"C37": {
"format": 2,
"content": "=ODOO.PIVOT(9,\"total_amount\",\"#sale_order_id\",4)"
},
"C38": {
"style": 7,
"format": 2,
"content": "=ODOO.PIVOT(9,\"total_amount\",\"#sale_order_id\",5)"
},
"C39": {
"format": 2,
"content": "=ODOO.PIVOT(9,\"total_amount\",\"#sale_order_id\",6)"
},
"C40": {
"style": 7,
"format": 2,
"content": "=ODOO.PIVOT(9,\"total_amount\",\"#sale_order_id\",7)"
},
"C41": {
"format": 2,
"content": "=ODOO.PIVOT(9,\"total_amount\",\"#sale_order_id\",8)"
},
"C42": {
"style": 7,
"format": 2,
"content": "=ODOO.PIVOT(9,\"total_amount\",\"#sale_order_id\",9)"
},
"C43": {
"format": 2,
"content": "=ODOO.PIVOT(9,\"total_amount\",\"#sale_order_id\",10)"
},
"E19": {
"style": 1,
"content": "[Top Categories](odoo://view/{\"viewType\":\"pivot\",\"action\":{\"domain\":[[\"product_id\",\"!=\",false]],\"context\":{\"group_by\":[\"product_id\"],\"pivot_measures\":[\"__count\",\"total_amount\"],\"pivot_column_groupby\":[],\"pivot_row_groupby\":[\"product_id\"]},\"modelName\":\"hr.expense\",\"views\":[[false,\"graph\"],[false,\"pivot\"],[false,\"list\"],[false,\"kanban\"],[false,\"form\"],[false,\"search\"]]},\"threshold\":0,\"name\":\"Expenses Analysis\"})",
......@@ -393,53 +243,53 @@
"style": 6,
"content": "=ODOO.PIVOT.HEADER(1,\"#product_id\",10)"
},
"E32": {
"A32": {
"style": 1,
"content": "[Top Employees](odoo://view/{\"viewType\":\"pivot\",\"action\":{\"domain\":[[\"product_id\",\"!=\",false]],\"context\":{\"group_by\":[\"product_id\"],\"pivot_measures\":[\"__count\",\"total_amount\"],\"pivot_column_groupby\":[],\"pivot_row_groupby\":[\"product_id\"]},\"modelName\":\"hr.expense\",\"views\":[[false,\"graph\"],[false,\"pivot\"],[false,\"list\"],[false,\"kanban\"],[false,\"form\"],[false,\"search\"]]},\"threshold\":0,\"name\":\"Expenses Analysis\"})",
"border": 1
},
"E33": {
"A33": {
"style": 2,
"content": "=_t(\"Employee\")",
"border": 2
},
"E34": {
"A34": {
"style": 5,
"content": "=ODOO.PIVOT.HEADER(4,\"#employee_id\",1)"
},
"E35": {
"A35": {
"style": 6,
"content": "=ODOO.PIVOT.HEADER(4,\"#employee_id\",2)"
},
"E36": {
"A36": {
"style": 5,
"content": "=ODOO.PIVOT.HEADER(4,\"#employee_id\",3)"
},
"E37": {
"A37": {
"style": 6,
"content": "=ODOO.PIVOT.HEADER(4,\"#employee_id\",4)"
},
"E38": {
"A38": {
"style": 5,
"content": "=ODOO.PIVOT.HEADER(4,\"#employee_id\",5)"
},
"E39": {
"A39": {
"style": 6,
"content": "=ODOO.PIVOT.HEADER(4,\"#employee_id\",6)"
},
"E40": {
"A40": {
"style": 5,
"content": "=ODOO.PIVOT.HEADER(4,\"#employee_id\",7)"
},
"E41": {
"A41": {
"style": 6,
"content": "=ODOO.PIVOT.HEADER(4,\"#employee_id\",8)"
},
"E42": {
"A42": {
"style": 5,
"content": "=ODOO.PIVOT.HEADER(4,\"#employee_id\",9)"
},
"E43": {
"A43": {
"style": 6,
"content": "=ODOO.PIVOT.HEADER(4,\"#employee_id\",10)"
},
......@@ -483,44 +333,44 @@
"F30": {
"content": "=ODOO.PIVOT(1,\"__count\",\"#product_id\",10)"
},
"F33": {
"B33": {
"style": 8,
"content": "=_t(\"# Expenses\")",
"border": 2
},
"F34": {
"B34": {
"style": 7,
"content": "=ODOO.PIVOT(4,\"__count\",\"#employee_id\",1)"
},
"F35": {
"B35": {
"content": "=ODOO.PIVOT(4,\"__count\",\"#employee_id\",2)"
},
"F36": {
"B36": {
"style": 7,
"content": "=ODOO.PIVOT(4,\"__count\",\"#employee_id\",3)"
},
"F37": {
"B37": {
"content": "=ODOO.PIVOT(4,\"__count\",\"#employee_id\",4)"
},
"F38": {
"B38": {
"style": 7,
"content": "=ODOO.PIVOT(4,\"__count\",\"#employee_id\",5)"
},
"F39": {
"B39": {
"content": "=ODOO.PIVOT(4,\"__count\",\"#employee_id\",6)"
},
"F40": {
"B40": {
"style": 7,
"content": "=ODOO.PIVOT(4,\"__count\",\"#employee_id\",7)"
},
"F41": {
"B41": {
"content": "=ODOO.PIVOT(4,\"__count\",\"#employee_id\",8)"
},
"F42": {
"B42": {
"style": 7,
"content": "=ODOO.PIVOT(4,\"__count\",\"#employee_id\",9)"
},
"F43": {
"B43": {
"content": "=ODOO.PIVOT(4,\"__count\",\"#employee_id\",10)"
},
"G20": {
......@@ -573,53 +423,53 @@
"format": 2,
"content": "=ODOO.PIVOT(1,\"total_amount\",\"#product_id\",10)"
},
"G33": {
"C33": {
"style": 8,
"content": "=_t(\"Total\")",
"border": 2
},
"G34": {
"C34": {
"style": 7,
"format": 2,
"content": "=ODOO.PIVOT(4,\"total_amount\",\"#employee_id\",1)"
},
"G35": {
"C35": {
"format": 2,
"content": "=ODOO.PIVOT(4,\"total_amount\",\"#employee_id\",2)"
},
"G36": {
"C36": {
"style": 7,
"format": 2,
"content": "=ODOO.PIVOT(4,\"total_amount\",\"#employee_id\",3)"
},
"G37": {
"C37": {
"format": 2,
"content": "=ODOO.PIVOT(4,\"total_amount\",\"#employee_id\",4)"
},
"G38": {
"C38": {
"style": 7,
"format": 2,
"content": "=ODOO.PIVOT(4,\"total_amount\",\"#employee_id\",5)"
},
"G39": {
"C39": {
"format": 2,
"content": "=ODOO.PIVOT(4,\"total_amount\",\"#employee_id\",6)"
},
"G40": {
"C40": {
"style": 7,
"format": 2,
"content": "=ODOO.PIVOT(4,\"total_amount\",\"#employee_id\",7)"
},
"G41": {
"C41": {
"format": 2,
"content": "=ODOO.PIVOT(4,\"total_amount\",\"#employee_id\",8)"
},
"G42": {
"C42": {
"style": 7,
"format": 2,
"content": "=ODOO.PIVOT(4,\"total_amount\",\"#employee_id\",9)"
},
"G43": {
"C43": {
"format": 2,
"content": "=ODOO.PIVOT(4,\"total_amount\",\"#employee_id\",10)"
},
......@@ -635,9 +485,6 @@
"B19": {
"border": 1
},
"B32": {
"border": 1
},
"C7": {
"border": 1
},
......@@ -647,9 +494,6 @@
"C19": {
"border": 1
},
"C32": {
"border": 1
},
"D7": {
"border": 1
},
......@@ -671,9 +515,6 @@
"F19": {
"border": 1
},
"F32": {
"border": 1
},
"G7": {
"border": 1
},
......@@ -682,9 +523,6 @@
},
"G19": {
"border": 1
},
"G32": {
"border": 1
}
},
"conditionalFormats": [],
......@@ -1143,47 +981,6 @@
"measure": "total_amount",
"order": "desc"
}
},
"9": {
"colGroupBys": [],
"context": {
"params": {
"action": 952,
"model": "hr.expense",
"view_type": "pivot",
"menu_id": 659,
"cids": 1
}
},
"domain": [
[
"sale_order_id",
"!=",
false
]
],
"id": "9",
"measures": [
{
"field": "__count"
},
{
"field": "total_amount"
}
],
"model": "hr.expense",
"rowGroupBys": [
"sale_order_id"
],
"name": "Expenses Analysis by Customer to Reinvoice",
"sortedColumn": {
"groupId": [
[],
[]
],
"measure": "total_amount",
"order": "desc"
}
}
},
"pivotNextId": 10,
......@@ -1299,53 +1096,6 @@
}
}
},
{
"id": "e1b40389-7f46-44c0-acee-52033634fc5f",
"type": "relation",
"label": "Order",
"modelName": "sale.order",
"defaultValue": [],
"defaultValueDisplayNames": [],
"rangeType": "year",
"defaultsToCurrentPeriod": false,
"pivotFields": {
"1": {
"field": "sale_order_id",
"type": "many2one"
},
"4": {
"field": "sale_order_id",
"type": "many2one"
},
"5": {
"field": "sale_order_id",
"type": "many2one"
},
"6": {
"field": "sale_order_id",
"type": "many2one"
},
"7": {
"field": "sale_order_id",
"type": "many2one"
},
"8": {
"field": "sale_order_id",
"type": "many2one"
},
"9": {
"field": "sale_order_id",
"type": "many2one"
}
},
"listFields": {
"1": {
"field": "sale_order_id",
"type": "many2one"
}
},
"graphFields": {}
},
{
"id": "88fbcc54-dcb5-42ec-86e9-1676c4c73c6e",
"type": "relation",
......
# Part of Odoo. See LICENSE file for full copyright and licensing details.
# Part of Odoo. See LICENSE file for full copyright and licensing details.
{
'name': "Spreadsheet dashboard for expenses and sales",
'version': '1.0',
'category': 'Hidden',
'summary': 'Spreadsheet',
'description': 'Spreadsheet',
'depends': ['sale_expense', 'spreadsheet_dashboard_hr_expense'],
'data': [
"data/dashboards.xml",
],
'demo': [],
'installable': True,
'auto_install': ['sale_expense'],
'license': 'LGPL-3',
'assets': {}
}
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<record id="spreadsheet_dashboard_hr_expense.spreadsheet_dashboard_expense" model="spreadsheet.dashboard">
<field name="data" type="base64" file="spreadsheet_dashboard_sale_expense/data/files/expense_dashboard.json"/>
</record>
</odoo>
This diff is collapsed.
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * spreadsheet_dashboard_sale_expense
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 16.0+e\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-10-26 07:32+0000\n"
"PO-Revision-Date: 2022-10-26 07:32+0000\n"
"Last-Translator: \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: \n"
#. module: spreadsheet_dashboard_sale_expense
#. openerp-web
#: code:addons/spreadsheet_dashboard_sale_expense/data/files/expense_dashboard.json:0
#: code:addons/spreadsheet_dashboard_sale_expense/data/files/expense_dashboard.json:0
#: code:addons/spreadsheet_dashboard_sale_expense/data/files/expense_dashboard.json:0
#, python-format
msgid "# Expenses"
msgstr ""
#. module: spreadsheet_dashboard_sale_expense
#. openerp-web
#: code:addons/spreadsheet_dashboard_sale_expense/data/files/expense_dashboard.json:0
#, python-format
msgid "Category"
msgstr ""
#. module: spreadsheet_dashboard_sale_expense
#. openerp-web
#: code:addons/spreadsheet_dashboard_sale_expense/data/files/expense_dashboard.json:0
#: code:addons/spreadsheet_dashboard_sale_expense/data/files/expense_dashboard.json:0
#: code:addons/spreadsheet_dashboard_sale_expense/data/files/expense_dashboard.json:0
#, python-format
msgid "Employee"
msgstr ""
#. module: spreadsheet_dashboard_sale_expense
#. openerp-web
#: code:addons/spreadsheet_dashboard_sale_expense/data/files/expense_dashboard.json:0
#, python-format
msgid "Expense"
msgstr ""
#. module: spreadsheet_dashboard_sale_expense
#. openerp-web
#: code:addons/spreadsheet_dashboard_sale_expense/data/files/expense_dashboard.json:0
#, python-format
msgid "Expenses"
msgstr ""
#. module: spreadsheet_dashboard_sale_expense
#. openerp-web
#: code:addons/spreadsheet_dashboard_sale_expense/data/files/expense_dashboard.json:0
#, python-format
msgid "Expenses Analysis"
msgstr ""
#. module: spreadsheet_dashboard_sale_expense
#. openerp-web
#: code:addons/spreadsheet_dashboard_sale_expense/data/files/expense_dashboard.json:0
#, python-format
msgid "Expenses Analysis by Customer to Reinvoice"
msgstr ""
#. module: spreadsheet_dashboard_sale_expense
#. openerp-web
#: code:addons/spreadsheet_dashboard_sale_expense/data/files/expense_dashboard.json:0
#, python-format
msgid "KPI - Expenses"
msgstr ""
#. module: spreadsheet_dashboard_sale_expense
#. openerp-web
#: code:addons/spreadsheet_dashboard_sale_expense/data/files/expense_dashboard.json:0
#, python-format
msgid "KPI - To reimburse"
msgstr ""
#. module: spreadsheet_dashboard_sale_expense
#. openerp-web
#: code:addons/spreadsheet_dashboard_sale_expense/data/files/expense_dashboard.json:0
#, python-format
msgid "KPI - To report"
msgstr ""
#. module: spreadsheet_dashboard_sale_expense
#. openerp-web
#: code:addons/spreadsheet_dashboard_sale_expense/data/files/expense_dashboard.json:0
#, python-format
msgid "KPI - To validate"
msgstr ""
#. module: spreadsheet_dashboard_sale_expense
#. openerp-web
#: code:addons/spreadsheet_dashboard_sale_expense/data/files/expense_dashboard.json:0
#: code:addons/spreadsheet_dashboard_sale_expense/data/files/expense_dashboard.json:0
#, python-format
msgid "Order"
msgstr ""
#. module: spreadsheet_dashboard_sale_expense
#. openerp-web
#: code:addons/spreadsheet_dashboard_sale_expense/data/files/expense_dashboard.json:0
#, python-format
msgid "Product"
msgstr ""
#. module: spreadsheet_dashboard_sale_expense
#. openerp-web
#: code:addons/spreadsheet_dashboard_sale_expense/data/files/expense_dashboard.json:0
#, python-format
msgid "To reimburse"
msgstr ""
#. module: spreadsheet_dashboard_sale_expense
#. openerp-web
#: code:addons/spreadsheet_dashboard_sale_expense/data/files/expense_dashboard.json:0
#, python-format
msgid "To report"
msgstr ""
#. module: spreadsheet_dashboard_sale_expense
#. openerp-web
#: code:addons/spreadsheet_dashboard_sale_expense/data/files/expense_dashboard.json:0
#, python-format
msgid "To validate"
msgstr ""
#. module: spreadsheet_dashboard_sale_expense
#. openerp-web
#: code:addons/spreadsheet_dashboard_sale_expense/data/files/expense_dashboard.json:0
#: code:addons/spreadsheet_dashboard_sale_expense/data/files/expense_dashboard.json:0
#, python-format
msgid "Top Categories"
msgstr ""
#. module: spreadsheet_dashboard_sale_expense
#. openerp-web
#: code:addons/spreadsheet_dashboard_sale_expense/data/files/expense_dashboard.json:0
#: code:addons/spreadsheet_dashboard_sale_expense/data/files/expense_dashboard.json:0
#, python-format
msgid "Top Employees"
msgstr ""
#. module: spreadsheet_dashboard_sale_expense
#. openerp-web
#: code:addons/spreadsheet_dashboard_sale_expense/data/files/expense_dashboard.json:0
#: code:addons/spreadsheet_dashboard_sale_expense/data/files/expense_dashboard.json:0
#, python-format
msgid "Top Expenses"
msgstr ""
#. module: spreadsheet_dashboard_sale_expense
#. openerp-web
#: code:addons/spreadsheet_dashboard_sale_expense/data/files/expense_dashboard.json:0
#, python-format
msgid "Top Reinvoiced Orders"
msgstr ""
#. module: spreadsheet_dashboard_sale_expense
#. openerp-web
#: code:addons/spreadsheet_dashboard_sale_expense/data/files/expense_dashboard.json:0
#: code:addons/spreadsheet_dashboard_sale_expense/data/files/expense_dashboard.json:0
#: code:addons/spreadsheet_dashboard_sale_expense/data/files/expense_dashboard.json:0
#: code:addons/spreadsheet_dashboard_sale_expense/data/files/expense_dashboard.json:0
#, python-format
msgid "Total"
msgstr ""
#. module: spreadsheet_dashboard_sale_expense
#. openerp-web
#: code:addons/spreadsheet_dashboard_sale_expense/data/files/expense_dashboard.json:0
#, python-format
msgid "Year"
msgstr ""
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment