Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
5 changes: 5 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,15 +22,20 @@ Available addons
addon | version | maintainers | summary
--- | --- | --- | ---
[barcode_action](barcode_action/) | 15.0.1.0.0 | | Allows to use barcodes as a launcher
[base_export_manager](base_export_manager/) | 15.0.1.0.0 | | Manage model export profiles
[base_menu_visibility_restriction](base_menu_visibility_restriction/) | 15.0.1.0.0 | [![victoralmau](https://github.com/victoralmau.png?size=30px)](https://github.com/victoralmau) | Restrict (with groups) menu visibilty
[base_substate](base_substate/) | 15.0.1.0.0 | | Base Sub State
[base_technical_features](base_technical_features/) | 15.0.1.1.0 | | Access to technical features without activating debug mode
[base_tier_validation](base_tier_validation/) | 15.0.1.1.0 | [![LoisRForgeFlow](https://github.com/LoisRForgeFlow.png?size=30px)](https://github.com/LoisRForgeFlow) | Implement a validation process based on tiers.
[base_tier_validation_formula](base_tier_validation_formula/) | 15.0.1.0.0 | | Formulas for Base tier validation
[chained_swapper](chained_swapper/) | 15.0.1.0.1 | | Chained Swapper
[date_range](date_range/) | 15.0.1.0.0 | [![lmignon](https://github.com/lmignon.png?size=30px)](https://github.com/lmignon) | Manage all kind of date range
[default_multi_user](default_multi_user/) | 15.0.1.0.0 | [![LoisRForgeFlow](https://github.com/LoisRForgeFlow.png?size=30px)](https://github.com/LoisRForgeFlow) | Allows to share user-defined defaults among several users.
[document_quick_access](document_quick_access/) | 15.0.1.0.0 | [![etobella](https://github.com/etobella.png?size=30px)](https://github.com/etobella) | Document quick access
[document_quick_access_folder_auto_classification](document_quick_access_folder_auto_classification/) | 15.0.1.1.0 | [![etobella](https://github.com/etobella.png?size=30px)](https://github.com/etobella) | Auto classification of Documents after reading a QR
[filter_multi_user](filter_multi_user/) | 15.0.1.0.0 | [![LoisRForgeFlow](https://github.com/LoisRForgeFlow.png?size=30px)](https://github.com/LoisRForgeFlow) | Allows to share user-defined filters filters among several users.
[mass_editing](mass_editing/) | 15.0.1.0.0 | | Mass Editing
[multi_step_wizard](multi_step_wizard/) | 15.0.1.0.0 | | Multi-Steps Wizards

[//]: # (end addons)

Expand Down
145 changes: 145 additions & 0 deletions base_export_manager/README.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,145 @@
============================
Manage model export profiles
============================

.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

.. |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%2Fserver--ux-lightgray.png?logo=github
:target: https://github.com/OCA/server-ux/tree/15.0/base_export_manager
:alt: OCA/server-ux
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
:target: https://translation.odoo-community.org/projects/server-ux-15-0/server-ux-15-0-base_export_manager
:alt: Translate me on Weblate
.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png
:target: https://runbot.odoo-community.org/runbot/250/15.0
:alt: Try me on Runbot

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

This module extends the export capability:

1. It allows an admin to manage export profiles (``ir.exports``) that
Odoo stores internally but does not show anywhere.
2. It also adds a new column to access rights to enable/disable export and
override the export method to check if the user is allowed to export. Export
is enabled by default.

**Table of contents**

.. contents::
:local:

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

* Activate the developer mode
* Go to Settings > Users > Groups to select a user group
* Edit the group and go to the Access Rights tab
* Uncheck the "Export Access" box on the object of your choice and save

You can also go to Settings > Technical > Security > Access Rights.

Usage
=====

You can create the export profiles as you are used to:

* Go to any list view.
* Check some records.
* Click *Action > Export*.
* Use the wizard to choose the columns to export.
* Click on the *Template* dropdown and select *New template*
* Give it a name.
* Click on the floppy disk icon to save it.

To manage export profiles, you need to:

* Go to *Settings > Technical > User Interface > Export Profiles*.
* Create a new one.
* Choose a name.
* Choose a model (table in the database).
* Choose the fields to export.

* If you choose a related field, you can choose also up to 4 levels of
subfields.
* You can drag & drop to reorder the fields.

To use one of those profiles, you need to:

* Go to any list view.
* Check some records.
* Click *Action > Export*.
* Choose your saved export from *Saved exports*.
* Press *Export to file*.

Once you have configured groups who cannot export an object:

* Connect as a user of this group
* Go to the list view of the object you disabled the export
* Select records and open the Action menu. The "Export" is not there.

Known issues / Roadmap
======================

* Translated labels are not used in final exported file.

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

Bugs are tracked on `GitHub Issues <https://github.com/OCA/server-ux/issues>`_.
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us smashing it by providing a detailed and welcomed
`feedback <https://github.com/OCA/server-ux/issues/new?body=module:%20base_export_manager%0Aversion:%2015.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
~~~~~~~

* Tecnativa
* LasLabs
* Ursa Information Systems
* brain-tec AG

Contributors
~~~~~~~~~~~~

* Javier Iniesta <[email protected]>
* Antonio Espinosa <[email protected]>
* Rafael Blasco <[email protected]>
* Jairo Llopis <[email protected]>
* Dave Lasley <[email protected]>
* Sandip Mangukiya <[email protected]>
* Maxime Chambreuil <[email protected]>
* Olivier Jossen <[email protected]>
* Alexandre Díaz <[email protected]>
* Kevin Khao <[email protected]>

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.

This module is part of the `OCA/server-ux <https://github.com/OCA/server-ux/tree/15.0/base_export_manager>`_ project on GitHub.

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
2 changes: 2 additions & 0 deletions base_export_manager/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
from . import models
from .hooks import post_init_hook
34 changes: 34 additions & 0 deletions base_export_manager/__manifest__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
# Copyright 2015 Tecnativa - Antonio Espinosa
# Copyright 2016 Tecnativa - Pedro M. Baeza
# Copyright 2018 Tecnativa - Jairo Llopis
# Copyright 2019 brain-tec AG - Olivier Jossen
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).

{
"name": "Manage model export profiles",
"category": "Personalization",
"version": "15.0.1.0.0",
"depends": ["web"],
"data": [
"views/ir_exports.xml",
"views/ir_model.xml",
"views/ir_model_access.xml",
"views/res_groups.xml",
],
"qweb": ["static/src/xml/base.xml"],
"author": "Tecnativa, "
"LasLabs, "
"Ursa Information Systems, "
"brain-tec AG, "
"Odoo Community Association (OCA)",
"website": "https://github.com/OCA/server-ux",
"license": "AGPL-3",
"assets": {
"web.assets_backend": [
"base_export_manager/static/src/js/base_export_manager.js",
],
"web.assets_qweb": ["base_export_manager/static/src/xml/base.xml"],
},
"installable": True,
"application": False,
}
21 changes: 21 additions & 0 deletions base_export_manager/hooks.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# Copyright 2016 Jairo Llopis <[email protected]>
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
from odoo import SUPERUSER_ID, api


def post_init_hook(cr, registry):
"""Loaded after installing the module.

``ir.exports.line.name`` was before a char field, and now it is a computed
char field with stored values. We have to inverse it to avoid database
inconsistencies.
"""
with api.Environment.manage():
env = api.Environment(cr, SUPERUSER_ID, {})
env["ir.exports.line"].search(
[
("field1_id", "=", False),
("export_id", "!=", False),
("name", "!=", False),
]
)._inverse_name()
Loading