odoo-addon-dms 16.0.1.8.0.3__py3-none-any.whl → 17.0.1.0.0.2__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (111) hide show
  1. odoo/addons/dms/README.rst +132 -78
  2. odoo/addons/dms/__manifest__.py +34 -16
  3. odoo/addons/dms/actions/file.xml +1 -3
  4. odoo/addons/dms/controllers/main.py +0 -34
  5. odoo/addons/dms/controllers/portal.py +178 -92
  6. odoo/addons/dms/data/onboarding_data.xml +77 -0
  7. odoo/addons/dms/demo/access_group.xml +3 -9
  8. odoo/addons/dms/i18n/de.po +13 -117
  9. odoo/addons/dms/i18n/dms.pot +137 -174
  10. odoo/addons/dms/i18n/es.po +15 -58
  11. odoo/addons/dms/i18n/fr.po +296 -450
  12. odoo/addons/dms/i18n/he_IL.po +13 -117
  13. odoo/addons/dms/i18n/it.po +15 -131
  14. odoo/addons/dms/i18n/nl.po +13 -117
  15. odoo/addons/dms/i18n/pt.po +13 -121
  16. odoo/addons/dms/i18n/pt_BR.po +28 -147
  17. odoo/addons/dms/i18n/ru.po +13 -117
  18. odoo/addons/dms/models/__init__.py +7 -1
  19. odoo/addons/dms/models/abstract_dms_mixin.py +1 -1
  20. odoo/addons/dms/models/access_groups.py +18 -11
  21. odoo/addons/dms/models/base.py +10 -2
  22. odoo/addons/dms/models/directory.py +46 -75
  23. odoo/addons/dms/models/{category.py → dms_category.py} +10 -42
  24. odoo/addons/dms/models/dms_file.py +125 -147
  25. odoo/addons/dms/models/dms_security_mixin.py +26 -22
  26. odoo/addons/dms/models/ir_attachment.py +0 -1
  27. odoo/addons/dms/models/ir_binary.py +19 -0
  28. odoo/addons/dms/models/mail_thread.py +2 -4
  29. odoo/addons/dms/models/mixins_thumbnail.py +13 -8
  30. odoo/addons/dms/models/onboarding_onboarding.py +16 -0
  31. odoo/addons/dms/models/onboarding_onboarding_step.py +50 -0
  32. odoo/addons/dms/models/res_company.py +22 -47
  33. odoo/addons/dms/models/res_config_settings.py +0 -1
  34. odoo/addons/dms/models/storage.py +4 -24
  35. odoo/addons/dms/models/tag.py +1 -1
  36. odoo/addons/dms/readme/CONFIGURE.md +59 -0
  37. odoo/addons/dms/readme/CONTRIBUTORS.md +14 -0
  38. odoo/addons/dms/readme/CREDITS.md +6 -0
  39. odoo/addons/dms/readme/DESCRIPTION.md +9 -0
  40. odoo/addons/dms/readme/INSTALL.md +4 -0
  41. odoo/addons/dms/readme/ROADMAP.md +19 -0
  42. odoo/addons/dms/readme/USAGE.md +11 -0
  43. odoo/addons/dms/security/security.xml +1 -0
  44. odoo/addons/dms/static/description/icon.png +0 -0
  45. odoo/addons/dms/static/description/icon.svg +4 -1
  46. odoo/addons/dms/static/description/index.html +133 -88
  47. odoo/addons/dms/static/description/portal_icon.svg +12 -0
  48. odoo/addons/dms/static/src/js/fields/{path_owl.esm.js → path_json/path_owl.esm.js} +22 -4
  49. odoo/addons/dms/static/src/js/fields/{path_owl.xml → path_json/path_owl.xml} +7 -4
  50. odoo/addons/dms/static/src/js/fields/preview_binary/preview_record.esm.js +47 -0
  51. odoo/addons/dms/static/src/js/{views/fields/binary → fields/preview_binary}/preview_record.xml +5 -4
  52. odoo/addons/dms/static/src/js/views/dms_file_upload.esm.js +155 -148
  53. odoo/addons/dms/static/src/js/views/file_kanban_controller.xml +0 -1
  54. odoo/addons/dms/static/src/js/views/file_kanban_record.esm.js +26 -27
  55. odoo/addons/dms/static/src/js/views/file_kanban_renderer.esm.js +1 -2
  56. odoo/addons/dms/static/src/js/views/file_kanban_renderer.xml +12 -16
  57. odoo/addons/dms/static/src/js/views/file_kanban_view.esm.js +11 -9
  58. odoo/addons/dms/static/src/js/views/file_list_controller.esm.js +1 -1
  59. odoo/addons/dms/static/src/js/views/file_list_renderer.xml +1 -7
  60. odoo/addons/dms/static/src/js/views/file_list_view.esm.js +11 -9
  61. odoo/addons/dms/static/src/js/views/search_panel.esm.js +9 -10
  62. odoo/addons/dms/static/src/models/attachment.esm.js +83 -82
  63. odoo/addons/dms/static/src/models/attachment_image.esm.js +30 -28
  64. odoo/addons/dms/static/src/models/attachment_viewer_viewable.esm.js +27 -25
  65. odoo/addons/dms/static/src/scss/directory_kanban.scss +28 -73
  66. odoo/addons/dms/static/src/scss/dms_common.scss +69 -0
  67. odoo/addons/dms/static/src/scss/file_kanban.scss +22 -34
  68. odoo/addons/dms/static/src/scss/portal.scss +12 -0
  69. odoo/addons/dms/static/tests/tours/dms_portal_tour.esm.js +46 -0
  70. odoo/addons/dms/{views/dms_portal_templates.xml → template/portal.xml} +13 -3
  71. odoo/addons/dms/tests/common.py +20 -4
  72. odoo/addons/dms/tests/data/mail01.eml +2 -2
  73. odoo/addons/dms/tests/data/mail02.eml +2 -2
  74. odoo/addons/dms/tests/test_benchmark.py +16 -21
  75. odoo/addons/dms/tests/test_directory.py +128 -40
  76. odoo/addons/dms/tests/test_file.py +112 -30
  77. odoo/addons/dms/tests/test_file_database.py +50 -24
  78. odoo/addons/dms/tests/test_portal.py +50 -37
  79. odoo/addons/dms/tests/test_storage_attachment.py +85 -63
  80. odoo/addons/dms/tests/test_storage_database.py +89 -35
  81. odoo/addons/dms/tools/file.py +63 -11
  82. odoo/addons/dms/views/dms_access_groups_views.xml +2 -17
  83. odoo/addons/dms/views/{category.xml → dms_category.xml} +4 -9
  84. odoo/addons/dms/views/{directory.xml → dms_directory.xml} +168 -176
  85. odoo/addons/dms/views/dms_file.xml +170 -191
  86. odoo/addons/dms/views/{tag.xml → dms_tag.xml} +50 -53
  87. odoo/addons/dms/views/menu.xml +52 -21
  88. odoo/addons/dms/views/res_config_settings.xml +31 -82
  89. odoo/addons/dms/views/storage.xml +7 -13
  90. odoo_addon_dms-17.0.1.0.0.2.dist-info/METADATA +257 -0
  91. {odoo_addon_dms-16.0.1.8.0.3.dist-info → odoo_addon_dms-17.0.1.0.0.2.dist-info}/RECORD +93 -93
  92. {odoo_addon_dms-16.0.1.8.0.3.dist-info → odoo_addon_dms-17.0.1.0.0.2.dist-info}/WHEEL +1 -1
  93. odoo_addon_dms-17.0.1.0.0.2.dist-info/top_level.txt +1 -0
  94. odoo/addons/dms/readme/CONFIGURE.rst +0 -40
  95. odoo/addons/dms/readme/CONTRIBUTORS.rst +0 -16
  96. odoo/addons/dms/readme/CREDITS.rst +0 -6
  97. odoo/addons/dms/readme/DESCRIPTION.rst +0 -6
  98. odoo/addons/dms/readme/INSTALL.rst +0 -9
  99. odoo/addons/dms/readme/ROADMAP.rst +0 -8
  100. odoo/addons/dms/readme/USAGE.rst +0 -8
  101. odoo/addons/dms/static/src/js/components/path/path.esm.js +0 -0
  102. odoo/addons/dms/static/src/js/dms_portal_tour.js +0 -57
  103. odoo/addons/dms/static/src/js/fields/path.js +0 -81
  104. odoo/addons/dms/static/src/js/views/fields/binary/preview_record.esm.js +0 -35
  105. odoo/addons/dms/static/src/js/views/many_drop_target.js +0 -98
  106. odoo/addons/dms/static/src/scss/variables.scss +0 -9
  107. odoo/addons/dms/static/src/xml/views.xml +0 -72
  108. odoo/addons/dms/template/assets.xml +0 -44
  109. odoo/addons/dms/template/onboarding.xml +0 -97
  110. odoo_addon_dms-16.0.1.8.0.3.dist-info/METADATA +0 -203
  111. odoo_addon_dms-16.0.1.8.0.3.dist-info/top_level.txt +0 -1
