Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[18.0][MIG] bi_sql_editor: Migration to 18.0 #938

Open
wants to merge 108 commits into
base: 18.0
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
108 commits
Select commit Hold shift + click to select a range
efd7b95
new module bi_sql_editor [IMP] function to guess model for many2one f…
legalsylvain Mar 27, 2017
0c462d8
OCA Transbot updated translations from Transifex
oca-transbot Jun 3, 2017
b9a4e87
bi_sql_editor
nicomacr Jul 11, 2017
54f1dd0
create ui now create tree view [IMP] fr translation [IMP] add last re…
legalsylvain Jul 14, 2017
f410135
[IMP] Add test + several fixes
AaronHForgeFlow Jul 17, 2017
d6c4dcb
OCA Transbot updated translations from Transifex
oca-transbot Aug 19, 2017
37f8829
FIX bi_sql_editor
nicomacr Aug 14, 2017
9bfe61f
[MIG] bi_sql_editor v10
serpentcs-dev1 Sep 4, 2017
8b40868
[IMP] preview button
serpentcs-dev1 Oct 3, 2017
3e67a99
Fix several issues
p-tombez Apr 13, 2018
56e88f3
10.0 imp bi sql editor (#1)
legalsylvain Jul 23, 2018
9a2391e
[UPD] Update bi_sql_editor.pot
oca-travis Jul 24, 2018
7def61e
[MIG] bi_sql_editor: Migration to 11.0
HviorForgeFlow Jul 25, 2018
ecc0d50
[FIX] Can be upgraded with materialized views generated
HviorForgeFlow Aug 28, 2018
e78911e
[FIX] ir.cron relation
MiquelRForgeFlow Aug 31, 2018
a8122e2
[IMP] remove unneeded parenthesis
MiquelRForgeFlow Sep 3, 2018
4673cdf
[FIX] Solves the upgrading problem
MiquelRForgeFlow Sep 4, 2018
4b6ce2a
[FIX] Query and technical name should only be modifiable in draft mode
MiquelRForgeFlow Sep 6, 2018
e4c0165
[UPD] Update bi_sql_editor.pot
oca-travis Sep 19, 2018
723553d
Update translation files
oca-transbot Dec 9, 2018
bb7028e
[12.0][MIG] Migrate module bi_sql_editor to v12
AdriaGForgeFlow Dec 14, 2018
ac8492e
[FIX] bi_sql_editor: add in readme how to solve the update all break
MiquelRForgeFlow Jan 15, 2019
3372bbc
Update readme
AdriaGForgeFlow Jan 16, 2019
d19946c
bi_sql_editor 12.0.1.2.0
OCA-git-bot Mar 8, 2019
da25209
Update translation files
oca-transbot Mar 17, 2019
4652dac
Translated using Weblate (German)
rschnapka Apr 24, 2019
9eed0be
[FIX] bi_sql_editor: Fixes images path
pedrobaeza Jul 26, 2019
17044d6
[FIX] bi_sql_editor: Add required attribute name on filters
HviorForgeFlow Sep 13, 2019
a536c99
change SQL mapping for date
HviorForgeFlow Sep 23, 2019
8b75e76
[ADD] action context
legalsylvain Mar 18, 2020
0220c89
Update translation files
oca-transbot Mar 28, 2020
bbb9011
[WIP] imp bi_sql_editor
legalsylvain Jun 18, 2020
726af2b
[FIX] bi_sql_editor : handle correctly translation for action name
legalsylvain Nov 12, 2020
dc1a027
[IMP] bi_sql_editor : conserve cron settings, when setting materializ…
legalsylvain Jun 7, 2021
61ee616
[IMP] bi_sql_editor: black, isort, prettier
HviorForgeFlow Apr 15, 2020
37f263d
[MIG] bi_sql_editor: Migration to 13.0
HviorForgeFlow Apr 15, 2020
0a450d4
bi_sql_editor 13.0.1.0.1
OCA-git-bot May 26, 2020
729cee0
Translated using Weblate (Spanish)
anasuarez1 Mar 9, 2021
49c9c20
[IMP] bi_sql_editor: black, isort, prettier
davejames Jun 7, 2021
0a36a03
bi_sql_editor: Migration to 14.0
davejames Jun 8, 2021
a0b0c88
bi_sql_editor: add support for group operators
davejames Jun 7, 2021
5961e7d
[UPD] Update bi_sql_editor.pot
oca-travis Jun 11, 2021
86c055f
[UPD] README.rst
OCA-git-bot Jun 11, 2021
c71e172
[IMP] bi_sql_editor: black, isort, prettier
mariadforgeflow Dec 13, 2021
4dcd9d2
[MIG] bi_sql_editor: Migration to 15.0
mariadforgeflow Dec 13, 2021
135ba1b
[UPD] Update bi_sql_editor.pot
Jan 24, 2022
8b1614c
[UPD] README.rst
OCA-git-bot Jan 24, 2022
c188a3a
[FIX] bi_sql_editor: fix typo
mariadforgeflow Feb 1, 2022
f440d0e
bi_sql_editor 15.0.1.0.1
OCA-git-bot Feb 1, 2022
1ffabf4
[IMP] bi_sql_editor: Remove useless monkeypatch
lmignon Mar 16, 2022
d2d92ed
bi_sql_editor 15.0.1.0.2
OCA-git-bot Mar 16, 2022
2f95bda
Translated using Weblate (Catalan)
pablontura Apr 22, 2022
7c727e8
Translated using Weblate (Catalan)
jabelchi Jun 15, 2022
a102a7f
[MIG] bi_sql_editor : from 15.0 to 16.0
legalsylvain Oct 25, 2022
3c1b094
[IMP] bi_sql_editor manual field check performance
paulius-sladkevicius Nov 16, 2022
343df7b
[IMP] bi_sql_editor : add field context
legalsylvain Dec 16, 2021
43da530
[UPD] Update bi_sql_editor.pot
Feb 17, 2023
644f7a9
[UPD] README.rst
OCA-git-bot Feb 17, 2023
5d529a0
Translated using Weblate (Italian)
mymage Mar 23, 2023
0fffabc
Translated using Weblate (Spanish (Argentina))
ibuioli Apr 7, 2023
6f10844
Translated using Weblate (Slovenian)
sysadminmatmoz Apr 11, 2023
46318f9
Update bi_sql_view.py
May 31, 2023
8c5e51b
[FIX] unlink bi_sql_view without cron
Jun 15, 2023
1148307
bi_sql_editor 16.0.1.0.3
OCA-git-bot Jun 15, 2023
357f793
Translated using Weblate (Italian)
mymage Jun 20, 2023
8a96a1e
bi_sql_editor 16.0.1.0.4
OCA-git-bot Jul 2, 2023
659abdc
[UPD] Update bi_sql_editor.pot
Aug 28, 2023
3ef485d
Translated using Weblate (Spanish)
Ivorra78 Aug 23, 2023
918430a
Update translation files
weblate Sep 2, 2023
386257d
[UPD] README.rst
OCA-git-bot Sep 3, 2023
2db3f43
Translated using Weblate (Spanish)
Ivorra78 Sep 7, 2023
2746fe7
[UPD] Update bi_sql_editor.pot
Oct 27, 2023
4e2754d
Update translation files
weblate Oct 29, 2023
d79eee9
[16.0][FIX][bi_sql_editor] unlink bi_sql_view without cron
leemannd Nov 14, 2023
8fcb262
[BOT] post-merge updates
OCA-git-bot Nov 14, 2023
41df5ff
[IMP] bi_sql_editor: pre-commit auto fixes
nguyenminhchien Dec 19, 2023
b7520e8
[IMP] bi_sql_editor : make installation idempotens
legalsylvain Dec 5, 2023
0612486
[REF] bi_sql_editor : simplify module tests
legalsylvain Dec 5, 2023
db6c896
[REF] bi_sql_editor : Make test independant
legalsylvain Dec 5, 2023
875515c
[FIX] bi_sql_editor : do not allow to create model (and sql views) if…
legalsylvain Dec 5, 2023
57202eb
[FIX] bi_sql_editor : use correct key word 'optional'. (and not 'opti…
legalsylvain Dec 5, 2023
f79db20
[IMP] bi_sql_editor : allow to reset to the previous state, and not o…
legalsylvain Dec 5, 2023
301b698
[REF] bi_sql_editor : simplification : Remove conditional display rel…
legalsylvain Dec 5, 2023
fc26105
[REM] bi_sql_editor : option_context_field field, as it is now possib…
legalsylvain Dec 5, 2023
5fb9253
[IMP] bi_sql_editor : Allow to change fields settings if state is 'Mo…
legalsylvain Dec 5, 2023
b7d0201
[IMP] bi_sql_editor : Improve code coverage, adding various settings …
legalsylvain Dec 5, 2023
e51ac73
[MIG] bi_sql_editor: Migration to 17.0
nguyenminhchien Dec 21, 2023
f082b49
[UPD] Update bi_sql_editor.pot
Jan 8, 2024
17c0cbb
[BOT] post-merge updates
OCA-git-bot Jan 8, 2024
1ef40dd
Update translation files
weblate Feb 3, 2024
ba58173
Update translation files
weblate Feb 3, 2024
f7f371d
Translated using Weblate (Spanish)
Ivorra78 Feb 11, 2024
f99583c
Translated using Weblate (Italian)
mymage Feb 19, 2024
45a8dd2
Translated using Weblate (Italian)
mymage Feb 19, 2024
5bebd85
Translated using Weblate (Italian)
mymage Apr 4, 2024
f562c25
[FIX] *: line too long
pedrobaeza May 2, 2024
fbbf8ac
[BOT] post-merge updates
OCA-git-bot May 2, 2024
158d6dc
[IMP]bi_sql_editor: add parent menu as an editable parameter when cre…
GuillemCForgeFlow Jun 4, 2024
44bd004
[UPD] Update bi_sql_editor.pot
Jun 6, 2024
34f89cf
[BOT] post-merge updates
OCA-git-bot Jun 6, 2024
a4da1ce
Update translation files
weblate Jun 6, 2024
7e763c4
Translated using Weblate (Italian)
mymage Jun 6, 2024
c1853ef
Translated using Weblate (Swedish)
jakobkrabbe Jun 11, 2024
176fd92
[UPD] Update bi_sql_editor.pot
Jul 17, 2024
f7630f2
Update translation files
weblate Jul 17, 2024
68c1980
IMP: bi_sql_editor lang
gurneyalex Apr 28, 2022
2ab8389
[IMP] pre-commit lint
HviorForgeFlow Nov 7, 2023
bdd4c03
[MIG] bi_sql_editor: Migration to 18.0
thienvh332 Oct 2, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
223 changes: 223 additions & 0 deletions bi_sql_editor/README.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,223 @@
=============
BI SQL Editor
=============

..
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! source digest: sha256:1acb226c184032febd7db6e48ee618c7e5a6899c4685aa78b5b2e7578ebd9ce9
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
:target: https://odoo-community.org/page/development-status
:alt: Beta
.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
:alt: License: AGPL-3
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Freporting--engine-lightgray.png?logo=github
:target: https://github.com/OCA/reporting-engine/tree/18.0/bi_sql_editor
:alt: OCA/reporting-engine
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
:target: https://translation.odoo-community.org/projects/reporting-engine-18-0/reporting-engine-18-0-bi_sql_editor
:alt: Translate me on Weblate
.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png
:target: https://runboat.odoo-community.org/builds?repo=OCA/reporting-engine&target_branch=18.0
:alt: Try me on Runboat

|badge1| |badge2| |badge3| |badge4| |badge5|

This module extends the functionality of reporting, to support creation
of extra custom reports. It allows user to write a custom SQL request.
(Generally, admin users)

Once written, a new model is generated, and user can map the selected
field with odoo fields. Then user ends the process, creating new menu,
action and graph view.

Technically, the module create SQL View (or materialized view, if option
is checked). Materialized view duplicates datas, but request are
fastest. If materialized view is enabled, this module will create a cron
task to refresh the data).

By default, users member of 'SQL Request / User' can see all the views.
You can specify extra groups that have the right to access to a specific
view.

Warning
-------

This module is intended for technician people in a company and for Odoo
integrators.

It requires the user to know SQL syntax and Odoo models.

If you don't have such skills, do not try to use this module specially
on a production environment.

Use Cases
---------

this module is interesting for the following use cases

- You want to realize technical SQL requests, that Odoo framework
doesn't allow (For exemple, UNION with many SELECT) A typical use
case is if you want to have Sale Orders and PoS Orders datas in a
same table
- You want to customize an Odoo report, removing some useless fields
and adding some custom ones. In that case, you can simply select the
fields of the original report (sale.report model for exemple), and
add your custom fields
- You have a lot of data, and classical SQL Views have very bad
performance. In that case, MATERIALIZED VIEW will be a good solution
to reduce display duration

**Table of contents**

.. contents::
:local:

Configuration
=============

- Go to Dashboard / Configuration / SQL Views

- tip your SQL request

|image1|

- Select the group(s) that could have access to the view

|image2|

Optionnaly, you can add a domain.

A tipical domain in a multi company context is to write
``['|', ('company_id', '=', False), ('company_id', 'in', company_ids)]``
to make reporting depending on the current companies of the user.

- Click on the button 'Validate SQL Expression'

- Once the sql request checked, the module analyses the column of the
view, and propose field mapping. For each field, you can decide to
create an index and set if it will be displayed on the pivot graph as
a column, a row or a measure.

|image3|

- Click on the button 'Create SQL elements'. (this step could take a
while, if view is materialized)

- If it's a MATERIALIZED view:

- a cron task is created to refresh the view. You can so define
the frequency of the refresh.
- the size of view (and the indexes is displayed)

|image4|

- Before applying the final step, you will need to add a specific
Parent Menu to use when creating the UI Menu for the report. By
default, it will be set with the ``SQL Views`` menu, which can be
changed before creating the UI elements in order to have the report
accessible from a different place within Odoo.

- Finally, click on 'Create UI', to create new menu, action, graph view
and search view.

.. |image1| image:: https://raw.githubusercontent.com/OCA/reporting-engine/18.0/bi_sql_editor/static/description/01_sql_request.png
.. |image2| image:: https://raw.githubusercontent.com/OCA/reporting-engine/18.0/bi_sql_editor/static/description/02_security_access.png
.. |image3| image:: https://raw.githubusercontent.com/OCA/reporting-engine/18.0/bi_sql_editor/static/description/03_field_mapping.png
.. |image4| image:: https://raw.githubusercontent.com/OCA/reporting-engine/18.0/bi_sql_editor/static/description/04_materialized_view_setting.png

Usage
=====

To use this module, you need to:

1. Go to 'Dashboards > SQL Reports'
2. Select the desired report

..

|usage-image1|

- You can switch to 'Graph' or 'tree' views as any report.

.. |usage-image1| image:: https://raw.githubusercontent.com/OCA/reporting-engine/18.0/bi_sql_editor/static/description/05_reporting_pivot.png

Bug Tracker
===========

Bugs are tracked on `GitHub Issues <https://github.com/OCA/reporting-engine/issues>`_.
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us to smash it by providing a detailed and welcomed
`feedback <https://github.com/OCA/reporting-engine/issues/new?body=module:%20bi_sql_editor%0Aversion:%2018.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.

Do not contact contributors directly about support or help with technical issues.

Credits
=======

Authors
-------

* GRAP

Contributors
------------

- Sylvain LE GAL (https://twitter.com/legalsylvain)

- Richard deMeester, WilldooIT (http://www.willdooit.com/)

- David James, WilldooIT (http://www.willdooit.com/)

- Guillem Casassas [email protected]

- Thien Vo [email protected]

- This module is highly inspired by the work of

- Onestein: (http://www.onestein.nl/) Module:
OCA/server-tools/bi_view_editor. Link:
https://github.com/OCA/reporting-engine/tree/9.0/bi_view_editor
- Anybox: (https://anybox.fr/) Module :
OCA/server-tools/materialized_sql_view link:
https://github.com/OCA/server-tools/pull/110
- GRAP, Groupement Régional Alimentaire de Proximité:
(http://www.grap.coop/) Module:
grap/odoo-addons-misc/pos_sale_reporting link:
https://github.com/grap/odoo-addons-misc/tree/7.0/pos_sale_reporting

Other credits
-------------

The migration of this module from 17.0 to 18.0 was financially supported
by Camptocamp.

Maintainers
-----------

This module is maintained by the OCA.

.. image:: https://odoo-community.org/logo.png
:alt: Odoo Community Association
:target: https://odoo-community.org

OCA, or the Odoo Community Association, is a nonprofit organization whose
mission is to support the collaborative development of Odoo features and
promote its widespread use.

.. |maintainer-legalsylvain| image:: https://github.com/legalsylvain.png?size=40px
:target: https://github.com/legalsylvain
:alt: legalsylvain

Current `maintainer <https://odoo-community.org/page/maintainer-role>`__:

|maintainer-legalsylvain|

This module is part of the `OCA/reporting-engine <https://github.com/OCA/reporting-engine/tree/18.0/bi_sql_editor>`_ project on GitHub.

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
4 changes: 4 additions & 0 deletions bi_sql_editor/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).

