From 3510373455aaaa12ccae813f313de0e8e9f847d5 Mon Sep 17 00:00:00 2001 From: KBR <57449423+kbr-odoo@users.noreply.github.com> Date: Wed, 8 Jul 2020 17:12:02 +0200 Subject: [PATCH] [ADD] studio: documentation export/import customizations (#705) --- studio/use_cases.rst | 1 + studio/use_cases/export_import.rst | 28 ++++++++++++++++++ .../export_import/customizations_menu.png | Bin 0 -> 5175 bytes .../media/export_import/import_modules.png | Bin 0 -> 14198 bytes 4 files changed, 29 insertions(+) create mode 100644 studio/use_cases/export_import.rst create mode 100644 studio/use_cases/media/export_import/customizations_menu.png create mode 100644 studio/use_cases/media/export_import/import_modules.png diff --git a/studio/use_cases.rst b/studio/use_cases.rst index bfccbf216..ce03ebddd 100644 --- a/studio/use_cases.rst +++ b/studio/use_cases.rst @@ -11,3 +11,4 @@ Use Cases use_cases/views use_cases/rainbow_man use_cases/reports + use_cases/export_import \ No newline at end of file diff --git a/studio/use_cases/export_import.rst b/studio/use_cases/export_import.rst new file mode 100644 index 000000000..f7ad5e684 --- /dev/null +++ b/studio/use_cases/export_import.rst @@ -0,0 +1,28 @@ +========================= +Export and Import Modules +========================= + +When you do customizations in Odoo Studio, a new module is created in your database, making it easy +to use Studio for prototyping. + +To export these customizations, activate Studio on the main dashboard and, under the menu +*Customizations*, click on *Export*. The default filename is *customizations.zip*. + +.. image:: media//export_import/customizations_menu.png + :align: center + :alt: View of the menu customizations in Odoo Studio + +| The module created contains the definition of custom models and fields, as well as the UI elements + of any customization in an XML format. +| To import and install the customizations in another instance, connect to the destination database, + activate Studio and, under *Customizations*, click on *Import*. + +.. image:: media/export_import/import_modules.png + :align: center + :alt: View of the import modules window for Odoo Studio + +.. warning:: + Studio does not know which apps are customized (because the same view can be modified on + different apps), therefore, it *does not* add the underlying modules as dependencies of the + exported module. In other words, the applications installed on the source database should be + installed on the destination database. \ No newline at end of file diff --git a/studio/use_cases/media/export_import/customizations_menu.png b/studio/use_cases/media/export_import/customizations_menu.png new file mode 100644 index 0000000000000000000000000000000000000000..0497ed5a527d34f980668618bfd91dcba0cacfb0 GIT binary patch literal 5175 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 S9raElKv7Or_A|mH^#1~Ar#(La literal 0 HcmV?d00001