@@ -2,33 +2,64 @@
2
2
  <!--
3
3
 
4
4
  Copyright 2017-2019 MuK IT GmbH
5
+ Copyright 2024 Subteno - Timothée Vannier (https://www.subteno.com).
5
6
  License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl).
6
7
 
7
- -->
8
+ -->
8
9
  <odoo>
9
- <menuitem
10
+ <menuitem
10
11
  id="main_menu_dms"
11
12
  name="Documents"
12
13
  web_icon="dms,static/description/icon.png"
13
14
  groups="group_dms_user"
14
- />
15
- <menuitem
16
- id="cat_menu_dms_config"
17
- name="Configuration"
18
- parent="main_menu_dms"
19
- sequence="50"
20
- />
21
- <menuitem
22
- id="cat_menu_dms_config_organizing"
23
- name="Organizing"
24
- parent="cat_menu_dms_config"
25
- sequence="5"
26
- />
15
+ >
16
+ <menuitem id="menu_dms_file" name="Files" sequence="20" action="action_dms_file" />
27
17
  <menuitem
28
- id="cat_menu_dms_config_system"
29
- name="System"
30
- groups="dms.group_dms_manager"
31
- parent="cat_menu_dms_config"
32
- sequence="25"
33
- />
18
+ id="menu_dms_directory"
19
+ name="Directories"
20
+ sequence="30"
21
+ action="action_dms_directory"
22
+ />
23
+ <menuitem id="cat_menu_dms_config" name="Configuration" sequence="50">
24
+ <menuitem
25
+ id="menu_dms_settings_general"
26
+ name="General Settings"
27
+ sequence="0"
28
+ action="action_dms_settings_general"
29
+ groups="base.group_system"
30
+ />
31
+ <menuitem id="cat_menu_dms_config_organizing" name="Organizing" sequence="5">
32
+ <menuitem id="menu_dms_tag" name="Tags" action="action_dms_tag" />
33
+ <menuitem
34
+ id="menu_dms_category"
35
+ name="Categories"
36
+ action="action_dms_category"
37
+ />
38
+ </menuitem>
39
+ <menuitem
40
+ id="cat_menu_dms_config_system"
41
+ name="System"
42
+ groups="dms.group_dms_manager"
43
+ sequence="25"
44
+ >
45
+ <menuitem
46
+ id="menu_dms_storage"
47
+ name="Storages"
48
+ action="action_dms_storage"
49
+ sequence="5"
50
+ />
51
+ <menuitem
52
+ id="menu_dms_file_migration"
53
+ name="Migration"
54
+ action="action_dms_file_migration"
55
+ sequence="8"
56
+ />
57
+ <menuitem
58
+ id="menu_dms_access_groups"
59
+ name="Access Groups"
60
+ action="action_dms_access_groups"
61
+ />
62
+ </menuitem>
63
+ </menuitem>
64
+ </menuitem>
34
65
  </odoo>