from . import models
from .hooks import uninstall_hook
25 changes: 25 additions & 0 deletions bi_sql_editor/__manifest__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# Copyright (C) 2017 - Today: GRAP (http://www.grap.coop)
# @author: Sylvain LE GAL (https://twitter.com/legalsylvain)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).

{
"name": "BI SQL Editor",
"summary": "BI Views builder, based on Materialized or Normal SQL Views",
"version": "18.0.1.0.0",
"license": "AGPL-3",
"category": "Reporting",
"author": "GRAP,Odoo Community Association (OCA)",
"website": "https://github.com/OCA/reporting-engine",
"depends": [
"spreadsheet_dashboard",
"sql_request_abstract",
],
"data": [
"security/ir.model.access.csv",
"views/view_bi_sql_view.xml",
],
"demo": ["demo/res_groups_demo.xml", "demo/bi_sql_view_demo.xml"],
"installable": True,
"uninstall_hook": "uninstall_hook",
"maintainers": ["legalsylvain"],
}
53 changes: 53 additions & 0 deletions bi_sql_editor/demo/bi_sql_view_demo.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
Copyright (C) 2014 - Today GRAP (http://www.grap.coop)
@author Sylvain LE GAL (https://twitter.com/legalsylvain)
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
-->
<odoo noupdate="1">
<record id="incorrect_sql_view" model="bi.sql.view">
<field name="name">Draft Incorrect SQL View</field>
<field name="technical_name">incorrect_view</field>
<field
name="query"
><![CDATA[
SELECT *
FROM unexisting_table
ORDER BY unexisting_field
]]>
</field>
</record>
<record id="partner_sql_view" model="bi.sql.view">
<field name="name">Partners View</field>
<field name="technical_name">partners_view</field>
<field name="is_materialized" eval="True" />
<field
name="query"
><![CDATA[
SELECT
name as x_name,
street as x_street,
company_id as x_company_id
FROM res_partner
ORDER BY name
]]>
</field>
</record>
<record id="module_sql_view" model="bi.sql.view">
<field name="name">Modules by Authors</field>
<field name="technical_name">modules_view</field>
<field name="is_materialized" eval="0" />
<field
name="query"
><![CDATA[
SELECT
name as x_name,
case
when author ilike '%OpenERP SA%' THEN 'Odoo SA'
when author ilike '%Odoo Community Association (OCA)%' THEN 'OCA'
else 'Undefined Author' END as x_author_type
FROM ir_module_module
]]>
</field>
</record>
</odoo>
14 changes: 14 additions & 0 deletions bi_sql_editor/demo/res_groups_demo.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
Copyright (C) 2014 - Today GRAP (http://www.grap.coop)
@author Sylvain LE GAL (https://twitter.com/legalsylvain)
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
-->
<odoo>
<record id="base.group_no_one" model="res.groups">
<field name="users" eval="[(4, ref('base.user_admin'))]" />
</record>
<record id="sql_request_abstract.group_sql_request_user" model="res.groups">
<field name="users" eval="[(4, ref('base.user_demo'))]" />
</record>
</odoo>
8 changes: 8 additions & 0 deletions bi_sql_editor/hooks.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# Copyright 2015-2017 Onestein (<http://www.onestein.eu>)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).


def uninstall_hook(env):
recs = env["bi.sql.view"].search([])

Check warning on line 6 in bi_sql_editor/hooks.py

View check run for this annotation

Codecov / codecov/patch

bi_sql_editor/hooks.py#L6

Added line #L6 was not covered by tests
for rec in recs:
rec.button_set_draft()

Check warning on line 8 in bi_sql_editor/hooks.py

View check run for this annotation

Codecov / codecov/patch

bi_sql_editor/hooks.py#L8

Added line #L8 was not covered by tests
Loading
Loading