Skip to content

Commit

Permalink
Merge commit 'refs/pull/563/head' of https://github.com/oca/server-ux
Browse files Browse the repository at this point in the history
…into 16.0-3114
  • Loading branch information
docker-odoo committed Jul 25, 2023
2 parents 7d7b14b + a4c54db commit f8e48b9
Show file tree
Hide file tree
Showing 93 changed files with 13,410 additions and 0 deletions.
145 changes: 145 additions & 0 deletions base_export_manager/README.rst
@@ -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 <javieria@antiun.com>
* Antonio Espinosa <antonio.espinosa@tecnativa.com>
* Rafael Blasco <rafael.blasco@tecnativa.com>
* Jairo Llopis <jairo.llopis@tecnativa.com>
* Dave Lasley <dave@laslabs.com>
* Sandip Mangukiya <smangukiya@ursainfosystems.com>
* Maxime Chambreuil <mchambreuil@ursainfosystems.com>
* Olivier Jossen <olivier.jossen@braintec-group.com>
* Alexandre Díaz <alexandre.diaz@tecnativa.com>
* Kevin Khao <kevin.khao@akretion.com>

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
@@ -0,0 +1,2 @@
from . import models
from .hooks import post_init_hook
34 changes: 34 additions & 0 deletions base_export_manager/__manifest__.py
@@ -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": "16.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
@@ -0,0 +1,21 @@
# Copyright 2016 Jairo Llopis <jairo.llopis@tecnativa.com>
# 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()
186 changes: 186 additions & 0 deletions base_export_manager/i18n/ar.po
@@ -0,0 +1,186 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * base_export_manager
#
# Translators:
# OCA Transbot <transbot@odoo-community.org>, 2017
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 12.0+e\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-05-20 12:59+0000\n"
"PO-Revision-Date: 2019-05-20 12:59+0000\n"
"Last-Translator: OCA Transbot <transbot@odoo-community.org>, 2017\n"
"Language-Team: Arabic (https://www.transifex.com/oca/teams/23907/ar/)\n"
"Language: ar\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 "
"&& n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n"

#. module: base_export_manager
#: model:ir.model.fields,help:base_export_manager.field_ir_exports__model_id
#: model:ir.model.fields,help:base_export_manager.field_ir_exports_line__model1_id
msgid "Database model to export."
msgstr ""

#. module: base_export_manager
#. openerp-web
#: code:addons/base_export_manager/static/src/js/base_export_manager.js:0
#, python-format
msgid "Export"
msgstr "تصدير"

#. module: base_export_manager
#: model:ir.model.fields,field_description:base_export_manager.field_ir_model_access__perm_export
msgid "Export Access"
msgstr ""

#. module: base_export_manager
#: model:ir.model.fields,field_description:base_export_manager.field_ir_exports__name
#, fuzzy
msgid "Export Name"
msgstr "تصدير"

#. module: base_export_manager
#: model_terms:ir.ui.view,arch_db:base_export_manager.ir_exports_form_view
msgid "Export Profile"
msgstr ""

#. module: base_export_manager
#: model:ir.actions.act_window,name:base_export_manager.ir_exports_action
#: model:ir.ui.menu,name:base_export_manager.ir_exports_menu
#: model_terms:ir.ui.view,arch_db:base_export_manager.ir_exports_tree_view
msgid "Export Profiles"
msgstr ""

#. module: base_export_manager
#: model:ir.model,name:base_export_manager.model_ir_exports
msgid "Exports"
msgstr ""

#. module: base_export_manager
#: model:ir.model,name:base_export_manager.model_ir_exports_line
msgid "Exports Line"
msgstr ""

#. module: base_export_manager
#: code:addons/base_export_manager/models/ir_exports_line.py:0
#, python-format
msgid "Field '%s' already exists"
msgstr ""

#. module: base_export_manager
#: code:addons/base_export_manager/models/ir_exports_line.py:0
#, python-format
msgid "Field '%s' does not exist"
msgstr ""

#. module: base_export_manager
#: code:addons/base_export_manager/models/ir_exports_line.py:0
#, python-format
msgid "Field '%s' not found in model '%s'"
msgstr ""

#. module: base_export_manager
#: model:ir.model.fields,field_description:base_export_manager.field_ir_exports_line__name
msgid "Field Name"
msgstr ""

#. module: base_export_manager
#: model:ir.model.fields,help:base_export_manager.field_ir_exports_line__name
msgid "Field's technical name."
msgstr ""

#. module: base_export_manager
#: model:ir.model.fields,field_description:base_export_manager.field_ir_exports_line__field1_id
msgid "First field"
msgstr ""

#. module: base_export_manager
#: model:ir.model.fields,field_description:base_export_manager.field_ir_exports_line__model1_id
msgid "First model"
msgstr ""

#. module: base_export_manager
#: model:ir.model.fields,field_description:base_export_manager.field_ir_exports_line__field4_id
msgid "Fourth field"
msgstr ""

#. module: base_export_manager
#: model:ir.model.fields,field_description:base_export_manager.field_ir_exports_line__model4_id
msgid "Fourth model"
msgstr ""

#. module: base_export_manager
#: model:ir.model,name:base_export_manager.model_ir_http
msgid "HTTP Routing"
msgstr ""

#. module: base_export_manager
#: code:addons/base_export_manager/models/ir_exports_line.py:0
#, python-format
msgid "It's not allowed to have more than 4 levels depth: %s"
msgstr ""

#. module: base_export_manager
#: model:ir.model.fields,field_description:base_export_manager.field_ir_exports_line__label
msgid "Label"
msgstr ""

#. module: base_export_manager
#: model:ir.model.fields,field_description:base_export_manager.field_ir_exports__model_id
msgid "Model"
msgstr "النموذج"

#. module: base_export_manager
#: model:ir.model,name:base_export_manager.model_ir_model_access
msgid "Model Access"
msgstr ""

#. module: base_export_manager
#: model:ir.model.fields,help:base_export_manager.field_ir_exports__resource
msgid "Model's technical name."
msgstr ""

#. module: base_export_manager
#: model:ir.model.fields,field_description:base_export_manager.field_ir_exports__resource
msgid "Resource"
msgstr ""

#. module: base_export_manager
#: model:ir.model.fields,field_description:base_export_manager.field_ir_exports_line__field2_id
msgid "Second field"
msgstr ""

#. module: base_export_manager
#: model:ir.model.fields,field_description:base_export_manager.field_ir_exports_line__model2_id
msgid "Second model"
msgstr ""

#. module: base_export_manager
#: model:ir.model.fields,field_description:base_export_manager.field_ir_exports_line__sequence
msgid "Sequence"
msgstr "المسلسل"

#. module: base_export_manager
#: model:ir.model.fields,field_description:base_export_manager.field_ir_exports_line__field3_id
msgid "Third field"
msgstr ""

#. module: base_export_manager
#: model:ir.model.fields,field_description:base_export_manager.field_ir_exports_line__model3_id
msgid "Third model"
msgstr ""

#. module: base_export_manager
#: model:ir.model,name:base_export_manager.model_res_users
msgid "Users"
msgstr "المستخدمون"

#. module: base_export_manager
#: code:addons/base_export_manager/models/ir_exports.py:0
#, python-format
msgid "You must supply a model or resource."
msgstr ""

0 comments on commit f8e48b9

Please sign in to comment.