@@ -2,6 +2,7 @@
2
2
  <!--
3
3
 
4
4
  Copyright 2017-2019 MuK IT GmbH
5
+ Copyright 2024 Subteno - Timothée Vannier (https://www.subteno.com).
5
6
  License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl).
6
7
 
7
8
  -->
@@ -12,79 +13,35 @@
12
13
  <field name="priority" eval="20" />
13
14
  <field name="inherit_id" ref="base.res_config_settings_view_form" />
14
15
  <field name="arch" type="xml">
15
- <xpath expr="//div[hasclass('settings')]" position="inside">
16
- <div
17
- class="app_settings_block"
18
- data-string="Documents"
19
- data-key="dms"
20
- groups="base.group_system"
21
- string="Documents"
22
- >
23
- <div name="dms_settings">
24
- <h2>File Upload</h2>
25
- <div class="row mt16 o_settings_container" name="file">
26
- <div class="col-12 col-md-6 o_setting_box">
27
- <div class="o_setting_right_pane">
28
- <span class="o_form_label">File Size</span>
29
- <div class="text-muted">
30
- Define the maximum upload size of a
31
- file in MB
32
- </div>
33
- <div class="content-group">
34
- <div class="row mt16">
35
- <label
36
- class="col-md-3 o_light_label"
37
- for="documents_binary_max_size"
38
- />
39
- <field name="documents_binary_max_size" />
40
- </div>
41
- </div>
42
- </div>
43
- </div>
44
- <div class="col-12 col-md-6 o_setting_box">
45
- <div class="o_setting_right_pane">
46
- <span class="o_form_label">File
47
- Extensions
48
- </span>
49
- <div class="text-muted">
50
- Define forbidden file extensions
51
- </div>
52
- <div class="content-group">
53
- <div class="row mt16">
54
- <label
55
- class="col-md-3 o_light_label"
56
- for="documents_forbidden_extensions"
57
- />
58
- <field
59
- name="documents_forbidden_extensions"
60
- placeholder="exe,msi"
61
- />
62
- </div>
63
- </div>
64
- </div>
65
- </div>
66
- <div class="col-12 col-md-6 o_setting_box">
67
- <div class="o_setting_right_pane">
68
- <span class="o_form_label">
69
- Storages
70
- </span>
71
- <div class="text-muted">
72
- Show storages
73
- </div>
74
- <div class="content-group">
75
- <button
76
- name="%(dms.action_dms_storage)d"
77
- string="Storages"
78
- type="action"
79
- class="oe_link"
80
- icon="fa-arrow-right"
81
- />
82
- </div>
83
- </div>
84
- </div>
85
- </div>
86
- </div>
87
- </div>
16
+ <xpath expr="//form" position="inside">
17
+ <app string="Documents" groups="base.group_system" name="dms">
18
+ <block title="File Upload">
19
+ <setting
20
+ string="File Size"
21
+ help="Define the maximum upload size of a file in MB"
22
+ >
23
+ <field name="documents_binary_max_size" />
24
+ </setting>
25
+ <setting
26
+ string="File Extensions"
27
+ help="Define forbidden file extensions"
28
+ >
29
+ <field
30
+ name="documents_forbidden_extensions"
31
+ placeholder="exe,msi"
32
+ />
33
+ </setting>
34
+ <setting string="Storages" help="Show storages">
35
+ <button
36
+ name="%(dms.action_dms_storage)d"
37
+ string="Storages"
38
+ type="action"
39
+ class="oe_link"
40
+ icon="fa-arrow-right"
41
+ />
42
+ </setting>
43
+ </block>
44
+ </app>
88
45
  </xpath>
