From 6086701132f79d922a703d41aa3efac53c82a63d Mon Sep 17 00:00:00 2001
From: "Laurent Mignon (ACSONE)"
Date: Tue, 5 Sep 2023 19:36:32 +0200
Subject: [PATCH 01/14] [ADD] fs_product_multi_media: A drop-in replacement of
storage_product_media
and storage_media
---
fs_base_multi_media/README.rst | 35 +++++++
fs_base_multi_media/__init__.py | 1 +
fs_base_multi_media/__manifest__.py | 26 ++++++
fs_base_multi_media/models/__init__.py | 3 +
fs_base_multi_media/models/fs_media.py | 28 ++++++
.../models/fs_media_relation_mixin.py | 74 +++++++++++++++
fs_base_multi_media/models/fs_media_type.py | 13 +++
fs_base_multi_media/readme/CONTRIBUTORS.rst | 2 +
fs_base_multi_media/readme/DESCRIPTION.rst | 14 +++
fs_base_multi_media/readme/ROADMAP.rst | 2 +
fs_base_multi_media/readme/USAGE.rst | 3 +
fs_base_multi_media/security/fs_media.xml | 25 +++++
.../security/fs_media_type.xml | 25 +++++
fs_base_multi_media/security/res_groups.xml | 12 +++
.../static/description/icon.png | Bin 0 -> 9455 bytes
fs_base_multi_media/views/fs_media.xml | 88 ++++++++++++++++++
.../views/fs_media_relation_mixin.xml | 55 +++++++++++
fs_base_multi_media/views/fs_media_type.xml | 69 ++++++++++++++
18 files changed, 475 insertions(+)
create mode 100644 fs_base_multi_media/README.rst
create mode 100644 fs_base_multi_media/__init__.py
create mode 100644 fs_base_multi_media/__manifest__.py
create mode 100644 fs_base_multi_media/models/__init__.py
create mode 100644 fs_base_multi_media/models/fs_media.py
create mode 100644 fs_base_multi_media/models/fs_media_relation_mixin.py
create mode 100644 fs_base_multi_media/models/fs_media_type.py
create mode 100644 fs_base_multi_media/readme/CONTRIBUTORS.rst
create mode 100644 fs_base_multi_media/readme/DESCRIPTION.rst
create mode 100644 fs_base_multi_media/readme/ROADMAP.rst
create mode 100644 fs_base_multi_media/readme/USAGE.rst
create mode 100644 fs_base_multi_media/security/fs_media.xml
create mode 100644 fs_base_multi_media/security/fs_media_type.xml
create mode 100644 fs_base_multi_media/security/res_groups.xml
create mode 100644 fs_base_multi_media/static/description/icon.png
create mode 100644 fs_base_multi_media/views/fs_media.xml
create mode 100644 fs_base_multi_media/views/fs_media_relation_mixin.xml
create mode 100644 fs_base_multi_media/views/fs_media_type.xml
diff --git a/fs_base_multi_media/README.rst b/fs_base_multi_media/README.rst
new file mode 100644
index 0000000000..38929e8775
--- /dev/null
+++ b/fs_base_multi_media/README.rst
@@ -0,0 +1,35 @@
+**This file is going to be generated by oca-gen-addon-readme.**
+
+*Manual changes will be overwritten.*
+
+Please provide content in the ``readme`` directory:
+
+* **DESCRIPTION.rst** (required)
+* INSTALL.rst (optional)
+* CONFIGURE.rst (optional)
+* **USAGE.rst** (optional, highly recommended)
+* DEVELOP.rst (optional)
+* ROADMAP.rst (optional)
+* HISTORY.rst (optional, recommended)
+* **CONTRIBUTORS.rst** (optional, highly recommended)
+* CREDITS.rst (optional)
+
+Content of this README will also be drawn from the addon manifest,
+from keys such as name, authors, maintainers, development_status,
+and license.
+
+A good, one sentence summary in the manifest is also highly recommended.
+
+
+Automatic changelog generation
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+`HISTORY.rst` can be auto generated using `towncrier `_.
+
+Just put towncrier compatible changelog fragments into `readme/newsfragments`
+and the changelog file will be automatically generated and updated when a new fragment is added.
+
+Please refer to `towncrier` documentation to know more.
+
+NOTE: the changelog will be automatically generated when using `/ocabot merge $option`.
+If you need to run it manually, refer to `OCA/maintainer-tools README `_.
diff --git a/fs_base_multi_media/__init__.py b/fs_base_multi_media/__init__.py
new file mode 100644
index 0000000000..0650744f6b
--- /dev/null
+++ b/fs_base_multi_media/__init__.py
@@ -0,0 +1 @@
+from . import models
diff --git a/fs_base_multi_media/__manifest__.py b/fs_base_multi_media/__manifest__.py
new file mode 100644
index 0000000000..bb39deb77b
--- /dev/null
+++ b/fs_base_multi_media/__manifest__.py
@@ -0,0 +1,26 @@
+# Copyright 2023 ACSONE SA/NV
+# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
+
+{
+ "name": "Fs Base Multi Media",
+ "summary": """
+ Give the possibility to store media data in external filesystem from odoo""",
+ "version": "16.0.1.0.0",
+ "license": "AGPL-3",
+ "author": "ACSONE SA/NV,Akretion,Odoo Community Association (OCA)",
+ "website": "https://github.com/OCA/storage",
+ "depends": [
+ "fs_file",
+ ],
+ "data": [
+ "security/res_groups.xml",
+ "security/fs_media_type.xml",
+ "security/fs_media.xml",
+ "views/fs_media.xml",
+ "views/fs_media_relation_mixin.xml",
+ "views/fs_media_type.xml",
+ ],
+ "demo": [],
+ "maintainers": ["lmignon"],
+ "development_status": "Alpha",
+}
diff --git a/fs_base_multi_media/models/__init__.py b/fs_base_multi_media/models/__init__.py
new file mode 100644
index 0000000000..cb3a160719
--- /dev/null
+++ b/fs_base_multi_media/models/__init__.py
@@ -0,0 +1,3 @@
+from . import fs_media
+from . import fs_media_type
+from . import fs_media_relation_mixin
diff --git a/fs_base_multi_media/models/fs_media.py b/fs_base_multi_media/models/fs_media.py
new file mode 100644
index 0000000000..8c4b14aeb0
--- /dev/null
+++ b/fs_base_multi_media/models/fs_media.py
@@ -0,0 +1,28 @@
+# Copyright 2017 Akretion (http://www.akretion.com).
+# Copyright 2023 ACSONE SA/NV
+# License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl).
+
+
+from odoo import api, fields, models
+
+from odoo.addons.fs_file.fields import FSFile
+
+
+class FsMedia(models.Model):
+ _name = "fs.media"
+ _description = "Media"
+
+ file = FSFile(required=True)
+ name = fields.Char(compute="_compute_name", store=True, index=True)
+ mimetype = fields.Char(compute="_compute_mimetype", store=True)
+ media_type_id = fields.Many2one("fs.media.type", "Media Type")
+
+ @api.depends("file")
+ def _compute_name(self):
+ for record in self:
+ record.name = record.file.name if record.file else None
+
+ @api.depends("file")
+ def _compute_mimetype(self):
+ for record in self:
+ record.mimetype = record.file.mimetype if record.file else None
diff --git a/fs_base_multi_media/models/fs_media_relation_mixin.py b/fs_base_multi_media/models/fs_media_relation_mixin.py
new file mode 100644
index 0000000000..cabc5c9c28
--- /dev/null
+++ b/fs_base_multi_media/models/fs_media_relation_mixin.py
@@ -0,0 +1,74 @@
+# Copyright 2023 ACSONE SA/NV
+# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
+
+from odoo import api, fields, models
+
+from odoo.addons.fs_file import fields as fs_fields
+
+
+class FsMediaRelationMixin(models.AbstractModel):
+
+ _name = "fs.media.relation.mixin"
+ _description = "Media Relation"
+ _order = "sequence, name"
+ _rec_name = "name"
+
+ sequence = fields.Integer()
+ link_existing = fields.Boolean(
+ string="Link existing media",
+ default=False,
+ )
+ media_id = fields.Many2one(
+ comodel_name="fs.media",
+ string="Linked media",
+ )
+ specific_file = fs_fields.FSFile("Specific Media")
+ specific_media_type_id = fields.Many2one(
+ "fs.media.type",
+ )
+ file = fs_fields.FSFile("Media", compute="_compute_media", store=False)
+ media_type_id = fields.Many2one(
+ "fs.media.type", compute="_compute_media", store=False
+ )
+ name = fields.Char(compute="_compute_name", store=True, index=True)
+ mimetype = fields.Char(compute="_compute_mimetype", store=True)
+
+ @api.depends("file")
+ def _compute_name(self):
+ for record in self:
+ record.name = record.file.name if record.file else None
+
+ @api.depends("file")
+ def _compute_mimetypes(self):
+ for record in self:
+ record.mimetype = record.file.mimetype if record.file else None
+
+ @api.depends("media_id", "specific_file", "link_existing")
+ def _compute_media(self):
+ for record in self:
+ if record.link_existing:
+ record.file = record.media_id.file
+ record.media_type_id = record.media_id.media_type_id
+ else:
+ record.file = record.specific_file
+ record.media_type_id = record.specific_media_type_id
+
+ @api.model
+ def _cleanup_vals(self, vals):
+ if (
+ "link_existing" in vals
+ and vals["link_existing"]
+ and "specific_file" in vals
+ ):
+ vals["specific_file"] = False
+ return vals
+
+ @api.model_create_multi
+ def create(self, vals_list):
+ for vals in vals_list:
+ self._cleanup_vals(vals)
+ return super().create(vals_list)
+
+ def write(self, vals):
+ self._cleanup_vals(vals)
+ return super().write(vals)
diff --git a/fs_base_multi_media/models/fs_media_type.py b/fs_base_multi_media/models/fs_media_type.py
new file mode 100644
index 0000000000..014533eba4
--- /dev/null
+++ b/fs_base_multi_media/models/fs_media_type.py
@@ -0,0 +1,13 @@
+# Copyright 2017 Akretion (http://www.akretion.com).
+# @author Sébastien BEAU
+# License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl).
+
+from odoo import fields, models
+
+
+class FsMediaType(models.Model):
+ _name = "fs.media.type"
+ _description = "Media Type"
+
+ name = fields.Char(translate=True, required=True)
+ code = fields.Char()
diff --git a/fs_base_multi_media/readme/CONTRIBUTORS.rst b/fs_base_multi_media/readme/CONTRIBUTORS.rst
new file mode 100644
index 0000000000..dba4d6f397
--- /dev/null
+++ b/fs_base_multi_media/readme/CONTRIBUTORS.rst
@@ -0,0 +1,2 @@
+* Sebastien Beau
+* Laurent Mignon (https://www.acsone.eu/)
diff --git a/fs_base_multi_media/readme/DESCRIPTION.rst b/fs_base_multi_media/readme/DESCRIPTION.rst
new file mode 100644
index 0000000000..d8fe9d5c6a
--- /dev/null
+++ b/fs_base_multi_media/readme/DESCRIPTION.rst
@@ -0,0 +1,14 @@
+This addon allows you to store media file into external filesystem from odoo.
+It also provides is a technical mixin model to ease the creation of other models
+that need to be linked to multiple medias stored into external filesystems.
+
+The models provided by this addon are:
+
+* ``fs.media``: a model that stores a reference to an media stored into
+ an external filesystem.
+* ``fs.media.relation.mixin``: an abstract model that can be used to
+ as base class for models created to store an media linked to a model.
+ This abstract model defines fields and methods to transparently handle
+ 2 cases:
+ * the media is specific to the model.
+ * the media is shared between multiple models and therefore is a ``fs.media`` instance linked to the mixin.
diff --git a/fs_base_multi_media/readme/ROADMAP.rst b/fs_base_multi_media/readme/ROADMAP.rst
new file mode 100644
index 0000000000..6b2d593ef6
--- /dev/null
+++ b/fs_base_multi_media/readme/ROADMAP.rst
@@ -0,0 +1,2 @@
+* Add dedicated widget to ease the addition of new media to a model linked to
+ multiple medias. (As it's the case in the *storage_image_product* addon)
diff --git a/fs_base_multi_media/readme/USAGE.rst b/fs_base_multi_media/readme/USAGE.rst
new file mode 100644
index 0000000000..65f8ffc54e
--- /dev/null
+++ b/fs_base_multi_media/readme/USAGE.rst
@@ -0,0 +1,3 @@
+To be able to create and or manages shared images, you must have the ``Media Manager``
+role. If you do not have this role, as an authenticated user, you can
+only view the shared images.
diff --git a/fs_base_multi_media/security/fs_media.xml b/fs_base_multi_media/security/fs_media.xml
new file mode 100644
index 0000000000..96539f93ff
--- /dev/null
+++ b/fs_base_multi_media/security/fs_media.xml
@@ -0,0 +1,25 @@
+
+
+
+
+
+ fs.media access read
+
+
+
+
+
+
+
+
+
+ fs.media access read
+
+
+
+
+
+
+
+
diff --git a/fs_base_multi_media/security/fs_media_type.xml b/fs_base_multi_media/security/fs_media_type.xml
new file mode 100644
index 0000000000..266b6933a6
--- /dev/null
+++ b/fs_base_multi_media/security/fs_media_type.xml
@@ -0,0 +1,25 @@
+
+
+
+
+
+ fs.media.type access read
+
+
+
+
+
+
+
+
+
+ fs.media.type access read
+
+
+
+
+
+
+
+
diff --git a/fs_base_multi_media/security/res_groups.xml b/fs_base_multi_media/security/res_groups.xml
new file mode 100644
index 0000000000..0973e4d56f
--- /dev/null
+++ b/fs_base_multi_media/security/res_groups.xml
@@ -0,0 +1,12 @@
+
+
+
+
+ Storage Media Manager
+
+
+
+
diff --git a/fs_base_multi_media/static/description/icon.png b/fs_base_multi_media/static/description/icon.png
new file mode 100644
index 0000000000000000000000000000000000000000..3a0328b516c4980e8e44cdb63fd945757ddd132d
GIT binary patch
literal 9455
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
z
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
Xviia!U7SGha1wx#SCgwmn*{w2TRX*I
literal 0
HcmV?d00001
diff --git a/fs_base_multi_media/views/fs_media.xml b/fs_base_multi_media/views/fs_media.xml
new file mode 100644
index 0000000000..7be4187322
--- /dev/null
+++ b/fs_base_multi_media/views/fs_media.xml
@@ -0,0 +1,88 @@
+
+
+
+
+
+ fs.media.form
+ fs.media
+
+
+
+
+
+
+ fs.media.search
+ fs.media
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ fs.media.tree
+ fs.media
+
+
+
+
+
+
+
+
+
+
+
+ Fs Media
+ fs.media
+ tree,form
+ []
+ {}
+
+
+
+
+
+
diff --git a/fs_base_multi_media/views/fs_media_relation_mixin.xml b/fs_base_multi_media/views/fs_media_relation_mixin.xml
new file mode 100644
index 0000000000..308e57cddf
--- /dev/null
+++ b/fs_base_multi_media/views/fs_media_relation_mixin.xml
@@ -0,0 +1,55 @@
+
+
+
+
+
+ fs.media.relation.mixin.form
+ fs.media.relation.mixin
+
+
+
+
+
+
+ fs.media.relation.mixin.tree
+ fs.media.relation.mixin
+
+
+
+
+
+
+
+
+
diff --git a/fs_base_multi_media/views/fs_media_type.xml b/fs_base_multi_media/views/fs_media_type.xml
new file mode 100644
index 0000000000..498fab667e
--- /dev/null
+++ b/fs_base_multi_media/views/fs_media_type.xml
@@ -0,0 +1,69 @@
+
+
+
+
+ fs.media.type
+
+
+
+
+
+
+
+
+
+ fs.media.type
+
+
+
+
+
+
+ fs.media.type
+
+
+
+
+
+
+
+
+
+ Media Type
+ ir.actions.act_window
+ fs.media.type
+ tree,form
+
+ []
+ {}
+
+
+
+
+
+ form
+
+
+
+
+
+
+ tree
+
+
+
+
+
+
+
From e85f8bf740477f6442926f397b67171e0114a03a Mon Sep 17 00:00:00 2001
From: oca-ci
Date: Mon, 25 Sep 2023 10:55:59 +0000
Subject: [PATCH 02/14] [UPD] Update fs_base_multi_media.pot
---
.../i18n/fs_base_multi_media.pot | 156 ++++++++++++++++++
1 file changed, 156 insertions(+)
create mode 100644 fs_base_multi_media/i18n/fs_base_multi_media.pot
diff --git a/fs_base_multi_media/i18n/fs_base_multi_media.pot b/fs_base_multi_media/i18n/fs_base_multi_media.pot
new file mode 100644
index 0000000000..9947a89a9a
--- /dev/null
+++ b/fs_base_multi_media/i18n/fs_base_multi_media.pot
@@ -0,0 +1,156 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * fs_base_multi_media
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 16.0\n"
+"Report-Msgid-Bugs-To: \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: fs_base_multi_media
+#: model_terms:ir.ui.view,arch_db:fs_base_multi_media.fs_media_search_view
+msgid "Attachment"
+msgstr ""
+
+#. module: fs_base_multi_media
+#: model:ir.model.fields,field_description:fs_base_multi_media.field_fs_media_type__code
+msgid "Code"
+msgstr ""
+
+#. module: fs_base_multi_media
+#: model:ir.model.fields,field_description:fs_base_multi_media.field_fs_media__create_uid
+#: model:ir.model.fields,field_description:fs_base_multi_media.field_fs_media_type__create_uid
+#: model_terms:ir.ui.view,arch_db:fs_base_multi_media.fs_media_search_view
+msgid "Created by"
+msgstr ""
+
+#. module: fs_base_multi_media
+#: model:ir.model.fields,field_description:fs_base_multi_media.field_fs_media__create_date
+#: model:ir.model.fields,field_description:fs_base_multi_media.field_fs_media_type__create_date
+msgid "Created on"
+msgstr ""
+
+#. module: fs_base_multi_media
+#: model:ir.model.fields,field_description:fs_base_multi_media.field_fs_media__display_name
+#: model:ir.model.fields,field_description:fs_base_multi_media.field_fs_media_type__display_name
+msgid "Display Name"
+msgstr ""
+
+#. module: fs_base_multi_media
+#: model:ir.model.fields,field_description:fs_base_multi_media.field_fs_media__file
+msgid "File"
+msgstr ""
+
+#. module: fs_base_multi_media
+#: model:ir.actions.act_window,name:fs_base_multi_media.fs_media_action
+#: model:ir.ui.menu,name:fs_base_multi_media.fs_media_menu
+msgid "Fs Media"
+msgstr ""
+
+#. module: fs_base_multi_media
+#: model_terms:ir.ui.view,arch_db:fs_base_multi_media.fs_media_search_view
+msgid "Group By"
+msgstr ""
+
+#. module: fs_base_multi_media
+#: model:ir.model.fields,field_description:fs_base_multi_media.field_fs_media__id
+#: model:ir.model.fields,field_description:fs_base_multi_media.field_fs_media_type__id
+msgid "ID"
+msgstr ""
+
+#. module: fs_base_multi_media
+#: model:ir.model.fields,field_description:fs_base_multi_media.field_fs_media____last_update
+#: model:ir.model.fields,field_description:fs_base_multi_media.field_fs_media_type____last_update
+msgid "Last Modified on"
+msgstr ""
+
+#. module: fs_base_multi_media
+#: model:ir.model.fields,field_description:fs_base_multi_media.field_fs_media__write_uid
+#: model:ir.model.fields,field_description:fs_base_multi_media.field_fs_media_type__write_uid
+msgid "Last Updated by"
+msgstr ""
+
+#. module: fs_base_multi_media
+#: model:ir.model.fields,field_description:fs_base_multi_media.field_fs_media__write_date
+#: model:ir.model.fields,field_description:fs_base_multi_media.field_fs_media_type__write_date
+msgid "Last Updated on"
+msgstr ""
+
+#. module: fs_base_multi_media
+#: model:ir.model.fields,field_description:fs_base_multi_media.field_fs_media_relation_mixin__link_existing
+msgid "Link existing media"
+msgstr ""
+
+#. module: fs_base_multi_media
+#: model:ir.model.fields,field_description:fs_base_multi_media.field_fs_media_relation_mixin__media_id
+msgid "Linked media"
+msgstr ""
+
+#. module: fs_base_multi_media
+#: model:ir.model,name:fs_base_multi_media.model_fs_media
+#: model:ir.model.fields,field_description:fs_base_multi_media.field_fs_media_relation_mixin__file
+msgid "Media"
+msgstr ""
+
+#. module: fs_base_multi_media
+#: model:ir.model,name:fs_base_multi_media.model_fs_media_relation_mixin
+msgid "Media Relation"
+msgstr ""
+
+#. module: fs_base_multi_media
+#: model:ir.actions.act_window,name:fs_base_multi_media.act_open_fs_media_type_view
+#: model:ir.model,name:fs_base_multi_media.model_fs_media_type
+#: model:ir.model.fields,field_description:fs_base_multi_media.field_fs_media__media_type_id
+#: model:ir.model.fields,field_description:fs_base_multi_media.field_fs_media_relation_mixin__media_type_id
+#: model:ir.ui.menu,name:fs_base_multi_media.menu_fs_media_type
+msgid "Media Type"
+msgstr ""
+
+#. module: fs_base_multi_media
+#: model_terms:ir.ui.view,arch_db:fs_base_multi_media.fs_media_search_view
+msgid "MimeType"
+msgstr ""
+
+#. module: fs_base_multi_media
+#: model:ir.model.fields,field_description:fs_base_multi_media.field_fs_media__mimetype
+#: model:ir.model.fields,field_description:fs_base_multi_media.field_fs_media_relation_mixin__mimetype
+msgid "Mimetype"
+msgstr ""
+
+#. module: fs_base_multi_media
+#: model:ir.model.fields,field_description:fs_base_multi_media.field_fs_media__name
+#: model:ir.model.fields,field_description:fs_base_multi_media.field_fs_media_relation_mixin__name
+#: model:ir.model.fields,field_description:fs_base_multi_media.field_fs_media_type__name
+msgid "Name"
+msgstr ""
+
+#. module: fs_base_multi_media
+#: model:ir.model.fields,field_description:fs_base_multi_media.field_fs_media_relation_mixin__sequence
+msgid "Sequence"
+msgstr ""
+
+#. module: fs_base_multi_media
+#: model:ir.model.fields,field_description:fs_base_multi_media.field_fs_media_relation_mixin__specific_file
+msgid "Specific Media"
+msgstr ""
+
+#. module: fs_base_multi_media
+#: model:ir.model.fields,field_description:fs_base_multi_media.field_fs_media_relation_mixin__specific_media_type_id
+msgid "Specific Media Type"
+msgstr ""
+
+#. module: fs_base_multi_media
+#: model:res.groups,name:fs_base_multi_media.group_media_manager
+msgid "Storage Media Manager"
+msgstr ""
+
+#. module: fs_base_multi_media
+#: model_terms:ir.ui.view,arch_db:fs_base_multi_media.fs_media_search_view
+msgid "Type"
+msgstr ""
From ab9f19369ac7025e36c5504a8e02c2d3beb2f4fb Mon Sep 17 00:00:00 2001
From: OCA-git-bot
Date: Mon, 25 Sep 2023 10:59:47 +0000
Subject: [PATCH 03/14] [BOT] post-merge updates
---
fs_base_multi_media/README.rst | 130 ++++-
fs_base_multi_media/__manifest__.py | 2 +-
.../static/description/index.html | 459 ++++++++++++++++++
3 files changed, 566 insertions(+), 25 deletions(-)
create mode 100644 fs_base_multi_media/static/description/index.html
diff --git a/fs_base_multi_media/README.rst b/fs_base_multi_media/README.rst
index 38929e8775..289c646716 100644
--- a/fs_base_multi_media/README.rst
+++ b/fs_base_multi_media/README.rst
@@ -1,35 +1,117 @@
-**This file is going to be generated by oca-gen-addon-readme.**
+===================
+Fs Base Multi Media
+===================
-*Manual changes will be overwritten.*
+..
+ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+ !! This file is generated by oca-gen-addon-readme !!
+ !! changes will be overwritten. !!
+ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+ !! source digest: sha256:854289aaf0e0ead7af13579fc0fb6eda2958f5386b77f5fbe056915dcc514666
+ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-Please provide content in the ``readme`` directory:
+.. |badge1| image:: https://img.shields.io/badge/maturity-Alpha-red.png
+ :target: https://odoo-community.org/page/development-status
+ :alt: Alpha
+.. |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%2Fstorage-lightgray.png?logo=github
+ :target: https://github.com/OCA/storage/tree/16.0/fs_base_multi_media
+ :alt: OCA/storage
+.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
+ :target: https://translation.odoo-community.org/projects/storage-16-0/storage-16-0-fs_base_multi_media
+ :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/storage&target_branch=16.0
+ :alt: Try me on Runboat
-* **DESCRIPTION.rst** (required)
-* INSTALL.rst (optional)
-* CONFIGURE.rst (optional)
-* **USAGE.rst** (optional, highly recommended)
-* DEVELOP.rst (optional)
-* ROADMAP.rst (optional)
-* HISTORY.rst (optional, recommended)
-* **CONTRIBUTORS.rst** (optional, highly recommended)
-* CREDITS.rst (optional)
+|badge1| |badge2| |badge3| |badge4| |badge5|
-Content of this README will also be drawn from the addon manifest,
-from keys such as name, authors, maintainers, development_status,
-and license.
+This addon allows you to store media file into external filesystem from odoo.
+It also provides is a technical mixin model to ease the creation of other models
+that need to be linked to multiple medias stored into external filesystems.
-A good, one sentence summary in the manifest is also highly recommended.
+The models provided by this addon are:
+* ``fs.media``: a model that stores a reference to an media stored into
+ an external filesystem.
+* ``fs.media.relation.mixin``: an abstract model that can be used to
+ as base class for models created to store an media linked to a model.
+ This abstract model defines fields and methods to transparently handle
+ 2 cases:
+ * the media is specific to the model.
+ * the media is shared between multiple models and therefore is a ``fs.media`` instance linked to the mixin.
-Automatic changelog generation
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.. IMPORTANT::
+ This is an alpha version, the data model and design can change at any time without warning.
+ Only for development or testing purpose, do not use in production.
+ `More details on development status `_
-`HISTORY.rst` can be auto generated using `towncrier `_.
+**Table of contents**
-Just put towncrier compatible changelog fragments into `readme/newsfragments`
-and the changelog file will be automatically generated and updated when a new fragment is added.
+.. contents::
+ :local:
-Please refer to `towncrier` documentation to know more.
+Usage
+=====
-NOTE: the changelog will be automatically generated when using `/ocabot merge $option`.
-If you need to run it manually, refer to `OCA/maintainer-tools README `_.
+To be able to create and or manages shared images, you must have the ``Media Manager``
+role. If you do not have this role, as an authenticated user, you can
+only view the shared images.
+
+Known issues / Roadmap
+======================
+
+* Add dedicated widget to ease the addition of new media to a model linked to
+ multiple medias. (As it's the case in the *storage_image_product* addon)
+
+Bug Tracker
+===========
+
+Bugs are tracked on `GitHub 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 `_.
+
+Do not contact contributors directly about support or help with technical issues.
+
+Credits
+=======
+
+Authors
+~~~~~~~
+
+* ACSONE SA/NV
+* Akretion
+
+Contributors
+~~~~~~~~~~~~
+
+* Sebastien Beau
+* Laurent Mignon (https://www.acsone.eu/)
+
+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-lmignon| image:: https://github.com/lmignon.png?size=40px
+ :target: https://github.com/lmignon
+ :alt: lmignon
+
+Current `maintainer `__:
+
+|maintainer-lmignon|
+
+This module is part of the `OCA/storage `_ project on GitHub.
+
+You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
diff --git a/fs_base_multi_media/__manifest__.py b/fs_base_multi_media/__manifest__.py
index bb39deb77b..1af9e4cbfa 100644
--- a/fs_base_multi_media/__manifest__.py
+++ b/fs_base_multi_media/__manifest__.py
@@ -5,7 +5,7 @@
"name": "Fs Base Multi Media",
"summary": """
Give the possibility to store media data in external filesystem from odoo""",
- "version": "16.0.1.0.0",
+ "version": "16.0.1.0.1",
"license": "AGPL-3",
"author": "ACSONE SA/NV,Akretion,Odoo Community Association (OCA)",
"website": "https://github.com/OCA/storage",
diff --git a/fs_base_multi_media/static/description/index.html b/fs_base_multi_media/static/description/index.html
new file mode 100644
index 0000000000..699c5cd514
--- /dev/null
+++ b/fs_base_multi_media/static/description/index.html
@@ -0,0 +1,459 @@
+
+
+
+
+
+
+Fs Base Multi Media
+
+
+
+
+
+
From 7fa6506a7807b28fbe9cc2c62a566ba1757f7d34 Mon Sep 17 00:00:00 2001
From: Ivorra78
Date: Fri, 27 Oct 2023 12:39:28 +0000
Subject: [PATCH 04/14] Added translation using Weblate (Spanish)
---
fs_base_multi_media/i18n/es.po | 157 +++++++++++++++++++++++++++++++++
1 file changed, 157 insertions(+)
create mode 100644 fs_base_multi_media/i18n/es.po
diff --git a/fs_base_multi_media/i18n/es.po b/fs_base_multi_media/i18n/es.po
new file mode 100644
index 0000000000..20f7167709
--- /dev/null
+++ b/fs_base_multi_media/i18n/es.po
@@ -0,0 +1,157 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * fs_base_multi_media
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 16.0\n"
+"Report-Msgid-Bugs-To: \n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"Language: es\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+
+#. module: fs_base_multi_media
+#: model_terms:ir.ui.view,arch_db:fs_base_multi_media.fs_media_search_view
+msgid "Attachment"
+msgstr ""
+
+#. module: fs_base_multi_media
+#: model:ir.model.fields,field_description:fs_base_multi_media.field_fs_media_type__code
+msgid "Code"
+msgstr ""
+
+#. module: fs_base_multi_media
+#: model:ir.model.fields,field_description:fs_base_multi_media.field_fs_media__create_uid
+#: model:ir.model.fields,field_description:fs_base_multi_media.field_fs_media_type__create_uid
+#: model_terms:ir.ui.view,arch_db:fs_base_multi_media.fs_media_search_view
+msgid "Created by"
+msgstr ""
+
+#. module: fs_base_multi_media
+#: model:ir.model.fields,field_description:fs_base_multi_media.field_fs_media__create_date
+#: model:ir.model.fields,field_description:fs_base_multi_media.field_fs_media_type__create_date
+msgid "Created on"
+msgstr ""
+
+#. module: fs_base_multi_media
+#: model:ir.model.fields,field_description:fs_base_multi_media.field_fs_media__display_name
+#: model:ir.model.fields,field_description:fs_base_multi_media.field_fs_media_type__display_name
+msgid "Display Name"
+msgstr ""
+
+#. module: fs_base_multi_media
+#: model:ir.model.fields,field_description:fs_base_multi_media.field_fs_media__file
+msgid "File"
+msgstr ""
+
+#. module: fs_base_multi_media
+#: model:ir.actions.act_window,name:fs_base_multi_media.fs_media_action
+#: model:ir.ui.menu,name:fs_base_multi_media.fs_media_menu
+msgid "Fs Media"
+msgstr ""
+
+#. module: fs_base_multi_media
+#: model_terms:ir.ui.view,arch_db:fs_base_multi_media.fs_media_search_view
+msgid "Group By"
+msgstr ""
+
+#. module: fs_base_multi_media
+#: model:ir.model.fields,field_description:fs_base_multi_media.field_fs_media__id
+#: model:ir.model.fields,field_description:fs_base_multi_media.field_fs_media_type__id
+msgid "ID"
+msgstr ""
+
+#. module: fs_base_multi_media
+#: model:ir.model.fields,field_description:fs_base_multi_media.field_fs_media____last_update
+#: model:ir.model.fields,field_description:fs_base_multi_media.field_fs_media_type____last_update
+msgid "Last Modified on"
+msgstr ""
+
+#. module: fs_base_multi_media
+#: model:ir.model.fields,field_description:fs_base_multi_media.field_fs_media__write_uid
+#: model:ir.model.fields,field_description:fs_base_multi_media.field_fs_media_type__write_uid
+msgid "Last Updated by"
+msgstr ""
+
+#. module: fs_base_multi_media
+#: model:ir.model.fields,field_description:fs_base_multi_media.field_fs_media__write_date
+#: model:ir.model.fields,field_description:fs_base_multi_media.field_fs_media_type__write_date
+msgid "Last Updated on"
+msgstr ""
+
+#. module: fs_base_multi_media
+#: model:ir.model.fields,field_description:fs_base_multi_media.field_fs_media_relation_mixin__link_existing
+msgid "Link existing media"
+msgstr ""
+
+#. module: fs_base_multi_media
+#: model:ir.model.fields,field_description:fs_base_multi_media.field_fs_media_relation_mixin__media_id
+msgid "Linked media"
+msgstr ""
+
+#. module: fs_base_multi_media
+#: model:ir.model,name:fs_base_multi_media.model_fs_media
+#: model:ir.model.fields,field_description:fs_base_multi_media.field_fs_media_relation_mixin__file
+msgid "Media"
+msgstr ""
+
+#. module: fs_base_multi_media
+#: model:ir.model,name:fs_base_multi_media.model_fs_media_relation_mixin
+msgid "Media Relation"
+msgstr ""
+
+#. module: fs_base_multi_media
+#: model:ir.actions.act_window,name:fs_base_multi_media.act_open_fs_media_type_view
+#: model:ir.model,name:fs_base_multi_media.model_fs_media_type
+#: model:ir.model.fields,field_description:fs_base_multi_media.field_fs_media__media_type_id
+#: model:ir.model.fields,field_description:fs_base_multi_media.field_fs_media_relation_mixin__media_type_id
+#: model:ir.ui.menu,name:fs_base_multi_media.menu_fs_media_type
+msgid "Media Type"
+msgstr ""
+
+#. module: fs_base_multi_media
+#: model_terms:ir.ui.view,arch_db:fs_base_multi_media.fs_media_search_view
+msgid "MimeType"
+msgstr ""
+
+#. module: fs_base_multi_media
+#: model:ir.model.fields,field_description:fs_base_multi_media.field_fs_media__mimetype
+#: model:ir.model.fields,field_description:fs_base_multi_media.field_fs_media_relation_mixin__mimetype
+msgid "Mimetype"
+msgstr ""
+
+#. module: fs_base_multi_media
+#: model:ir.model.fields,field_description:fs_base_multi_media.field_fs_media__name
+#: model:ir.model.fields,field_description:fs_base_multi_media.field_fs_media_relation_mixin__name
+#: model:ir.model.fields,field_description:fs_base_multi_media.field_fs_media_type__name
+msgid "Name"
+msgstr ""
+
+#. module: fs_base_multi_media
+#: model:ir.model.fields,field_description:fs_base_multi_media.field_fs_media_relation_mixin__sequence
+msgid "Sequence"
+msgstr ""
+
+#. module: fs_base_multi_media
+#: model:ir.model.fields,field_description:fs_base_multi_media.field_fs_media_relation_mixin__specific_file
+msgid "Specific Media"
+msgstr ""
+
+#. module: fs_base_multi_media
+#: model:ir.model.fields,field_description:fs_base_multi_media.field_fs_media_relation_mixin__specific_media_type_id
+msgid "Specific Media Type"
+msgstr ""
+
+#. module: fs_base_multi_media
+#: model:res.groups,name:fs_base_multi_media.group_media_manager
+msgid "Storage Media Manager"
+msgstr ""
+
+#. module: fs_base_multi_media
+#: model_terms:ir.ui.view,arch_db:fs_base_multi_media.fs_media_search_view
+msgid "Type"
+msgstr ""
From c0a68ba28f4e4f93e045b503dbdea13cae5ff980 Mon Sep 17 00:00:00 2001
From: Ivorra78
Date: Fri, 27 Oct 2023 12:39:38 +0000
Subject: [PATCH 05/14] Translated using Weblate (Spanish)
Currently translated at 100.0% (25 of 25 strings)
Translation: storage-16.0/storage-16.0-fs_base_multi_media
Translate-URL: https://translation.odoo-community.org/projects/storage-16-0/storage-16-0-fs_base_multi_media/es/
---
fs_base_multi_media/i18n/es.po | 54 ++++++++++++++++++----------------
1 file changed, 28 insertions(+), 26 deletions(-)
diff --git a/fs_base_multi_media/i18n/es.po b/fs_base_multi_media/i18n/es.po
index 20f7167709..a8117de77c 100644
--- a/fs_base_multi_media/i18n/es.po
+++ b/fs_base_multi_media/i18n/es.po
@@ -6,103 +6,105 @@ msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 16.0\n"
"Report-Msgid-Bugs-To: \n"
-"Last-Translator: Automatically generated\n"
+"PO-Revision-Date: 2023-10-29 00:15+0000\n"
+"Last-Translator: Ivorra78 \n"
"Language-Team: none\n"
"Language: es\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
+"X-Generator: Weblate 4.17\n"
#. module: fs_base_multi_media
#: model_terms:ir.ui.view,arch_db:fs_base_multi_media.fs_media_search_view
msgid "Attachment"
-msgstr ""
+msgstr "Archivo Adjunto"
#. module: fs_base_multi_media
#: model:ir.model.fields,field_description:fs_base_multi_media.field_fs_media_type__code
msgid "Code"
-msgstr ""
+msgstr "Código"
#. module: fs_base_multi_media
#: model:ir.model.fields,field_description:fs_base_multi_media.field_fs_media__create_uid
#: model:ir.model.fields,field_description:fs_base_multi_media.field_fs_media_type__create_uid
#: model_terms:ir.ui.view,arch_db:fs_base_multi_media.fs_media_search_view
msgid "Created by"
-msgstr ""
+msgstr "Creado por"
#. module: fs_base_multi_media
#: model:ir.model.fields,field_description:fs_base_multi_media.field_fs_media__create_date
#: model:ir.model.fields,field_description:fs_base_multi_media.field_fs_media_type__create_date
msgid "Created on"
-msgstr ""
+msgstr "Creado el"
#. module: fs_base_multi_media
#: model:ir.model.fields,field_description:fs_base_multi_media.field_fs_media__display_name
#: model:ir.model.fields,field_description:fs_base_multi_media.field_fs_media_type__display_name
msgid "Display Name"
-msgstr ""
+msgstr "Mostrar Nombre"
#. module: fs_base_multi_media
#: model:ir.model.fields,field_description:fs_base_multi_media.field_fs_media__file
msgid "File"
-msgstr ""
+msgstr "Archivo"
#. module: fs_base_multi_media
#: model:ir.actions.act_window,name:fs_base_multi_media.fs_media_action
#: model:ir.ui.menu,name:fs_base_multi_media.fs_media_menu
msgid "Fs Media"
-msgstr ""
+msgstr "Medio Fs"
#. module: fs_base_multi_media
#: model_terms:ir.ui.view,arch_db:fs_base_multi_media.fs_media_search_view
msgid "Group By"
-msgstr ""
+msgstr "Agrupar Por"
#. module: fs_base_multi_media
#: model:ir.model.fields,field_description:fs_base_multi_media.field_fs_media__id
#: model:ir.model.fields,field_description:fs_base_multi_media.field_fs_media_type__id
msgid "ID"
-msgstr ""
+msgstr "ID (identificación)"
#. module: fs_base_multi_media
#: model:ir.model.fields,field_description:fs_base_multi_media.field_fs_media____last_update
#: model:ir.model.fields,field_description:fs_base_multi_media.field_fs_media_type____last_update
msgid "Last Modified on"
-msgstr ""
+msgstr "Última Modificación el"
#. module: fs_base_multi_media
#: model:ir.model.fields,field_description:fs_base_multi_media.field_fs_media__write_uid
#: model:ir.model.fields,field_description:fs_base_multi_media.field_fs_media_type__write_uid
msgid "Last Updated by"
-msgstr ""
+msgstr "Última Actualización por"
#. module: fs_base_multi_media
#: model:ir.model.fields,field_description:fs_base_multi_media.field_fs_media__write_date
#: model:ir.model.fields,field_description:fs_base_multi_media.field_fs_media_type__write_date
msgid "Last Updated on"
-msgstr ""
+msgstr "Última Actualización el"
#. module: fs_base_multi_media
#: model:ir.model.fields,field_description:fs_base_multi_media.field_fs_media_relation_mixin__link_existing
msgid "Link existing media"
-msgstr ""
+msgstr "Vincular los medios existentes"
#. module: fs_base_multi_media
#: model:ir.model.fields,field_description:fs_base_multi_media.field_fs_media_relation_mixin__media_id
msgid "Linked media"
-msgstr ""
+msgstr "Medios vinculados"
#. module: fs_base_multi_media
#: model:ir.model,name:fs_base_multi_media.model_fs_media
#: model:ir.model.fields,field_description:fs_base_multi_media.field_fs_media_relation_mixin__file
msgid "Media"
-msgstr ""
+msgstr "Medios"
#. module: fs_base_multi_media
#: model:ir.model,name:fs_base_multi_media.model_fs_media_relation_mixin
msgid "Media Relation"
-msgstr ""
+msgstr "Relación con los medios"
#. module: fs_base_multi_media
#: model:ir.actions.act_window,name:fs_base_multi_media.act_open_fs_media_type_view
@@ -111,47 +113,47 @@ msgstr ""
#: model:ir.model.fields,field_description:fs_base_multi_media.field_fs_media_relation_mixin__media_type_id
#: model:ir.ui.menu,name:fs_base_multi_media.menu_fs_media_type
msgid "Media Type"
-msgstr ""
+msgstr "Tipo de Medio"
#. module: fs_base_multi_media
#: model_terms:ir.ui.view,arch_db:fs_base_multi_media.fs_media_search_view
msgid "MimeType"
-msgstr ""
+msgstr "Tipo Mimo"
#. module: fs_base_multi_media
#: model:ir.model.fields,field_description:fs_base_multi_media.field_fs_media__mimetype
#: model:ir.model.fields,field_description:fs_base_multi_media.field_fs_media_relation_mixin__mimetype
msgid "Mimetype"
-msgstr ""
+msgstr "Tipo Mimo"
#. module: fs_base_multi_media
#: model:ir.model.fields,field_description:fs_base_multi_media.field_fs_media__name
#: model:ir.model.fields,field_description:fs_base_multi_media.field_fs_media_relation_mixin__name
#: model:ir.model.fields,field_description:fs_base_multi_media.field_fs_media_type__name
msgid "Name"
-msgstr ""
+msgstr "Nombre"
#. module: fs_base_multi_media
#: model:ir.model.fields,field_description:fs_base_multi_media.field_fs_media_relation_mixin__sequence
msgid "Sequence"
-msgstr ""
+msgstr "Secuencia"
#. module: fs_base_multi_media
#: model:ir.model.fields,field_description:fs_base_multi_media.field_fs_media_relation_mixin__specific_file
msgid "Specific Media"
-msgstr ""
+msgstr "Medio Específico"
#. module: fs_base_multi_media
#: model:ir.model.fields,field_description:fs_base_multi_media.field_fs_media_relation_mixin__specific_media_type_id
msgid "Specific Media Type"
-msgstr ""
+msgstr "Tipo de Medio Específico"
#. module: fs_base_multi_media
#: model:res.groups,name:fs_base_multi_media.group_media_manager
msgid "Storage Media Manager"
-msgstr ""
+msgstr "Gerente de Medios de Almacenamiento"
#. module: fs_base_multi_media
#: model_terms:ir.ui.view,arch_db:fs_base_multi_media.fs_media_search_view
msgid "Type"
-msgstr ""
+msgstr "Tipo"
From f6367eb17bf48380cfd80113151fd8d9b3cb7f49 Mon Sep 17 00:00:00 2001
From: mymage
Date: Mon, 27 Nov 2023 16:56:42 +0000
Subject: [PATCH 06/14] Added translation using Weblate (Italian)
---
fs_base_multi_media/i18n/it.po | 157 +++++++++++++++++++++++++++++++++
1 file changed, 157 insertions(+)
create mode 100644 fs_base_multi_media/i18n/it.po
diff --git a/fs_base_multi_media/i18n/it.po b/fs_base_multi_media/i18n/it.po
new file mode 100644
index 0000000000..6c78d1bd00
--- /dev/null
+++ b/fs_base_multi_media/i18n/it.po
@@ -0,0 +1,157 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * fs_base_multi_media
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 16.0\n"
+"Report-Msgid-Bugs-To: \n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"Language: it\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+
+#. module: fs_base_multi_media
+#: model_terms:ir.ui.view,arch_db:fs_base_multi_media.fs_media_search_view
+msgid "Attachment"
+msgstr ""
+
+#. module: fs_base_multi_media
+#: model:ir.model.fields,field_description:fs_base_multi_media.field_fs_media_type__code
+msgid "Code"
+msgstr ""
+
+#. module: fs_base_multi_media
+#: model:ir.model.fields,field_description:fs_base_multi_media.field_fs_media__create_uid
+#: model:ir.model.fields,field_description:fs_base_multi_media.field_fs_media_type__create_uid
+#: model_terms:ir.ui.view,arch_db:fs_base_multi_media.fs_media_search_view
+msgid "Created by"
+msgstr ""
+
+#. module: fs_base_multi_media
+#: model:ir.model.fields,field_description:fs_base_multi_media.field_fs_media__create_date
+#: model:ir.model.fields,field_description:fs_base_multi_media.field_fs_media_type__create_date
+msgid "Created on"
+msgstr ""
+
+#. module: fs_base_multi_media
+#: model:ir.model.fields,field_description:fs_base_multi_media.field_fs_media__display_name
+#: model:ir.model.fields,field_description:fs_base_multi_media.field_fs_media_type__display_name
+msgid "Display Name"
+msgstr ""
+
+#. module: fs_base_multi_media
+#: model:ir.model.fields,field_description:fs_base_multi_media.field_fs_media__file
+msgid "File"
+msgstr ""
+
+#. module: fs_base_multi_media
+#: model:ir.actions.act_window,name:fs_base_multi_media.fs_media_action
+#: model:ir.ui.menu,name:fs_base_multi_media.fs_media_menu
+msgid "Fs Media"
+msgstr ""
+
+#. module: fs_base_multi_media
+#: model_terms:ir.ui.view,arch_db:fs_base_multi_media.fs_media_search_view
+msgid "Group By"
+msgstr ""
+
+#. module: fs_base_multi_media
+#: model:ir.model.fields,field_description:fs_base_multi_media.field_fs_media__id
+#: model:ir.model.fields,field_description:fs_base_multi_media.field_fs_media_type__id
+msgid "ID"
+msgstr ""
+
+#. module: fs_base_multi_media
+#: model:ir.model.fields,field_description:fs_base_multi_media.field_fs_media____last_update
+#: model:ir.model.fields,field_description:fs_base_multi_media.field_fs_media_type____last_update
+msgid "Last Modified on"
+msgstr ""
+
+#. module: fs_base_multi_media
+#: model:ir.model.fields,field_description:fs_base_multi_media.field_fs_media__write_uid
+#: model:ir.model.fields,field_description:fs_base_multi_media.field_fs_media_type__write_uid
+msgid "Last Updated by"
+msgstr ""
+
+#. module: fs_base_multi_media
+#: model:ir.model.fields,field_description:fs_base_multi_media.field_fs_media__write_date
+#: model:ir.model.fields,field_description:fs_base_multi_media.field_fs_media_type__write_date
+msgid "Last Updated on"
+msgstr ""
+
+#. module: fs_base_multi_media
+#: model:ir.model.fields,field_description:fs_base_multi_media.field_fs_media_relation_mixin__link_existing
+msgid "Link existing media"
+msgstr ""
+
+#. module: fs_base_multi_media
+#: model:ir.model.fields,field_description:fs_base_multi_media.field_fs_media_relation_mixin__media_id
+msgid "Linked media"
+msgstr ""
+
+#. module: fs_base_multi_media
+#: model:ir.model,name:fs_base_multi_media.model_fs_media
+#: model:ir.model.fields,field_description:fs_base_multi_media.field_fs_media_relation_mixin__file
+msgid "Media"
+msgstr ""
+
+#. module: fs_base_multi_media
+#: model:ir.model,name:fs_base_multi_media.model_fs_media_relation_mixin
+msgid "Media Relation"
+msgstr ""
+
+#. module: fs_base_multi_media
+#: model:ir.actions.act_window,name:fs_base_multi_media.act_open_fs_media_type_view
+#: model:ir.model,name:fs_base_multi_media.model_fs_media_type
+#: model:ir.model.fields,field_description:fs_base_multi_media.field_fs_media__media_type_id
+#: model:ir.model.fields,field_description:fs_base_multi_media.field_fs_media_relation_mixin__media_type_id
+#: model:ir.ui.menu,name:fs_base_multi_media.menu_fs_media_type
+msgid "Media Type"
+msgstr ""
+
+#. module: fs_base_multi_media
+#: model_terms:ir.ui.view,arch_db:fs_base_multi_media.fs_media_search_view
+msgid "MimeType"
+msgstr ""
+
+#. module: fs_base_multi_media
+#: model:ir.model.fields,field_description:fs_base_multi_media.field_fs_media__mimetype
+#: model:ir.model.fields,field_description:fs_base_multi_media.field_fs_media_relation_mixin__mimetype
+msgid "Mimetype"
+msgstr ""
+
+#. module: fs_base_multi_media
+#: model:ir.model.fields,field_description:fs_base_multi_media.field_fs_media__name
+#: model:ir.model.fields,field_description:fs_base_multi_media.field_fs_media_relation_mixin__name
+#: model:ir.model.fields,field_description:fs_base_multi_media.field_fs_media_type__name
+msgid "Name"
+msgstr ""
+
+#. module: fs_base_multi_media
+#: model:ir.model.fields,field_description:fs_base_multi_media.field_fs_media_relation_mixin__sequence
+msgid "Sequence"
+msgstr ""
+
+#. module: fs_base_multi_media
+#: model:ir.model.fields,field_description:fs_base_multi_media.field_fs_media_relation_mixin__specific_file
+msgid "Specific Media"
+msgstr ""
+
+#. module: fs_base_multi_media
+#: model:ir.model.fields,field_description:fs_base_multi_media.field_fs_media_relation_mixin__specific_media_type_id
+msgid "Specific Media Type"
+msgstr ""
+
+#. module: fs_base_multi_media
+#: model:res.groups,name:fs_base_multi_media.group_media_manager
+msgid "Storage Media Manager"
+msgstr ""
+
+#. module: fs_base_multi_media
+#: model_terms:ir.ui.view,arch_db:fs_base_multi_media.fs_media_search_view
+msgid "Type"
+msgstr ""
From 985bdd9dd28129a850ee058a049c134c0b6619fc Mon Sep 17 00:00:00 2001
From: mymage
Date: Tue, 28 Nov 2023 12:18:23 +0000
Subject: [PATCH 07/14] Translated using Weblate (Italian)
Currently translated at 100.0% (25 of 25 strings)
Translation: storage-16.0/storage-16.0-fs_base_multi_media
Translate-URL: https://translation.odoo-community.org/projects/storage-16-0/storage-16-0-fs_base_multi_media/it/
---
fs_base_multi_media/i18n/it.po | 54 ++++++++++++++++++----------------
1 file changed, 28 insertions(+), 26 deletions(-)
diff --git a/fs_base_multi_media/i18n/it.po b/fs_base_multi_media/i18n/it.po
index 6c78d1bd00..b280d49491 100644
--- a/fs_base_multi_media/i18n/it.po
+++ b/fs_base_multi_media/i18n/it.po
@@ -6,103 +6,105 @@ msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 16.0\n"
"Report-Msgid-Bugs-To: \n"
-"Last-Translator: Automatically generated\n"
+"PO-Revision-Date: 2023-11-28 14:33+0000\n"
+"Last-Translator: mymage \n"
"Language-Team: none\n"
"Language: it\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
+"X-Generator: Weblate 4.17\n"
#. module: fs_base_multi_media
#: model_terms:ir.ui.view,arch_db:fs_base_multi_media.fs_media_search_view
msgid "Attachment"
-msgstr ""
+msgstr "Allegato"
#. module: fs_base_multi_media
#: model:ir.model.fields,field_description:fs_base_multi_media.field_fs_media_type__code
msgid "Code"
-msgstr ""
+msgstr "Codice"
#. module: fs_base_multi_media
#: model:ir.model.fields,field_description:fs_base_multi_media.field_fs_media__create_uid
#: model:ir.model.fields,field_description:fs_base_multi_media.field_fs_media_type__create_uid
#: model_terms:ir.ui.view,arch_db:fs_base_multi_media.fs_media_search_view
msgid "Created by"
-msgstr ""
+msgstr "Creato da"
#. module: fs_base_multi_media
#: model:ir.model.fields,field_description:fs_base_multi_media.field_fs_media__create_date
#: model:ir.model.fields,field_description:fs_base_multi_media.field_fs_media_type__create_date
msgid "Created on"
-msgstr ""
+msgstr "Creato il"
#. module: fs_base_multi_media
#: model:ir.model.fields,field_description:fs_base_multi_media.field_fs_media__display_name
#: model:ir.model.fields,field_description:fs_base_multi_media.field_fs_media_type__display_name
msgid "Display Name"
-msgstr ""
+msgstr "Nome visualizzato"
#. module: fs_base_multi_media
#: model:ir.model.fields,field_description:fs_base_multi_media.field_fs_media__file
msgid "File"
-msgstr ""
+msgstr "File"
#. module: fs_base_multi_media
#: model:ir.actions.act_window,name:fs_base_multi_media.fs_media_action
#: model:ir.ui.menu,name:fs_base_multi_media.fs_media_menu
msgid "Fs Media"
-msgstr ""
+msgstr "Media FS"
#. module: fs_base_multi_media
#: model_terms:ir.ui.view,arch_db:fs_base_multi_media.fs_media_search_view
msgid "Group By"
-msgstr ""
+msgstr "Raggruppa per"
#. module: fs_base_multi_media
#: model:ir.model.fields,field_description:fs_base_multi_media.field_fs_media__id
#: model:ir.model.fields,field_description:fs_base_multi_media.field_fs_media_type__id
msgid "ID"
-msgstr ""
+msgstr "ID"
#. module: fs_base_multi_media
#: model:ir.model.fields,field_description:fs_base_multi_media.field_fs_media____last_update
#: model:ir.model.fields,field_description:fs_base_multi_media.field_fs_media_type____last_update
msgid "Last Modified on"
-msgstr ""
+msgstr "Ultima modifica il"
#. module: fs_base_multi_media
#: model:ir.model.fields,field_description:fs_base_multi_media.field_fs_media__write_uid
#: model:ir.model.fields,field_description:fs_base_multi_media.field_fs_media_type__write_uid
msgid "Last Updated by"
-msgstr ""
+msgstr "Ultimo aggiornamento di"
#. module: fs_base_multi_media
#: model:ir.model.fields,field_description:fs_base_multi_media.field_fs_media__write_date
#: model:ir.model.fields,field_description:fs_base_multi_media.field_fs_media_type__write_date
msgid "Last Updated on"
-msgstr ""
+msgstr "Ultimo aggiornamento il"
#. module: fs_base_multi_media
#: model:ir.model.fields,field_description:fs_base_multi_media.field_fs_media_relation_mixin__link_existing
msgid "Link existing media"
-msgstr ""
+msgstr "Collega media esistente"
#. module: fs_base_multi_media
#: model:ir.model.fields,field_description:fs_base_multi_media.field_fs_media_relation_mixin__media_id
msgid "Linked media"
-msgstr ""
+msgstr "Media collegato"
#. module: fs_base_multi_media
#: model:ir.model,name:fs_base_multi_media.model_fs_media
#: model:ir.model.fields,field_description:fs_base_multi_media.field_fs_media_relation_mixin__file
msgid "Media"
-msgstr ""
+msgstr "Media"
#. module: fs_base_multi_media
#: model:ir.model,name:fs_base_multi_media.model_fs_media_relation_mixin
msgid "Media Relation"
-msgstr ""
+msgstr "Relazione media"
#. module: fs_base_multi_media
#: model:ir.actions.act_window,name:fs_base_multi_media.act_open_fs_media_type_view
@@ -111,47 +113,47 @@ msgstr ""
#: model:ir.model.fields,field_description:fs_base_multi_media.field_fs_media_relation_mixin__media_type_id
#: model:ir.ui.menu,name:fs_base_multi_media.menu_fs_media_type
msgid "Media Type"
-msgstr ""
+msgstr "Tipo media"
#. module: fs_base_multi_media
#: model_terms:ir.ui.view,arch_db:fs_base_multi_media.fs_media_search_view
msgid "MimeType"
-msgstr ""
+msgstr "Tipo MIME"
#. module: fs_base_multi_media
#: model:ir.model.fields,field_description:fs_base_multi_media.field_fs_media__mimetype
#: model:ir.model.fields,field_description:fs_base_multi_media.field_fs_media_relation_mixin__mimetype
msgid "Mimetype"
-msgstr ""
+msgstr "Tipo MIME"
#. module: fs_base_multi_media
#: model:ir.model.fields,field_description:fs_base_multi_media.field_fs_media__name
#: model:ir.model.fields,field_description:fs_base_multi_media.field_fs_media_relation_mixin__name
#: model:ir.model.fields,field_description:fs_base_multi_media.field_fs_media_type__name
msgid "Name"
-msgstr ""
+msgstr "Nome"
#. module: fs_base_multi_media
#: model:ir.model.fields,field_description:fs_base_multi_media.field_fs_media_relation_mixin__sequence
msgid "Sequence"
-msgstr ""
+msgstr "Sequenza"
#. module: fs_base_multi_media
#: model:ir.model.fields,field_description:fs_base_multi_media.field_fs_media_relation_mixin__specific_file
msgid "Specific Media"
-msgstr ""
+msgstr "Media specifico"
#. module: fs_base_multi_media
#: model:ir.model.fields,field_description:fs_base_multi_media.field_fs_media_relation_mixin__specific_media_type_id
msgid "Specific Media Type"
-msgstr ""
+msgstr "Tipo media specifico"
#. module: fs_base_multi_media
#: model:res.groups,name:fs_base_multi_media.group_media_manager
msgid "Storage Media Manager"
-msgstr ""
+msgstr "Gestore deposito media"
#. module: fs_base_multi_media
#: model_terms:ir.ui.view,arch_db:fs_base_multi_media.fs_media_search_view
msgid "Type"
-msgstr ""
+msgstr "Tipo"
From 0745a7e6592513ca07d5677c4b031ce77d444a59 Mon Sep 17 00:00:00 2001
From: chien
Date: Fri, 1 Mar 2024 14:42:53 +0700
Subject: [PATCH 08/14] [IMP] fs_base_multi_media: pre-commit auto fixes
---
fs_base_multi_media/README.rst | 56 ++++++++++---------
.../models/fs_media_relation_mixin.py | 1 -
fs_base_multi_media/pyproject.toml | 3 +
fs_base_multi_media/readme/CONTRIBUTORS.md | 3 +
fs_base_multi_media/readme/CONTRIBUTORS.rst | 2 -
fs_base_multi_media/readme/DESCRIPTION.md | 16 ++++++
fs_base_multi_media/readme/DESCRIPTION.rst | 14 -----
fs_base_multi_media/readme/ROADMAP.md | 3 +
fs_base_multi_media/readme/ROADMAP.rst | 2 -
fs_base_multi_media/readme/USAGE.md | 3 +
fs_base_multi_media/readme/USAGE.rst | 3 -
.../static/description/index.html | 39 +++++++------
12 files changed, 80 insertions(+), 65 deletions(-)
create mode 100644 fs_base_multi_media/pyproject.toml
create mode 100644 fs_base_multi_media/readme/CONTRIBUTORS.md
delete mode 100644 fs_base_multi_media/readme/CONTRIBUTORS.rst
create mode 100644 fs_base_multi_media/readme/DESCRIPTION.md
delete mode 100644 fs_base_multi_media/readme/DESCRIPTION.rst
create mode 100644 fs_base_multi_media/readme/ROADMAP.md
delete mode 100644 fs_base_multi_media/readme/ROADMAP.rst
create mode 100644 fs_base_multi_media/readme/USAGE.md
delete mode 100644 fs_base_multi_media/readme/USAGE.rst
diff --git a/fs_base_multi_media/README.rst b/fs_base_multi_media/README.rst
index 289c646716..3cf65e4636 100644
--- a/fs_base_multi_media/README.rst
+++ b/fs_base_multi_media/README.rst
@@ -17,31 +17,34 @@ Fs Base Multi Media
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
:alt: License: AGPL-3
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fstorage-lightgray.png?logo=github
- :target: https://github.com/OCA/storage/tree/16.0/fs_base_multi_media
+ :target: https://github.com/OCA/storage/tree/17.0/fs_base_multi_media
:alt: OCA/storage
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
- :target: https://translation.odoo-community.org/projects/storage-16-0/storage-16-0-fs_base_multi_media
+ :target: https://translation.odoo-community.org/projects/storage-17-0/storage-17-0-fs_base_multi_media
: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/storage&target_branch=16.0
+ :target: https://runboat.odoo-community.org/builds?repo=OCA/storage&target_branch=17.0
:alt: Try me on Runboat
|badge1| |badge2| |badge3| |badge4| |badge5|
-This addon allows you to store media file into external filesystem from odoo.
-It also provides is a technical mixin model to ease the creation of other models
-that need to be linked to multiple medias stored into external filesystems.
+This addon allows you to store media file into external filesystem from
+odoo. It also provides is a technical mixin model to ease the creation
+of other models that need to be linked to multiple medias stored into
+external filesystems.
The models provided by this addon are:
-* ``fs.media``: a model that stores a reference to an media stored into
- an external filesystem.
-* ``fs.media.relation.mixin``: an abstract model that can be used to
- as base class for models created to store an media linked to a model.
- This abstract model defines fields and methods to transparently handle
- 2 cases:
- * the media is specific to the model.
- * the media is shared between multiple models and therefore is a ``fs.media`` instance linked to the mixin.
+- ``fs.media``: a model that stores a reference to an media stored into
+ an external filesystem.
+- ``fs.media.relation.mixin``: an abstract model that can be used to as
+ base class for models created to store an media linked to a model.
+ This abstract model defines fields and methods to transparently
+ handle 2 cases:
+
+ - the media is specific to the model.
+ - the media is shared between multiple models and therefore is a
+ ``fs.media`` instance linked to the mixin.
.. IMPORTANT::
This is an alpha version, the data model and design can change at any time without warning.
@@ -56,15 +59,16 @@ The models provided by this addon are:
Usage
=====
-To be able to create and or manages shared images, you must have the ``Media Manager``
-role. If you do not have this role, as an authenticated user, you can
-only view the shared images.
+To be able to create and or manages shared images, you must have the
+``Media Manager`` role. If you do not have this role, as an
+authenticated user, you can only view the shared images.
Known issues / Roadmap
======================
-* Add dedicated widget to ease the addition of new media to a model linked to
- multiple medias. (As it's the case in the *storage_image_product* addon)
+- Add dedicated widget to ease the addition of new media to a model
+ linked to multiple medias. (As it's the case in the
+ *storage_image_product* addon)
Bug Tracker
===========
@@ -72,7 +76,7 @@ Bug Tracker
Bugs are tracked on `GitHub 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 `_.
+`feedback `_.
Do not contact contributors directly about support or help with technical issues.
@@ -80,19 +84,19 @@ Credits
=======
Authors
-~~~~~~~
+-------
* ACSONE SA/NV
* Akretion
Contributors
-~~~~~~~~~~~~
+------------
-* Sebastien Beau
-* Laurent Mignon (https://www.acsone.eu/)
+- Sebastien Beau
+- Laurent Mignon (https://www.acsone.eu/)
Maintainers
-~~~~~~~~~~~
+-----------
This module is maintained by the OCA.
@@ -112,6 +116,6 @@ Current `maintainer `__:
|maintainer-lmignon|
-This module is part of the `OCA/storage `_ project on GitHub.
+This module is part of the `OCA/storage `_ project on GitHub.
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
diff --git a/fs_base_multi_media/models/fs_media_relation_mixin.py b/fs_base_multi_media/models/fs_media_relation_mixin.py
index cabc5c9c28..fa49ee5f0a 100644
--- a/fs_base_multi_media/models/fs_media_relation_mixin.py
+++ b/fs_base_multi_media/models/fs_media_relation_mixin.py
@@ -7,7 +7,6 @@
class FsMediaRelationMixin(models.AbstractModel):
-
_name = "fs.media.relation.mixin"
_description = "Media Relation"
_order = "sequence, name"
diff --git a/fs_base_multi_media/pyproject.toml b/fs_base_multi_media/pyproject.toml
new file mode 100644
index 0000000000..4231d0cccb
--- /dev/null
+++ b/fs_base_multi_media/pyproject.toml
@@ -0,0 +1,3 @@
+[build-system]
+requires = ["whool"]
+build-backend = "whool.buildapi"
diff --git a/fs_base_multi_media/readme/CONTRIBUTORS.md b/fs_base_multi_media/readme/CONTRIBUTORS.md
new file mode 100644
index 0000000000..fe7eb15e51
--- /dev/null
+++ b/fs_base_multi_media/readme/CONTRIBUTORS.md
@@ -0,0 +1,3 @@
+- Sebastien Beau \<\>
+- Laurent Mignon \<\>
+ ()
diff --git a/fs_base_multi_media/readme/CONTRIBUTORS.rst b/fs_base_multi_media/readme/CONTRIBUTORS.rst
deleted file mode 100644
index dba4d6f397..0000000000
--- a/fs_base_multi_media/readme/CONTRIBUTORS.rst
+++ /dev/null
@@ -1,2 +0,0 @@
-* Sebastien Beau
-* Laurent Mignon (https://www.acsone.eu/)
diff --git a/fs_base_multi_media/readme/DESCRIPTION.md b/fs_base_multi_media/readme/DESCRIPTION.md
new file mode 100644
index 0000000000..eb252a2671
--- /dev/null
+++ b/fs_base_multi_media/readme/DESCRIPTION.md
@@ -0,0 +1,16 @@
+This addon allows you to store media file into external filesystem from
+odoo. It also provides is a technical mixin model to ease the creation
+of other models that need to be linked to multiple medias stored into
+external filesystems.
+
+The models provided by this addon are:
+
+- `fs.media`: a model that stores a reference to an media stored into an
+ external filesystem.
+- `fs.media.relation.mixin`: an abstract model that can be used to as
+ base class for models created to store an media linked to a model.
+ This abstract model defines fields and methods to transparently handle
+ 2 cases:
+ - the media is specific to the model.
+ - the media is shared between multiple models and therefore is a
+ `fs.media` instance linked to the mixin.
diff --git a/fs_base_multi_media/readme/DESCRIPTION.rst b/fs_base_multi_media/readme/DESCRIPTION.rst
deleted file mode 100644
index d8fe9d5c6a..0000000000
--- a/fs_base_multi_media/readme/DESCRIPTION.rst
+++ /dev/null
@@ -1,14 +0,0 @@
-This addon allows you to store media file into external filesystem from odoo.
-It also provides is a technical mixin model to ease the creation of other models
-that need to be linked to multiple medias stored into external filesystems.
-
-The models provided by this addon are:
-
-* ``fs.media``: a model that stores a reference to an media stored into
- an external filesystem.
-* ``fs.media.relation.mixin``: an abstract model that can be used to
- as base class for models created to store an media linked to a model.
- This abstract model defines fields and methods to transparently handle
- 2 cases:
- * the media is specific to the model.
- * the media is shared between multiple models and therefore is a ``fs.media`` instance linked to the mixin.
diff --git a/fs_base_multi_media/readme/ROADMAP.md b/fs_base_multi_media/readme/ROADMAP.md
new file mode 100644
index 0000000000..3345a3d2ba
--- /dev/null
+++ b/fs_base_multi_media/readme/ROADMAP.md
@@ -0,0 +1,3 @@
+- Add dedicated widget to ease the addition of new media to a model
+ linked to multiple medias. (As it's the case in the
+ *storage_image_product* addon)
diff --git a/fs_base_multi_media/readme/ROADMAP.rst b/fs_base_multi_media/readme/ROADMAP.rst
deleted file mode 100644
index 6b2d593ef6..0000000000
--- a/fs_base_multi_media/readme/ROADMAP.rst
+++ /dev/null
@@ -1,2 +0,0 @@
-* Add dedicated widget to ease the addition of new media to a model linked to
- multiple medias. (As it's the case in the *storage_image_product* addon)
diff --git a/fs_base_multi_media/readme/USAGE.md b/fs_base_multi_media/readme/USAGE.md
new file mode 100644
index 0000000000..4547c561fb
--- /dev/null
+++ b/fs_base_multi_media/readme/USAGE.md
@@ -0,0 +1,3 @@
+To be able to create and or manages shared images, you must have the
+`Media Manager` role. If you do not have this role, as an authenticated
+user, you can only view the shared images.
diff --git a/fs_base_multi_media/readme/USAGE.rst b/fs_base_multi_media/readme/USAGE.rst
deleted file mode 100644
index 65f8ffc54e..0000000000
--- a/fs_base_multi_media/readme/USAGE.rst
+++ /dev/null
@@ -1,3 +0,0 @@
-To be able to create and or manages shared images, you must have the ``Media Manager``
-role. If you do not have this role, as an authenticated user, you can
-only view the shared images.
diff --git a/fs_base_multi_media/static/description/index.html b/fs_base_multi_media/static/description/index.html
index 699c5cd514..d464cd7a11 100644
--- a/fs_base_multi_media/static/description/index.html
+++ b/fs_base_multi_media/static/description/index.html
@@ -369,20 +369,24 @@ Fs Base Multi Media
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! source digest: sha256:854289aaf0e0ead7af13579fc0fb6eda2958f5386b77f5fbe056915dcc514666
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
-

-This addon allows you to store media file into external filesystem from odoo.
-It also provides is a technical mixin model to ease the creation of other models
-that need to be linked to multiple medias stored into external filesystems.
+

+This addon allows you to store media file into external filesystem from
+odoo. It also provides is a technical mixin model to ease the creation
+of other models that need to be linked to multiple medias stored into
+external filesystems.
The models provided by this addon are:
- fs.media: a model that stores a reference to an media stored into
an external filesystem.
-- fs.media.relation.mixin: an abstract model that can be used to
-as base class for models created to store an media linked to a model.
-This abstract model defines fields and methods to transparently handle
-2 cases:
-* the media is specific to the model.
-* the media is shared between multiple models and therefore is a fs.media instance linked to the mixin.
+- fs.media.relation.mixin: an abstract model that can be used to as
+base class for models created to store an media linked to a model.
+This abstract model defines fields and methods to transparently
+handle 2 cases:
+- the media is specific to the model.
+- the media is shared between multiple models and therefore is a
+fs.media instance linked to the mixin.
+
+
Important
@@ -406,15 +410,16 @@
Fs Base Multi Media
-
To be able to create and or manages shared images, you must have the Media Manager
-role. If you do not have this role, as an authenticated user, you can
-only view the shared images.
+
To be able to create and or manages shared images, you must have the
+Media Manager role. If you do not have this role, as an
+authenticated user, you can only view the shared images.
-- Add dedicated widget to ease the addition of new media to a model linked to
-multiple medias. (As it’s the case in the storage_image_product addon)
+- Add dedicated widget to ease the addition of new media to a model
+linked to multiple medias. (As it’s the case in the
+storage_image_product addon)
@@ -422,7 +427,7 @@
Bugs are tracked on GitHub 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.
+
feedback.
Do not contact contributors directly about support or help with technical issues.
From ef44d0e24bb1286693caf37c7609f3cea3b484f9 Mon Sep 17 00:00:00 2001
From: chien
Date: Fri, 1 Mar 2024 15:11:46 +0700
Subject: [PATCH 09/14] [MIG] fs_base_multi_media: Migration to 17.0
---
fs_base_multi_media/__manifest__.py | 2 +-
.../static/description/index.html | 1 -
.../views/fs_media_relation_mixin.xml | 22 +++++--------------
3 files changed, 6 insertions(+), 19 deletions(-)
diff --git a/fs_base_multi_media/__manifest__.py b/fs_base_multi_media/__manifest__.py
index 1af9e4cbfa..f1a68ad205 100644
--- a/fs_base_multi_media/__manifest__.py
+++ b/fs_base_multi_media/__manifest__.py
@@ -5,7 +5,7 @@
"name": "Fs Base Multi Media",
"summary": """
Give the possibility to store media data in external filesystem from odoo""",
- "version": "16.0.1.0.1",
+ "version": "17.0.1.0.0",
"license": "AGPL-3",
"author": "ACSONE SA/NV,Akretion,Odoo Community Association (OCA)",
"website": "https://github.com/OCA/storage",
diff --git a/fs_base_multi_media/static/description/index.html b/fs_base_multi_media/static/description/index.html
index d464cd7a11..ab5cd2c79c 100644
--- a/fs_base_multi_media/static/description/index.html
+++ b/fs_base_multi_media/static/description/index.html
@@ -1,4 +1,3 @@
-
diff --git a/fs_base_multi_media/views/fs_media_relation_mixin.xml b/fs_base_multi_media/views/fs_media_relation_mixin.xml
index 308e57cddf..4536c18d5f 100644
--- a/fs_base_multi_media/views/fs_media_relation_mixin.xml
+++ b/fs_base_multi_media/views/fs_media_relation_mixin.xml
@@ -11,27 +11,15 @@
-
-
-
+
+
+
-
+
From b0c3894fbde4ce071e37276af0dc34f9a22f8eee Mon Sep 17 00:00:00 2001
From: oca-ci
Date: Fri, 31 May 2024 07:23:57 +0000
Subject: [PATCH 10/14] [UPD] Update fs_base_multi_media.pot
---
fs_base_multi_media/i18n/fs_base_multi_media.pot | 8 +-------
1 file changed, 1 insertion(+), 7 deletions(-)
diff --git a/fs_base_multi_media/i18n/fs_base_multi_media.pot b/fs_base_multi_media/i18n/fs_base_multi_media.pot
index 9947a89a9a..d27f20fd2a 100644
--- a/fs_base_multi_media/i18n/fs_base_multi_media.pot
+++ b/fs_base_multi_media/i18n/fs_base_multi_media.pot
@@ -4,7 +4,7 @@
#
msgid ""
msgstr ""
-"Project-Id-Version: Odoo Server 16.0\n"
+"Project-Id-Version: Odoo Server 17.0\n"
"Report-Msgid-Bugs-To: \n"
"Last-Translator: \n"
"Language-Team: \n"
@@ -64,12 +64,6 @@ msgstr ""
msgid "ID"
msgstr ""
-#. module: fs_base_multi_media
-#: model:ir.model.fields,field_description:fs_base_multi_media.field_fs_media____last_update
-#: model:ir.model.fields,field_description:fs_base_multi_media.field_fs_media_type____last_update
-msgid "Last Modified on"
-msgstr ""
-
#. module: fs_base_multi_media
#: model:ir.model.fields,field_description:fs_base_multi_media.field_fs_media__write_uid
#: model:ir.model.fields,field_description:fs_base_multi_media.field_fs_media_type__write_uid
From 16cd2e5e30649cbac4cc974c4a4a7e010b0ceb05 Mon Sep 17 00:00:00 2001
From: OCA-git-bot
Date: Fri, 31 May 2024 07:26:41 +0000
Subject: [PATCH 11/14] [BOT] post-merge updates
---
fs_base_multi_media/README.rst | 2 +-
fs_base_multi_media/static/description/index.html | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/fs_base_multi_media/README.rst b/fs_base_multi_media/README.rst
index 3cf65e4636..e48b65fd0c 100644
--- a/fs_base_multi_media/README.rst
+++ b/fs_base_multi_media/README.rst
@@ -7,7 +7,7 @@ Fs Base Multi Media
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- !! source digest: sha256:854289aaf0e0ead7af13579fc0fb6eda2958f5386b77f5fbe056915dcc514666
+ !! source digest: sha256:b92e52ce0c6d2e1023e6344de7d843d4b8c59dde3d4d91ee84b232b54c2e16c1
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
.. |badge1| image:: https://img.shields.io/badge/maturity-Alpha-red.png
diff --git a/fs_base_multi_media/static/description/index.html b/fs_base_multi_media/static/description/index.html
index ab5cd2c79c..a1f33730c5 100644
--- a/fs_base_multi_media/static/description/index.html
+++ b/fs_base_multi_media/static/description/index.html
@@ -366,7 +366,7 @@ Fs Base Multi Media
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-!! source digest: sha256:854289aaf0e0ead7af13579fc0fb6eda2958f5386b77f5fbe056915dcc514666
+!! source digest: sha256:b92e52ce0c6d2e1023e6344de7d843d4b8c59dde3d4d91ee84b232b54c2e16c1
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->

This addon allows you to store media file into external filesystem from
From f7795ad217f6d1f205052d2816f5b68e6006c0f2 Mon Sep 17 00:00:00 2001
From: Weblate
Date: Fri, 31 May 2024 11:09:58 +0000
Subject: [PATCH 12/14] Update translation files
Updated by "Update PO files to match POT (msgmerge)" hook in Weblate.
Translation: storage-17.0/storage-17.0-fs_base_multi_media
Translate-URL: https://translation.odoo-community.org/projects/storage-17-0/storage-17-0-fs_base_multi_media/
---
fs_base_multi_media/i18n/es.po | 9 +++------
fs_base_multi_media/i18n/it.po | 9 +++------
2 files changed, 6 insertions(+), 12 deletions(-)
diff --git a/fs_base_multi_media/i18n/es.po b/fs_base_multi_media/i18n/es.po
index a8117de77c..c885c63d9a 100644
--- a/fs_base_multi_media/i18n/es.po
+++ b/fs_base_multi_media/i18n/es.po
@@ -67,12 +67,6 @@ msgstr "Agrupar Por"
msgid "ID"
msgstr "ID (identificación)"
-#. module: fs_base_multi_media
-#: model:ir.model.fields,field_description:fs_base_multi_media.field_fs_media____last_update
-#: model:ir.model.fields,field_description:fs_base_multi_media.field_fs_media_type____last_update
-msgid "Last Modified on"
-msgstr "Última Modificación el"
-
#. module: fs_base_multi_media
#: model:ir.model.fields,field_description:fs_base_multi_media.field_fs_media__write_uid
#: model:ir.model.fields,field_description:fs_base_multi_media.field_fs_media_type__write_uid
@@ -157,3 +151,6 @@ msgstr "Gerente de Medios de Almacenamiento"
#: model_terms:ir.ui.view,arch_db:fs_base_multi_media.fs_media_search_view
msgid "Type"
msgstr "Tipo"
+
+#~ msgid "Last Modified on"
+#~ msgstr "Última Modificación el"
diff --git a/fs_base_multi_media/i18n/it.po b/fs_base_multi_media/i18n/it.po
index b280d49491..fabc55f9a3 100644
--- a/fs_base_multi_media/i18n/it.po
+++ b/fs_base_multi_media/i18n/it.po
@@ -67,12 +67,6 @@ msgstr "Raggruppa per"
msgid "ID"
msgstr "ID"
-#. module: fs_base_multi_media
-#: model:ir.model.fields,field_description:fs_base_multi_media.field_fs_media____last_update
-#: model:ir.model.fields,field_description:fs_base_multi_media.field_fs_media_type____last_update
-msgid "Last Modified on"
-msgstr "Ultima modifica il"
-
#. module: fs_base_multi_media
#: model:ir.model.fields,field_description:fs_base_multi_media.field_fs_media__write_uid
#: model:ir.model.fields,field_description:fs_base_multi_media.field_fs_media_type__write_uid
@@ -157,3 +151,6 @@ msgstr "Gestore deposito media"
#: model_terms:ir.ui.view,arch_db:fs_base_multi_media.fs_media_search_view
msgid "Type"
msgstr "Tipo"
+
+#~ msgid "Last Modified on"
+#~ msgstr "Ultima modifica il"
From 8a91243c2c727a7ade17bc932a81328539645faf Mon Sep 17 00:00:00 2001
From: kobros-tech
Date: Thu, 21 Aug 2025 01:13:56 +0300
Subject: [PATCH 13/14] [IMP] fs_base_multi_media: pre-commit auto fixes
---
fs_base_multi_media/security/fs_media.xml | 1 -
.../security/fs_media_type.xml | 1 -
fs_base_multi_media/security/res_groups.xml | 10 +-
fs_base_multi_media/views/fs_media.xml | 19 ++--
.../views/fs_media_relation_mixin.xml | 4 +-
fs_base_multi_media/views/fs_media_type.xml | 100 +++++++++---------
6 files changed, 62 insertions(+), 73 deletions(-)
diff --git a/fs_base_multi_media/security/fs_media.xml b/fs_base_multi_media/security/fs_media.xml
index 96539f93ff..f90e4e7b24 100644
--- a/fs_base_multi_media/security/fs_media.xml
+++ b/fs_base_multi_media/security/fs_media.xml
@@ -2,7 +2,6 @@
-
fs.media access read
diff --git a/fs_base_multi_media/security/fs_media_type.xml b/fs_base_multi_media/security/fs_media_type.xml
index 266b6933a6..f3906470a7 100644
--- a/fs_base_multi_media/security/fs_media_type.xml
+++ b/fs_base_multi_media/security/fs_media_type.xml
@@ -2,7 +2,6 @@
-
fs.media.type access read
diff --git a/fs_base_multi_media/security/res_groups.xml b/fs_base_multi_media/security/res_groups.xml
index 0973e4d56f..17e42c690e 100644
--- a/fs_base_multi_media/security/res_groups.xml
+++ b/fs_base_multi_media/security/res_groups.xml
@@ -1,12 +1,10 @@
-
-
- Storage Media Manager
-
+ Storage Media Manager
+
-
-
+
diff --git a/fs_base_multi_media/views/fs_media.xml b/fs_base_multi_media/views/fs_media.xml
index 7be4187322..06a659dc5b 100644
--- a/fs_base_multi_media/views/fs_media.xml
+++ b/fs_base_multi_media/views/fs_media.xml
@@ -2,7 +2,6 @@
-
fs.media.form
fs.media
@@ -16,7 +15,7 @@
-
+
@@ -70,19 +69,17 @@
- Fs Media
- fs.media
- tree,form
- []
- {}
-
+ Fs Media
+ fs.media
+ tree,form
+ []
+ {}
+
-
-
-
diff --git a/fs_base_multi_media/views/fs_media_relation_mixin.xml b/fs_base_multi_media/views/fs_media_relation_mixin.xml
index 4536c18d5f..c3fed21350 100644
--- a/fs_base_multi_media/views/fs_media_relation_mixin.xml
+++ b/fs_base_multi_media/views/fs_media_relation_mixin.xml
@@ -2,7 +2,6 @@
-
fs.media.relation.mixin.form
fs.media.relation.mixin
@@ -22,7 +21,7 @@
-
+
@@ -39,5 +38,4 @@
-
diff --git a/fs_base_multi_media/views/fs_media_type.xml b/fs_base_multi_media/views/fs_media_type.xml
index 498fab667e..0eebabaddf 100644
--- a/fs_base_multi_media/views/fs_media_type.xml
+++ b/fs_base_multi_media/views/fs_media_type.xml
@@ -3,67 +3,65 @@
License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). -->
- fs.media.type
-
-
-
-
-
-
-
-
-
- fs.media.type
-
-
-
-
+
+
+
+
+
+ fs.media.type
+
+
+
+
-
- fs.media.type
-
-
-
-
-
-
-
+
+ fs.media.type
+
+
+
+
+
+
+
-
- Media Type
- ir.actions.act_window
- fs.media.type
- tree,form
-
- []
- {}
-
+
+ Media Type
+ ir.actions.act_window
+ fs.media.type
+ tree,form
+
+ []
+ {}
+
-
-
-
- form
-
-
+
+
+
+ form
+
+
-
-
-
- tree
-
-
+
+
+
+ tree
+
+
-
-
-
From 2ae4f3d4b365b09683743f659d0413af6325cfd1 Mon Sep 17 00:00:00 2001
From: kobros-tech
Date: Thu, 21 Aug 2025 01:38:14 +0300
Subject: [PATCH 14/14] [MIG] fs_base_multi_media: Migration to 18.0
---
fs_base_multi_media/README.rst | 39 ++++++++++---------
fs_base_multi_media/__manifest__.py | 2 +-
fs_base_multi_media/readme/CONTRIBUTORS.md | 1 +
.../static/description/index.html | 22 ++++++-----
fs_base_multi_media/views/fs_media.xml | 8 ++--
.../views/fs_media_relation_mixin.xml | 6 +--
fs_base_multi_media/views/fs_media_type.xml | 8 ++--
7 files changed, 46 insertions(+), 40 deletions(-)
diff --git a/fs_base_multi_media/README.rst b/fs_base_multi_media/README.rst
index e48b65fd0c..ae4385b18d 100644
--- a/fs_base_multi_media/README.rst
+++ b/fs_base_multi_media/README.rst
@@ -17,13 +17,13 @@ Fs Base Multi Media
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
:alt: License: AGPL-3
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fstorage-lightgray.png?logo=github
- :target: https://github.com/OCA/storage/tree/17.0/fs_base_multi_media
+ :target: https://github.com/OCA/storage/tree/18.0/fs_base_multi_media
:alt: OCA/storage
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
- :target: https://translation.odoo-community.org/projects/storage-17-0/storage-17-0-fs_base_multi_media
+ :target: https://translation.odoo-community.org/projects/storage-18-0/storage-18-0-fs_base_multi_media
: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/storage&target_branch=17.0
+ :target: https://runboat.odoo-community.org/builds?repo=OCA/storage&target_branch=18.0
:alt: Try me on Runboat
|badge1| |badge2| |badge3| |badge4| |badge5|
@@ -35,16 +35,16 @@ external filesystems.
The models provided by this addon are:
-- ``fs.media``: a model that stores a reference to an media stored into
- an external filesystem.
-- ``fs.media.relation.mixin``: an abstract model that can be used to as
- base class for models created to store an media linked to a model.
- This abstract model defines fields and methods to transparently
- handle 2 cases:
+- ``fs.media``: a model that stores a reference to an media stored into
+ an external filesystem.
+- ``fs.media.relation.mixin``: an abstract model that can be used to as
+ base class for models created to store an media linked to a model.
+ This abstract model defines fields and methods to transparently handle
+ 2 cases:
- - the media is specific to the model.
- - the media is shared between multiple models and therefore is a
- ``fs.media`` instance linked to the mixin.
+ - the media is specific to the model.
+ - the media is shared between multiple models and therefore is a
+ ``fs.media`` instance linked to the mixin.
.. IMPORTANT::
This is an alpha version, the data model and design can change at any time without warning.
@@ -66,9 +66,9 @@ authenticated user, you can only view the shared images.
Known issues / Roadmap
======================
-- Add dedicated widget to ease the addition of new media to a model
- linked to multiple medias. (As it's the case in the
- *storage_image_product* addon)
+- Add dedicated widget to ease the addition of new media to a model
+ linked to multiple medias. (As it's the case in the
+ *storage_image_product* addon)
Bug Tracker
===========
@@ -76,7 +76,7 @@ Bug Tracker
Bugs are tracked on `GitHub 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 `_.
+`feedback `_.
Do not contact contributors directly about support or help with technical issues.
@@ -92,8 +92,9 @@ Authors
Contributors
------------
-- Sebastien Beau
-- Laurent Mignon (https://www.acsone.eu/)
+- Sebastien Beau
+- Laurent Mignon (https://www.acsone.eu/)
+- Mohamed Alkobrosli
Maintainers
-----------
@@ -116,6 +117,6 @@ Current `maintainer `__:
|maintainer-lmignon|
-This module is part of the `OCA/storage `_ project on GitHub.
+This module is part of the `OCA/storage `_ project on GitHub.
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
diff --git a/fs_base_multi_media/__manifest__.py b/fs_base_multi_media/__manifest__.py
index f1a68ad205..823fad2f6c 100644
--- a/fs_base_multi_media/__manifest__.py
+++ b/fs_base_multi_media/__manifest__.py
@@ -5,7 +5,7 @@
"name": "Fs Base Multi Media",
"summary": """
Give the possibility to store media data in external filesystem from odoo""",
- "version": "17.0.1.0.0",
+ "version": "18.0.1.0.0",
"license": "AGPL-3",
"author": "ACSONE SA/NV,Akretion,Odoo Community Association (OCA)",
"website": "https://github.com/OCA/storage",
diff --git a/fs_base_multi_media/readme/CONTRIBUTORS.md b/fs_base_multi_media/readme/CONTRIBUTORS.md
index fe7eb15e51..f69953363d 100644
--- a/fs_base_multi_media/readme/CONTRIBUTORS.md
+++ b/fs_base_multi_media/readme/CONTRIBUTORS.md
@@ -1,3 +1,4 @@
- Sebastien Beau \<\>
- Laurent Mignon \<\>
()
+- Mohamed Alkobrosli \<\>
diff --git a/fs_base_multi_media/static/description/index.html b/fs_base_multi_media/static/description/index.html
index a1f33730c5..31a3aab469 100644
--- a/fs_base_multi_media/static/description/index.html
+++ b/fs_base_multi_media/static/description/index.html
@@ -8,10 +8,11 @@
/*
:Author: David Goodger (goodger@python.org)
-:Id: $Id: html4css1.css 8954 2022-01-20 10:10:25Z milde $
+:Id: $Id: html4css1.css 9511 2024-01-13 09:50:07Z milde $
:Copyright: This stylesheet has been placed in the public domain.
Default cascading style sheet for the HTML output of Docutils.
+Despite the name, some widely supported CSS2 features are used.
See https://docutils.sourceforge.io/docs/howto/html-stylesheets.html for how to
customize this style sheet.
@@ -274,7 +275,7 @@
margin-left: 2em ;
margin-right: 2em }
-pre.code .ln { color: grey; } /* line numbers */
+pre.code .ln { color: gray; } /* line numbers */
pre.code, code { background-color: #eeeeee }
pre.code .comment, code .comment { color: #5C6576 }
pre.code .keyword, code .keyword { color: #3B0D06; font-weight: bold }
@@ -300,7 +301,7 @@
span.pre {
white-space: pre }
-span.problematic {
+span.problematic, pre.problematic {
color: red }
span.section-subtitle {
@@ -368,7 +369,7 @@ Fs Base Multi Media
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! source digest: sha256:b92e52ce0c6d2e1023e6344de7d843d4b8c59dde3d4d91ee84b232b54c2e16c1
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
-

+

This addon allows you to store media file into external filesystem from
odoo. It also provides is a technical mixin model to ease the creation
of other models that need to be linked to multiple medias stored into
@@ -379,8 +380,8 @@
Fs Base Multi Media
an external filesystem.
fs.media.relation.mixin: an abstract model that can be used to as
base class for models created to store an media linked to a model.
-This abstract model defines fields and methods to transparently
-handle 2 cases:
+This abstract model defines fields and methods to transparently handle
+2 cases:
- the media is specific to the model.
- the media is shared between multiple models and therefore is a
fs.media instance linked to the mixin.
@@ -426,7 +427,7 @@
Bugs are tracked on GitHub 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.
+feedback.
Do not contact contributors directly about support or help with technical issues.
This module is maintained by the OCA.
-

+
+
+
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.
Current maintainer:

-
This module is part of the OCA/storage project on GitHub.
+
This module is part of the OCA/storage project on GitHub.
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
diff --git a/fs_base_multi_media/views/fs_media.xml b/fs_base_multi_media/views/fs_media.xml
index 06a659dc5b..2d5dad1a71 100644
--- a/fs_base_multi_media/views/fs_media.xml
+++ b/fs_base_multi_media/views/fs_media.xml
@@ -56,22 +56,22 @@
- fs.media.tree
+ fs.media.list
fs.media
-
+
-
+
Fs Media
fs.media
- tree,form
+ list,form
[]
{}
diff --git a/fs_base_multi_media/views/fs_media_relation_mixin.xml b/fs_base_multi_media/views/fs_media_relation_mixin.xml
index c3fed21350..c9e77e2b03 100644
--- a/fs_base_multi_media/views/fs_media_relation_mixin.xml
+++ b/fs_base_multi_media/views/fs_media_relation_mixin.xml
@@ -29,13 +29,13 @@
- fs.media.relation.mixin.tree
+ fs.media.relation.mixin.list
fs.media.relation.mixin
-
+
-
+
diff --git a/fs_base_multi_media/views/fs_media_type.xml b/fs_base_multi_media/views/fs_media_type.xml
index 0eebabaddf..9cac6ba769 100644
--- a/fs_base_multi_media/views/fs_media_type.xml
+++ b/fs_base_multi_media/views/fs_media_type.xml
@@ -5,10 +5,10 @@
fs.media.type
-
+
-
+
@@ -38,7 +38,7 @@
Media Type
ir.actions.act_window
fs.media.type
- tree,form
+ list,form
[]
{}
@@ -54,7 +54,7 @@
- tree
+ list