89
46
  </field>
90
47
  </record>
@@ -94,14 +51,6 @@
94
51
  <field name="res_model">res.config.settings</field>
95
52
  <field name="view_mode">form</field>
96
53
  <field name="target">inline</field>
97
- <field name="context">{'module' : 'dms'}</field>
54
+ <field name="context">{'module': 'dms'}</field>
98
55
  </record>
99
- <menuitem
100
- id="menu_dms_settings_general"
101
- name="General Settings"
102
- parent="cat_menu_dms_config"
103
- sequence="0"
104
- action="action_dms_settings_general"
105
- groups="base.group_system"
106
- />
107
56
  </odoo>
@@ -2,6 +2,7 @@
2
2
  <!--
3
3
 
4
4
  Copyright 2017-2019 MuK IT GmbH
5
+ Copyright 2024 Subteno - Timothée Vannier (https://www.subteno.com).
5
6
  License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl).
6
7
 
7
8
  -->
@@ -115,7 +116,7 @@
115
116
  name="action_storage_migrate"
116
117
  type="object"
117
118
  string="Migrate Files"
118
- attrs="{'invisible': [('save_type', '=', 'attachment')]}"
119
+ invisible="save_type == 'attachment'"
119
120
  />
120
121
  <button
121
122
  type="action"
@@ -169,18 +170,18 @@
169
170
  <field name="is_hidden" />
170
171
  <field
171
172
  name="inherit_access_from_parent_record"
172
- attrs="{'invisible': [('save_type', '!=', 'attachment')]}"
173
+ invisible="save_type != 'attachment'"
173
174
  />
174
175
  <field
175
176
  name="include_message_attachments"
176
- attrs="{'invisible': [('save_type', '!=', 'attachment')]}"
177
+ invisible="save_type != 'attachment'"
177
178
  />
178
179
  </group>
179
180
  <group>
180
181
  <field name="company_id" />
181
182
  <field
182
183
  name="model_ids"
183
- attrs="{'invisible': [('save_type', '!=', 'attachment')]}"
184
+ invisible="save_type != 'attachment'"
184
185
  />
185
186
  </group>
186
187
  </group>
@@ -188,12 +189,12 @@
188
189
  <page
189
190
  name="page_roots"
190
191
  string="Root Directories"
191
- attrs="{'invisible': [('id', '=', False)]}"
192
+ invisible="not id"
192
193
  >
193
194
  <field
194
195
  name="root_directory_ids"
195
196
  groups="dms.group_dms_manager"
196
- context="{'hide_root_storage': True,'default_storage_id': active_id, 'default_is_root_directory': True}"
197
+ context="{'hide_root_storage': True,'default_storage_id': id, 'default_is_root_directory': True}"
197
198
  >
198
199
  <tree>
199
200
  <field name="name" />
@@ -221,13 +222,6 @@
221
222
  </p>
222
223
  </field>
223
224
  </record>
224
- <menuitem
225
- id="menu_dms_storage"
226
- name="Storages"
227
- parent="cat_menu_dms_config_system"
228
- action="action_dms_storage"
229
- sequence="5"
230
- />
231
225
  <record id="view_dms_storage_new_form" model="ir.ui.view">
232
226
  <field name="name">dms_storage.form</field>
233
227
  <field name="model">dms.storage</field>
@@ -0,0 +1,257 @@
1
+ Metadata-Version: 2.1
2
+ Name: odoo-addon-dms
3
+ Version: 17.0.1.0.0.2
4
+ Requires-Python: >=3.10
5
+ Requires-Dist: odoo>=17.0a,<17.1dev
6
+ Summary: Document Management System for Odoo
7
+ Home-page: https://github.com/OCA/dms
8
+ License: LGPL-3
9
+ Author: MuK IT, Tecnativa, Odoo Community Association (OCA)
10
+ Author-email: support@odoo-community.org
11
+ Classifier: Programming Language :: Python
12
+ Classifier: Framework :: Odoo
13
+ Classifier: Framework :: Odoo :: 17.0
14
+ Classifier: License :: OSI Approved :: GNU Lesser General Public License v3 (LGPLv3)
15
+
16
+ ==========================
17
+ Document Management System
18
+ ==========================
19
+
20
+ ..
21
+ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
22
+ !! This file is generated by oca-gen-addon-readme !!
23
+ !! changes will be overwritten. !!
24
+ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
25
+ !! source digest: sha256:531f01b97db7166c170f62f0f28861e7635913bc1f5dbdb04e20d7f9d15f855c
26
+ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
27
+
28
+ .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
29
+ :target: https://odoo-community.org/page/development-status
30
+ :alt: Beta
31
+ .. |badge2| image:: https://img.shields.io/badge/licence-LGPL--3-blue.png
32
+ :target: http://www.gnu.org/licenses/lgpl-3.0-standalone.html
33
+ :alt: License: LGPL-3
34
+ .. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fdms-lightgray.png?logo=github
35
+ :target: https://github.com/OCA/dms/tree/17.0/dms
36
+ :alt: OCA/dms
37
+ .. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
38
+ :target: https://translation.odoo-community.org/projects/dms-17-0/dms-17-0-dms
39
+ :alt: Translate me on Weblate
40
+ .. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png
41
+ :target: https://runboat.odoo-community.org/builds?repo=OCA/dms&target_branch=17.0
42
+ :alt: Try me on Runboat
43
+
44
+ |badge1| |badge2| |badge3| |badge4| |badge5|
45
+
46
+ DMS is a module for creating, managing and viewing document files
47
+ directly within Odoo. This module is only the basis for an entire
48
+ ecosystem of apps that extend and seamlessly integrate with the document
49
+ management system.
50
+
51
+ This module adds portal functionality for directories and files for
52
+ allowed users, both portal or internal users. You can get as well a
53
+ tokenized link from a directory or a file for sharing it with any
54
+ anonymous user.
55
+
56
+ **Table of contents**
57
+
58
+ .. contents::
59
+ :local:
60
+
61
+ Installation
62
+ ============
63
+
64
+ Preview
65
+ -------
66
+
67
+ ``python-magic`` library is recommended to be installed for having whole
68
+ support to get proper file types and file preview.
69
+
70
+ Configuration
71
+ =============
72
+
73
+ Configuration
74
+ =============
75
+
76
+ To configure this module, you need to:
77
+
78
+ 1. Create a storage
79
+ -------------------
80
+
81
+ 1. Go to *Documents -> Configuration -> Storages*.
82
+
83
+ 2. Create a new document storage. You can choose between three options
84
+ on ``Save Type``:
85
+
86
+ - ``Database``: Store the files on the database as a field
87
+ - ``Attachment``: Store the files as attachments
88
+ - ``File``: Store the files on the file system
89
+
90
+ 2. Create an access group
91
+ -------------------------
92
+
93
+ 1. Next, create an administrative access group. Go to *Configuration ->
94
+ Access Groups*.
95
+
96
+ - Create a new group, name it appropriately, and turn on all three
97
+ permissions (Create, Write and Unlink. Read is implied and always
98
+ enabled).
99
+ - Add any other top-level administrative users to the group if
100
+ needed (your user should already be there).
101
+ - You can create other groups in here later for fine-grained access
102
+ control.
103
+
104
+ 3. Create a directory
105
+ ---------------------
106
+
107
+ 1. Afterward, go to *Documents -> Directories*.
108
+
109
+ 2. Create a new directory, mark it as root and select the previously
110
+ created setting.
111
+
112
+ - Select the *Groups* tab and add your administrative group created
113
+ above. If your directory was already created before the group, you
114
+ can also add it in the access groups (*Configuration -> Access
115
+ Groups*).
116
+
117
+ 3. In the directory settings, you can also add other access groups
118
+ (created above) that will be able to:
119
+
120
+ - read
121
+ - create
122
+ - write
123
+ - delete
124
+
125
+ Migration
126
+ =========
127
+
128
+ If you need to modify the storage ``Save Type`` you might want to
129
+ migrate the file data. To achieve it, you need to:
130
+
131
+ 1. Go to *Documents -> Configuration -> Storage* and select the storage
132
+ you want to modify
133
+ 2. Modify the save type
134
+ 3. Press the button Migrate files if you want to migrate all the files
135
+ at once
136
+ 4. Press the button Manual File Migration to specify files one by one
137
+
138
+ You can check all the files that still need to be migrated from all
139
+ storages and migrate them manually on *Documents -> Configuration ->
140
+ Migration*
141
+
142
+ File Wizard Selection
143
+ =====================
144
+
145
+ There is an action called ``action_dms_file_wizard_selector`` to open a
146
+ wizard to list files in kanban view. This can be used (example
147
+ dms_attachment_link module) to add a button in kanban view with the
148
+ action we need.
149
+
150
+ Usage
151
+ =====
152
+
153
+ The best way to manage the documents is to switch to the Documents view.
154
+ Existing documents can be managed there and new documents can be
155
+ created.
156
+
157
+ Portal functionality
158
+ --------------------
159
+
160
+ You can add any portal user to DMS access groups, and then allow that
161
+ group in directories, so they will see in the portal such directories
162
+ and their files. Another possibility is to click on "Share" button
163
+ inside a directory or a file for obtaining a tokenized link for single
164
+ access to that resource, no matter if logged or not.
165
+
166
+ Known issues / Roadmap
167
+ ======================
168
+
169
+ - Files preview in portal
170
+ - Allow to download folder in portal and create zip file with all
171
+ content
172
+ - Save in cache own_root directories and update in every
173
+ create/write/unlink function
174
+ - Add a migration procedure for converting an storage to attachment one
175
+ for populating existing records with attachments as folders
176
+ - Add a link from attachment view in chatter to linked documents
177
+ - If Inherit permissions from related record (the
178
+ inherit_access_from_parent_record field from storage) is changed when
179
+ directories already exist, inconsistencies may occur because groups
180
+ defined in the directories and subdirectories will still exist, all
181
+ groups in these directories should be removed before changing.
182
+ - Since portal users can read ``dms.storage`` records, if your module
183
+ extends this model to another storage backend that needs using
184
+ secrets, remember to forbid access to the secrets fields by other
185
+ means. It would be nice to be able to remove that rule at some point.
186
+ - Searchpanel in files: Highlight items (shading) without records when
187
+ filtering something (by name for example).
188
+
189
+ Bug Tracker
190
+ ===========
191
+
192
+ Bugs are tracked on `GitHub Issues <https://github.com/OCA/dms/issues>`_.
193
+ In case of trouble, please check there if your issue has already been reported.
194
+ If you spotted it first, help us to smash it by providing a detailed and welcomed
195
+ `feedback <https://github.com/OCA/dms/issues/new?body=module:%20dms%0Aversion:%2017.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.
196
+
197
+ Do not contact contributors directly about support or help with technical issues.
198
+
199
+ Credits
200
+ =======
201
+
202
+ Authors
203
+ -------
204
+
205
+ * MuK IT
206
+ * Tecnativa
207
+
208
+ Contributors
209
+ ------------
210
+
211
+ - Mathias Markl <mathias.markl@mukit.at>
212
+ - Enric Tobella <etobella@creublanca.es>
213
+ - Antoni Romera
214
+ - Gelu Boros <gelu.boros@rgbconsulting.com>
215
+ - `Tecnativa <https://www.tecnativa.com>`__:
216
+
217
+ - Víctor Martínez
218
+ - Pedro M. Baeza
219
+ - Jairo Llopis
220
+
221
+ - `Elego <https://www.elegosoft.com>`__:
222
+
223
+ - Yu Weng <yweng@elegosoft.com>
224
+ - Philip Witte <phillip.witte@elegosoft.com>
225
+ - Khanh Bui <khanh.bui@mail.elegosoft.com>
226
+
227
+ - `Subteno <https://www.subteno.com>`__:
228
+
229
+ - Timothée Vannier <tva@subteno.com>
230
+
231
+ Other credits
232
+ -------------
233
+
234
+ Some pictures are based on or inspired by:
235
+
236
+ - `Roundicons <https://www.flaticon.com/authors/roundicons>`__
237
+ - `Smashicons <https://www.flaticon.com/authors/smashicons>`__
238
+ - `EmojiOne <https://github.com/EmojiTwo/emojitwo>`__ : Portal DMS icon
239
+ - `GitHub Octicons <https://github.com/primer/octicons/>`__ : The main
240
+ DMS icon
241
+
242
+ Maintainers
243
+ -----------
244
+
245
+ This module is maintained by the OCA.
246
+
247
+ .. image:: https://odoo-community.org/logo.png
248
+ :alt: Odoo Community Association
249
+ :target: https://odoo-community.org
250
+
251
+ OCA, or the Odoo Community Association, is a nonprofit organization whose
252
+ mission is to support the collaborative development of Odoo features and
253
+ promote its widespread use.
254
+
255
+ This module is part of the `OCA/dms <https://github.com/OCA/dms/tree/17.0/dms>`_ project on GitHub.
256
+
257
+ You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.