odoo-addon-dms 16.0.1.2.0__py3-none-any.whl → 16.0.1.2.1.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.
@@ -7,7 +7,7 @@ Document Management System
7
7
  !! This file is generated by oca-gen-addon-readme !!
8
8
  !! changes will be overwritten. !!
9
9
  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
10
- !! source digest: sha256:8c746a816bfdc7c0e05b514cf7d97e881d006c9b3e51a4a5c2cbcb45c93fb523
10
+ !! source digest: sha256:c800b9b5b45ad58a5b998b6b7b6960bb825cecec016f1c51853f1ef1fea9a229
11
11
  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
12
12
 
13
13
  .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
@@ -4,7 +4,7 @@
4
4
  {
5
5
  "name": "Document Management System",
6
6
  "summary": """Document Management System for Odoo""",
7
- "version": "16.0.1.2.0",
7
+ "version": "16.0.1.2.1",
8
8
  "category": "Document Management",
9
9
  "license": "LGPL-3",
10
10
  "website": "https://github.com/OCA/dms",
@@ -283,8 +283,8 @@ msgid "A file with the same name already exists"
283
283
  msgstr ""
284
284
 
285
285
  #. module: dms
286
- #. odoo-python
287
286
  #. odoo-javascript
287
+ #. odoo-python
288
288
  #: code:addons/dms/models/dms_file.py:0
289
289
  #: code:addons/dms/static/src/js/views/dms_file_upload.esm.js:0
290
290
  #, python-format
@@ -983,13 +983,6 @@ msgstr "E-Mail-Alias"
983
983
  msgid "Email Thread"
984
984
  msgstr "E-Mail Thread"
985
985
 
986
- #. module: dms
987
- #. odoo-python
988
- #: code:addons/dms/tests/common.py:0
989
- #, python-format
990
- msgid "Error has not been raised"
991
- msgstr "Es ist ein Fehler aufgetreten."
992
-
993
986
  #. module: dms
994
987
  #. odoo-python
995
988
  #: code:addons/dms/models/category.py:0
@@ -2294,6 +2287,10 @@ msgstr ""
2294
2287
  msgid "res.company"
2295
2288
  msgstr ""
2296
2289
 
2290
+ #, python-format
2291
+ #~ msgid "Error has not been raised"
2292
+ #~ msgstr "Es ist ein Fehler aufgetreten."
2293
+
2297
2294
  #~ msgid "Model Name"
2298
2295
  #~ msgstr "Modellname"
2299
2296
 
@@ -923,13 +923,6 @@ msgstr ""
923
923
  msgid "Email Thread"
924
924
  msgstr ""
925
925
 
926
- #. module: dms
927
- #. odoo-python
928
- #: code:addons/dms/tests/common.py:0
929
- #, python-format
930
- msgid "Error has not been raised"
931
- msgstr ""
932
-
933
926
  #. module: dms
934
927
  #. odoo-python
935
928
  #: code:addons/dms/models/category.py:0
@@ -286,8 +286,8 @@ msgid "A file with the same name already exists"
286
286
  msgstr "Ya existe un archivo con el mismo nombre"
287
287
 
288
288
  #. module: dms
289
- #. odoo-python
290
289
  #. odoo-javascript
290
+ #. odoo-python
291
291
  #: code:addons/dms/models/dms_file.py:0
292
292
  #: code:addons/dms/static/src/js/views/dms_file_upload.esm.js:0
293
293
  #, python-format
@@ -986,13 +986,6 @@ msgstr "Alias de email"
986
986
  msgid "Email Thread"
987
987
  msgstr "Hilo de correo electrónico"
988
988
 
989
- #. module: dms
990
- #. odoo-python
991
- #: code:addons/dms/tests/common.py:0
992
- #, python-format
993
- msgid "Error has not been raised"
994
- msgstr "El error no está trazado"
995
-
996
989
  #. module: dms
997
990
  #. odoo-python
998
991
  #: code:addons/dms/models/category.py:0
@@ -2288,6 +2281,10 @@ msgstr "o_onboarding_orange"
2288
2281
  msgid "res.company"
2289
2282
  msgstr "res.company"
2290
2283
 
2284
+ #, python-format
2285
+ #~ msgid "Error has not been raised"
2286
+ #~ msgstr "El error no está trazado"
2287
+
2291
2288
  #~ msgid "Number of messages which requires an action"
2292
2289
  #~ msgstr "Número de mensajes que requieren una acción"
2293
2290
 
@@ -286,8 +286,8 @@ msgid "A file with the same name already exists"
286
286
  msgstr ""
287
287
 
288
288
  #. module: dms
289
- #. odoo-python
290
289
  #. odoo-javascript
290
+ #. odoo-python
291
291
  #: code:addons/dms/models/dms_file.py:0
292
292
  #: code:addons/dms/static/src/js/views/dms_file_upload.esm.js:0
293
293
  #, python-format
@@ -985,13 +985,6 @@ msgstr "Alias de messagerie"
985
985
  msgid "Email Thread"
986
986
  msgstr "Fil d'e-mail"
987
987
 
988
- #. module: dms
989
- #. odoo-python
990
- #: code:addons/dms/tests/common.py:0
991
- #, python-format
992
- msgid "Error has not been raised"
993
- msgstr "L'erreur n'a pas été signalée"
994
-
995
988
  #. module: dms
996
989
  #. odoo-python
997
990
  #: code:addons/dms/models/category.py:0
@@ -2285,6 +2278,10 @@ msgstr ""
2285
2278
  msgid "res.company"
2286
2279
  msgstr ""
2287
2280
 
2281
+ #, python-format
2282
+ #~ msgid "Error has not been raised"
2283
+ #~ msgstr "L'erreur n'a pas été signalée"
2284
+
2288
2285
  #~ msgid "Number of messages which requires an action"
2289
2286
  #~ msgstr "Nombre de messages nécessitant une action"
2290
2287
 
@@ -241,8 +241,8 @@ msgid "A file with the same name already exists"
241
241
  msgstr ""
242
242
 
243
243
  #. module: dms
244
- #. odoo-python
245
244
  #. odoo-javascript
245
+ #. odoo-python
246
246
  #: code:addons/dms/models/dms_file.py:0
247
247
  #: code:addons/dms/static/src/js/views/dms_file_upload.esm.js:0
248
248
  #, python-format
@@ -938,13 +938,6 @@ msgstr "כינוי דוא\"ל"
938
938
  msgid "Email Thread"
939
939
  msgstr ""
940
940
 
941
- #. module: dms
942
- #. odoo-python
943
- #: code:addons/dms/tests/common.py:0
944
- #, python-format
945
- msgid "Error has not been raised"
946
- msgstr "שגיאה לא הועלתה"
947
-
948
941
  #. module: dms
949
942
  #. odoo-python
950
943
  #: code:addons/dms/models/category.py:0
@@ -2213,6 +2206,10 @@ msgstr ""
2213
2206
  msgid "res.company"
2214
2207
  msgstr ""
2215
2208
 
2209
+ #, python-format
2210
+ #~ msgid "Error has not been raised"
2211
+ #~ msgstr "שגיאה לא הועלתה"
2212
+
2216
2213
  #~ msgid "Number of messages which requires an action"
2217
2214
  #~ msgstr "מספר ההודעות המחייבות פעולה"
2218
2215
 
@@ -6,7 +6,7 @@ msgid ""
6
6
  msgstr ""
7
7
  "Project-Id-Version: Odoo Server 13.0\n"
8
8
  "Report-Msgid-Bugs-To: \n"
9
- "PO-Revision-Date: 2024-01-11 10:36+0000\n"
9
+ "PO-Revision-Date: 2024-02-16 17:46+0000\n"
10
10
  "Last-Translator: mymage <stefano.consolaro@mymage.it>\n"
11
11
  "Language-Team: none\n"
12
12
  "Language: it\n"
@@ -283,8 +283,8 @@ msgid "A file with the same name already exists"
283
283
  msgstr "Esiste già un file con lo stesso nome"
284
284
 
285
285
  #. module: dms
286
- #. odoo-python
287
286
  #. odoo-javascript
287
+ #. odoo-python
288
288
  #: code:addons/dms/models/dms_file.py:0
289
289
  #: code:addons/dms/static/src/js/views/dms_file_upload.esm.js:0
290
290
  #, python-format
@@ -984,13 +984,6 @@ msgstr "Alias email"
984
984
  msgid "Email Thread"
985
985
  msgstr "Discussione e-mail"
986
986
 
987
- #. module: dms
988
- #. odoo-python
989
- #: code:addons/dms/tests/common.py:0
990
- #, python-format
991
- msgid "Error has not been raised"
992
- msgstr "L'errore non è stato segnalato"
993
-
994
987
  #. module: dms
995
988
  #. odoo-python
996
989
  #: code:addons/dms/models/category.py:0
@@ -1691,7 +1684,7 @@ msgstr "Proprietario"
1691
1684
  #. module: dms
1692
1685
  #: model:ir.model.fields,field_description:dms.field_dms_category__parent_id
1693
1686
  msgid "Parent Category"
1694
- msgstr "Categoria madre"
1687
+ msgstr "Categoria padre"
1695
1688
 
1696
1689
  #. module: dms
1697
1690
  #: model:ir.model.fields,field_description:dms.field_dms_directory__parent_id
@@ -2285,3 +2278,7 @@ msgstr "o_onboarding_orange"
2285
2278
  #: model_terms:ir.ui.view,arch_db:dms.document_onboarding_file_panel
2286
2279
  msgid "res.company"
2287
2280
  msgstr "res.company"
2281
+
2282
+ #, python-format
2283
+ #~ msgid "Error has not been raised"
2284
+ #~ msgstr "L'errore non è stato segnalato"
@@ -235,8 +235,8 @@ msgid "A file with the same name already exists"
235
235
  msgstr ""
236
236
 
237
237
  #. module: dms
238
- #. odoo-python
239
238
  #. odoo-javascript
239
+ #. odoo-python
240
240
  #: code:addons/dms/models/dms_file.py:0
241
241
  #: code:addons/dms/static/src/js/views/dms_file_upload.esm.js:0
242
242
  #, python-format
@@ -930,13 +930,6 @@ msgstr ""
930
930
  msgid "Email Thread"
931
931
  msgstr ""
932
932
 
933
- #. module: dms
934
- #. odoo-python
935
- #: code:addons/dms/tests/common.py:0
936
- #, python-format
937
- msgid "Error has not been raised"
938
- msgstr ""
939
-
940
933
  #. module: dms
941
934
  #. odoo-python
942
935
  #: code:addons/dms/models/category.py:0
@@ -282,8 +282,8 @@ msgid "A file with the same name already exists"
282
282
  msgstr "Já existe um arquivo com o mesmo nome"
283
283
 
284
284
  #. module: dms
285
- #. odoo-python
286
285
  #. odoo-javascript
286
+ #. odoo-python
287
287
  #: code:addons/dms/models/dms_file.py:0
288
288
  #: code:addons/dms/static/src/js/views/dms_file_upload.esm.js:0
289
289
  #, python-format
@@ -982,13 +982,6 @@ msgstr "Apelido de E-mail"
982
982
  msgid "Email Thread"
983
983
  msgstr "Tópico do e-mail"
984
984
 
985
- #. module: dms
986
- #. odoo-python
987
- #: code:addons/dms/tests/common.py:0
988
- #, python-format
989
- msgid "Error has not been raised"
990
- msgstr "O erro não foi levantado"
991
-
992
985
  #. module: dms
993
986
  #. odoo-python
994
987
  #: code:addons/dms/models/category.py:0
@@ -2280,3 +2273,7 @@ msgstr ""
2280
2273
  #: model_terms:ir.ui.view,arch_db:dms.document_onboarding_file_panel
2281
2274
  msgid "res.company"
2282
2275
  msgstr ""
2276
+
2277
+ #, python-format
2278
+ #~ msgid "Error has not been raised"
2279
+ #~ msgstr "O erro não foi levantado"
@@ -234,8 +234,8 @@ msgid "A file with the same name already exists"
234
234
  msgstr ""
235
235
 
236
236
  #. module: dms
237
- #. odoo-python
238
237
  #. odoo-javascript
238
+ #. odoo-python
239
239
  #: code:addons/dms/models/dms_file.py:0
240
240
  #: code:addons/dms/static/src/js/views/dms_file_upload.esm.js:0
241
241
  #, python-format
@@ -929,13 +929,6 @@ msgstr ""
929
929
  msgid "Email Thread"
930
930
  msgstr ""
931
931
 
932
- #. module: dms
933
- #. odoo-python
934
- #: code:addons/dms/tests/common.py:0
935
- #, python-format
936
- msgid "Error has not been raised"
937
- msgstr ""
938
-
939
932
  #. module: dms
940
933
  #. odoo-python
941
934
  #: code:addons/dms/models/category.py:0
@@ -366,7 +366,7 @@ ul.auto-toc {
366
366
  !! This file is generated by oca-gen-addon-readme !!
367
367
  !! changes will be overwritten. !!
368
368
  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
369
- !! source digest: sha256:8c746a816bfdc7c0e05b514cf7d97e881d006c9b3e51a4a5c2cbcb45c93fb523
369
+ !! source digest: sha256:c800b9b5b45ad58a5b998b6b7b6960bb825cecec016f1c51853f1ef1fea9a229
370
370
  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
371
371
  <p><a class="reference external image-reference" href="https://odoo-community.org/page/development-status"><img alt="Beta" src="https://img.shields.io/badge/maturity-Beta-yellow.png" /></a> <a class="reference external image-reference" href="http://www.gnu.org/licenses/lgpl-3.0-standalone.html"><img alt="License: LGPL-3" src="https://img.shields.io/badge/licence-LGPL--3-blue.png" /></a> <a class="reference external image-reference" href="https://github.com/OCA/dms/tree/16.0/dms"><img alt="OCA/dms" src="https://img.shields.io/badge/github-OCA%2Fdms-lightgray.png?logo=github" /></a> <a class="reference external image-reference" href="https://translation.odoo-community.org/projects/dms-16-0/dms-16-0-dms"><img alt="Translate me on Weblate" src="https://img.shields.io/badge/weblate-Translate%20me-F47D42.png" /></a> <a class="reference external image-reference" href="https://runboat.odoo-community.org/builds?repo=OCA/dms&amp;target_branch=16.0"><img alt="Try me on Runboat" src="https://img.shields.io/badge/runboat-Try%20me-875A7B.png" /></a></p>
372
372
  <p>DMS is a module for creating, managing and viewing document files directly
@@ -1,21 +1,18 @@
1
1
  # Copyright 2017-2019 MuK IT GmbH.
2
2
  # Copyright 2020 Creu Blanca
3
- # Copyright 2021-2022 Tecnativa - Víctor Martínez
3
+ # Copyright 2021-2024 Tecnativa - Víctor Martínez
4
4
  # License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl).
5
5
  import base64
6
6
  import functools
7
7
  import logging
8
- import os
9
8
  import threading
10
9
  import time
11
10
  import uuid
12
11
 
13
- from odoo import SUPERUSER_ID, _
14
- from odoo.modules.module import get_module_resource
15
- from odoo.tests import Form, common, new_test_user
16
- from odoo.tools import convert_file
12
+ from odoo.tests import Form, new_test_user
13
+
14
+ from odoo.addons.base.tests.common import BaseCommon
17
15
 
18
- _path = os.path.dirname(os.path.dirname(__file__))
19
16
  _logger = logging.getLogger(__name__)
20
17
 
21
18
  # ----------------------------------------------------------
@@ -23,75 +20,6 @@ _logger = logging.getLogger(__name__)
23
20
  # ----------------------------------------------------------
24
21
 
25
22
 
26
- def multi_users(users=False, reset=True, raise_exception=True, callback=False):
27
- def decorator(func):
28
- @functools.wraps(func)
29
- def wrapper(self, *args, **kwargs):
30
- user_list = users(self) if callable(users) else users
31
- test_results = []
32
- for user in user_list:
33
- self.cr.execute("SAVEPOINT test_multi_users")
34
- try:
35
- if not isinstance(user[0], int):
36
- self.uid = self.ref(user[0])
37
- else:
38
- self.uid = user[0]
39
- if hasattr(self, callback):
40
- callb = getattr(self, callback)
41
- if callable(callb):
42
- callb()
43
- func(self, *args, **kwargs)
44
- except Exception as error:
45
- test_results.append(
46
- {
47
- "user": user[0],
48
- "expect": user[1],
49
- "result": False,
50
- "error": error,
51
- }
52
- )
53
- else:
54
- test_results.append(
55
- {
56
- "user": user[0],
57
- "expect": user[1],
58
- "result": True,
59
- "error": None,
60
- }
61
- )
62
- if reset:
63
- self.env.cache.invalidate()
64
- self.registry.clear_caches()
65
- self.registry.reset_changes()
66
- self.cr.execute("ROLLBACK TO SAVEPOINT test_multi_users")
67
- else:
68
- self._cr.execute("RELEASE SAVEPOINT test_multi_users")
69
- test_fails = []
70
- for result in test_results:
71
- if result["expect"] != result["result"]:
72
- message = "Test (%s) with user (%s) failed!"
73
- _logger.info(message % (func.__name__, result["user"]))
74
- if result["error"]:
75
- _logger.error(result["error"], exc_info=True)
76
- test_fails.append(result)
77
- if test_fails:
78
- message = "{} out of {} tests failed".format(
79
- len(test_fails),
80
- len(test_results),
81
- )
82
- if raise_exception and test_fails[0]["error"]:
83
- raise test_fails[0]["error"]
84
- elif raise_exception:
85
- raise Exception(_("Error has not been raised"))
86
- else:
87
- _logger.info(message)
88
- return test_results
89
-
90
- return wrapper
91
-
92
- return decorator
93
-
94
-
95
23
  def track_function(
96
24
  max_query_count=None, max_query_time=None, max_time=None, return_tracking=False
97
25
  ):
@@ -148,87 +76,53 @@ def track_function(
148
76
  # ----------------------------------------------------------
149
77
 
150
78
 
151
- class DocumentsBaseCase(common.TransactionCase):
152
- def setUp(self):
153
- super().setUp()
154
- self.super_uid = SUPERUSER_ID
155
- self.env = self.env(
156
- context=dict(
157
- self.env.context,
158
- mail_create_nolog=True,
159
- mail_create_nosubscribe=True,
160
- mail_notrack=True,
161
- no_reset_password=True,
162
- tracking_disable=True,
163
- )
164
- )
79
+ class DocumentsBaseCase(BaseCommon):
80
+ @classmethod
81
+ def setUpClass(cls):
82
+ super().setUpClass()
165
83
  # models
166
- self.access_group_model = self.env["dms.access.group"]
167
- self.storage_model = self.env["dms.storage"]
168
- self.directory_model = self.env["dms.directory"]
169
- self.file_model = self.env["dms.file"]
170
- self.category_model = self.env["dms.category"]
171
- self.tag_model = self.env["dms.tag"]
172
- self.attachment_model = self.env["ir.attachment"]
173
- self.partner_model = self.env["res.partner"]
84
+ cls.access_group_model = cls.env["dms.access.group"]
85
+ cls.storage_model = cls.env["dms.storage"]
86
+ cls.directory_model = cls.env["dms.directory"]
87
+ cls.file_model = cls.env["dms.file"]
88
+ cls.category_model = cls.env["dms.category"]
89
+ cls.tag_model = cls.env["dms.tag"]
90
+ cls.attachment_model = cls.env["ir.attachment"]
91
+ cls.partner_model = cls.env["res.partner"]
174
92
  # users
175
- self.user = new_test_user(self.env, login="basic-user")
176
- self.public_user = self.env.ref("base.public_user")
177
- self.dms_user = new_test_user(
178
- self.env, login="dms-user", groups="dms.group_dms_user"
93
+ cls.user = new_test_user(cls.env, login="basic-user")
94
+ cls.public_user = cls.env.ref("base.public_user")
95
+ cls.dms_user = new_test_user(
96
+ cls.env, login="dms-user", groups="dms.group_dms_user"
179
97
  )
180
- self.dms_manager_user = new_test_user(
181
- self.env, login="dms-manager", groups="dms.group_dms_manager"
98
+ cls.dms_manager_user = new_test_user(
99
+ cls.env, login="dms-manager", groups="dms.group_dms_manager"
182
100
  )
183
- self.access_group = self.access_group_model.create(
101
+ cls.access_group = cls.access_group_model.create(
184
102
  {
185
103
  "name": "Test",
186
104
  "perm_create": True,
187
105
  "perm_write": True,
188
106
  "perm_unlink": True,
189
107
  "explicit_user_ids": [
190
- (6, 0, [self.dms_user.id, self.dms_manager_user.id])
108
+ (6, 0, [cls.dms_user.id, cls.dms_manager_user.id])
191
109
  ],
192
110
  }
193
111
  )
194
112
 
195
- def _setup_test_data(self):
196
- self.storage_model = self.storage_model.with_user(self.env.uid)
197
- self.directory_model = self.directory_model.with_user(self.env.uid)
198
- self.file_model = self.file_model.with_user(self.env.uid)
199
- self.category_model = self.category_model.with_user(self.env.uid)
200
- self.tag_model = self.tag_model.with_user(self.env.uid)
201
- self.attachment_model = self.attachment_model.with_user(self.env.uid)
202
-
203
- def _load(self, module, *args):
204
- convert_file(
205
- self.cr,
206
- "dms",
207
- get_module_resource(module, *args),
208
- {},
209
- "init",
210
- False,
211
- "test",
212
- self.registry._assertion_report,
213
- )
214
-
215
- def multi_users(self, super_user=True, admin=True, demo=True):
216
- return [
217
- [self.super_uid, super_user],
218
- [self.dms_manager_user.id, admin],
219
- [self.dms_user.id, demo],
220
- ]
221
-
222
- def content_base64(self):
113
+ @classmethod
114
+ def content_base64(cls):
223
115
  return base64.b64encode(b"\xff data")
224
116
 
225
- def create_storage(self, save_type="database"):
226
- return self.storage_model.create(
117
+ @classmethod
118
+ def create_storage(cls, save_type="database"):
119
+ return cls.storage_model.create(
227
120
  {"name": "Test Storage", "save_type": save_type}
228
121
  )
229
122
 
230
- def create_directory(self, storage=False, directory=False, model_id=False):
231
- record = Form(self.directory_model)
123
+ @classmethod
124
+ def create_directory(cls, storage=False, directory=False, model_id=False):
125
+ record = Form(cls.directory_model)
232
126
  record.name = uuid.uuid4().hex
233
127
  record.is_root_directory = True
234
128
  if model_id and storage.save_type == "attachment":
@@ -241,71 +135,78 @@ class DocumentsBaseCase(common.TransactionCase):
241
135
  else:
242
136
  record.storage_id = storage
243
137
  if not storage.inherit_access_from_parent_record:
244
- record.group_ids.add(self.access_group)
138
+ record.group_ids.add(cls.access_group)
245
139
  return record.save()
246
140
 
247
- def create_file(self, directory=False, content=False):
248
- record = Form(self.file_model)
141
+ @classmethod
142
+ def create_file(cls, directory=False, content=False):
143
+ record = Form(cls.file_model)
249
144
  record.name = uuid.uuid4().hex
250
145
  record.directory_id = directory
251
- record.content = content or self.content_base64()
146
+ record.content = content or cls.content_base64()
252
147
  return record.save()
253
148
 
254
- def create_attachment(self, name, res_model=False, res_id=False, content=False):
255
- return self.attachment_model.create(
149
+ @classmethod
150
+ def create_attachment(cls, name, res_model=False, res_id=False, content=False):
151
+ return cls.attachment_model.create(
256
152
  {
257
153
  "name": name,
258
154
  "res_model": res_model,
259
155
  "res_id": res_id,
260
- "datas": content or self.content_base64(),
156
+ "datas": content or cls.content_base64(),
261
157
  }
262
158
  )
263
159
 
264
160
 
265
161
  class StorageAttachmentBaseCase(DocumentsBaseCase):
266
- def setUp(self):
267
- super().setUp()
268
- self.storage = self.create_storage(save_type="attachment")
269
- self.storage.write(
162
+ @classmethod
163
+ def setUpClass(cls):
164
+ super().setUpClass()
165
+ cls.storage = cls.create_storage(save_type="attachment")
166
+ cls.storage.write(
270
167
  {
271
168
  "inherit_access_from_parent_record": True,
272
169
  "include_message_attachments": True,
273
- "model_ids": [(6, 0, [self.env.ref("base.model_res_partner").id])],
170
+ "model_ids": [(6, 0, [cls.env.ref("base.model_res_partner").id])],
274
171
  }
275
172
  )
276
- self.partner_model_id = self.env.ref("base.model_res_partner")
277
- self.create_directory(storage=self.storage, model_id=self.partner_model_id)
278
- self.partner = self.partner_model.create({"name": "test partner"})
279
- self.model_partner = self.env.ref("base.model_res_partner")
280
-
281
- def _create_attachment(self, name):
282
- return self.create_attachment(
173
+ cls.partner_model_id = cls.env.ref("base.model_res_partner")
174
+ cls.create_directory(storage=cls.storage, model_id=cls.partner_model_id)
175
+ cls.partner = cls.partner_model.create({"name": "test partner"})
176
+ cls.model_partner = cls.env.ref("base.model_res_partner")
177
+
178
+ @classmethod
179
+ def _create_attachment(cls, name):
180
+ return cls.create_attachment(
283
181
  name=name,
284
- res_model=self.partner_model._name,
285
- res_id=self.partner.id,
182
+ res_model=cls.partner_model._name,
183
+ res_id=cls.partner.id,
286
184
  )
287
185
 
288
- def _get_partner_directory(self):
289
- return self.directory_model.search(
186
+ @classmethod
187
+ def _get_partner_directory(cls):
188
+ return cls.directory_model.search(
290
189
  [
291
- ("storage_id", "=", self.storage.id),
292
- ("res_model", "=", self.partner_model._name),
293
- ("res_id", "=", self.partner.id),
190
+ ("storage_id", "=", cls.storage.id),
191
+ ("res_model", "=", cls.partner_model._name),
192
+ ("res_id", "=", cls.partner.id),
294
193
  ]
295
194
  )
296
195
 
297
196
 
298
197
  class StorageDatabaseBaseCase(DocumentsBaseCase):
299
- def setUp(self):
300
- super().setUp()
301
- self.storage = self.create_storage(save_type="database")
302
- self.directory = self.create_directory(storage=self.storage)
303
- self.file = self.create_file(directory=self.directory)
198
+ @classmethod
199
+ def setUpClass(cls):
200
+ super().setUpClass()
201
+ cls.storage = cls.create_storage(save_type="database")
202
+ cls.directory = cls.create_directory(storage=cls.storage)
203
+ cls.file = cls.create_file(directory=cls.directory)
304
204
 
305
205
 
306
206
  class StorageFileBaseCase(DocumentsBaseCase):
307
- def setUp(self):
308
- super().setUp()
309
- self.storage = self.create_storage(save_type="file")
310
- self.directory = self.create_directory(storage=self.storage)
311
- self.file = self.create_file(directory=self.directory)
207
+ @classmethod
208
+ def setUpClass(cls):
209
+ super().setUpClass()
210
+ cls.storage = cls.create_storage(save_type="file")
211
+ cls.directory = cls.create_directory(storage=cls.storage)
212
+ cls.file = cls.create_file(directory=cls.directory)
@@ -20,7 +20,7 @@ _logger = logging.getLogger(__name__)
20
20
  class BenchmarkTestCase(common.TransactionCase):
21
21
  @classmethod
22
22
  def setUpClass(cls):
23
- super(BenchmarkTestCase, cls).setUpClass()
23
+ super().setUpClass()
24
24
  cls._clean_existing_records()
25
25
  cls._setup_benchmark_data()
26
26
 
@@ -14,12 +14,13 @@ from .common import StorageDatabaseBaseCase
14
14
  _path = os.path.dirname(os.path.dirname(__file__))
15
15
 
16
16
 
17
- class DirectoryTestCase(StorageDatabaseBaseCase):
18
- def setUp(self):
19
- super().setUp()
20
- self.subdirectory = self.create_directory(directory=self.directory)
21
- self.file.directory_id = self.subdirectory
22
- self.new_storage = self.create_storage(save_type="database")
17
+ class DirectoryTestCaseBase(StorageDatabaseBaseCase):
18
+ @classmethod
19
+ def setUpClass(cls):
20
+ super().setUpClass()
21
+ cls.subdirectory = cls.create_directory(directory=cls.directory)
22
+ cls.file.directory_id = cls.subdirectory
23
+ cls.new_storage = cls.create_storage(save_type="database")
23
24
 
24
25
  @users("dms-manager", "dms-user")
25
26
  def test_create_directory(self):
@@ -102,6 +103,7 @@ class DirectoryTestCase(StorageDatabaseBaseCase):
102
103
  )
103
104
 
104
105
  @users("dms-manager", "dms-user")
106
+ @mute_logger("odoo.models.unlink")
105
107
  def test_unlink_root_directory(self):
106
108
  root_directory = self.create_directory(storage=self.storage)
107
109
  sub_directory = self.create_directory(directory=root_directory)
@@ -111,6 +113,7 @@ class DirectoryTestCase(StorageDatabaseBaseCase):
111
113
  self.assertFalse(sub_files.exists())
112
114
 
113
115
  @users("dms-manager", "dms-user")
116
+ @mute_logger("odoo.models.unlink")
114
117
  def test_unlink_directory(self):
115
118
  root_directory = self.create_directory(storage=self.storage)
116
119
  sub_directory = self.create_directory(directory=root_directory)
@@ -186,7 +189,7 @@ class DirectoryTestCase(StorageDatabaseBaseCase):
186
189
  self.assertTrue(self.directory_model.search_panel_select_multi_range("tag_ids"))
187
190
 
188
191
 
189
- class DirectoryMailTestCase(DirectoryTestCase):
192
+ class DirectoryMailTestCase(StorageDatabaseBaseCase):
190
193
  def setUp(self):
191
194
  super().setUp()
192
195
  self.params = self.env["ir.config_parameter"].sudo()
@@ -17,22 +17,21 @@ except ImportError:
17
17
 
18
18
 
19
19
  class FileFilestoreTestCase(StorageFileBaseCase):
20
- def setUp(self):
21
- super().setUp()
22
- self.user_a = new_test_user(
23
- self.env, login="user-a", groups="dms.group_dms_user"
24
- )
25
- self.group_a = self.access_group_model.create(
20
+ @classmethod
21
+ def setUpClass(cls):
22
+ super().setUpClass()
23
+ cls.user_a = new_test_user(cls.env, login="user-a", groups="dms.group_dms_user")
24
+ cls.group_a = cls.access_group_model.create(
26
25
  {
27
26
  "name": "Group A",
28
27
  "perm_create": True,
29
- "explicit_user_ids": [(6, 0, [self.user_a.id])],
28
+ "explicit_user_ids": [(6, 0, [cls.user_a.id])],
30
29
  }
31
30
  )
32
- self.directory_group_a = self.create_directory(storage=self.storage)
33
- self.directory_group_a.group_ids = [(4, self.group_a.id)]
34
- self.sub_directory_x = self.create_directory(directory=self.directory_group_a)
35
- self.file2 = self.create_file(directory=self.sub_directory_x)
31
+ cls.directory_group_a = cls.create_directory(storage=cls.storage)
32
+ cls.directory_group_a.group_ids = [(4, cls.group_a.id)]
33
+ cls.sub_directory_x = cls.create_directory(directory=cls.directory_group_a)
34
+ cls.file2 = cls.create_file(directory=cls.sub_directory_x)
36
35
 
37
36
  @users("user-a")
38
37
  def test_file_access(self):
@@ -5,17 +5,19 @@
5
5
 
6
6
  from odoo.exceptions import UserError
7
7
  from odoo.tests.common import users
8
+ from odoo.tools import mute_logger
8
9
 
9
10
  from .common import StorageDatabaseBaseCase
10
11
 
11
12
 
12
13
  class FileDatabaseTestCase(StorageDatabaseBaseCase):
13
- def setUp(self):
14
- super().setUp()
15
- self.file_demo_01 = self.env.ref("dms.file_01_demo")
16
- self.directory2 = self.create_directory(storage=self.storage)
17
- self.new_storage2 = self.create_storage(save_type="database")
18
- self.directory3 = self.create_directory(storage=self.new_storage2)
14
+ @classmethod
15
+ def setUpClass(cls):
16
+ super().setUpClass()
17
+ cls.file_demo_01 = cls.env.ref("dms.file_01_demo")
18
+ cls.directory2 = cls.create_directory(storage=cls.storage)
19
+ cls.new_storage2 = cls.create_storage(save_type="database")
20
+ cls.directory3 = cls.create_directory(storage=cls.new_storage2)
19
21
 
20
22
  @users("dms-manager", "dms-user")
21
23
  def test_create_file(self):
@@ -66,6 +68,7 @@ class FileDatabaseTestCase(StorageDatabaseBaseCase):
66
68
  )
67
69
 
68
70
  @users("dms-manager", "dms-user")
71
+ @mute_logger("odoo.models.unlink")
69
72
  def test_unlink_file(self):
70
73
  file = self.create_file(directory=self.directory)
71
74
  file.unlink()
@@ -9,14 +9,15 @@ from .common import StorageAttachmentBaseCase
9
9
 
10
10
  @odoo.tests.tagged("post_install", "-at_install")
11
11
  class TestDmsPortal(odoo.tests.HttpCase, StorageAttachmentBaseCase):
12
- def setUp(self):
13
- super().setUp()
14
- self.partner = self.env.ref("base.partner_demo_portal")
15
- self.portal_user = self.partner.user_ids
16
- self.portal_user.login = "portal"
17
- self._create_attachment("test.txt")
18
- self.directory_partner = self._get_partner_directory()
19
- self.file_partner = self.directory_partner.file_ids[0]
12
+ @classmethod
13
+ def setUpClass(cls):
14
+ super().setUpClass()
15
+ cls.partner = cls.env.ref("base.partner_demo_portal")
16
+ cls.portal_user = cls.partner.user_ids
17
+ cls.portal_user.login = "portal"
18
+ cls._create_attachment("test.txt")
19
+ cls.directory_partner = cls._get_partner_directory()
20
+ cls.file_partner = cls.directory_partner.file_ids[0]
20
21
 
21
22
  def test_access_portal(self):
22
23
  self.authenticate("portal", "portal")
@@ -3,12 +3,14 @@
3
3
  # License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl).
4
4
 
5
5
  from odoo.tests.common import users
6
+ from odoo.tools import mute_logger
6
7
 
7
8
  from .common import StorageAttachmentBaseCase
8
9
 
9
10
 
10
11
  class StorageAttachmentTestCase(StorageAttachmentBaseCase):
11
12
  @users("dms-manager")
13
+ @mute_logger("odoo.models.unlink")
12
14
  def test_storage_attachment(self):
13
15
  self._create_attachment("demo.txt")
14
16
  self.assertTrue(
@@ -4,6 +4,7 @@
4
4
  # License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl).
5
5
 
6
6
  from odoo.tests.common import users
7
+ from odoo.tools import mute_logger
7
8
 
8
9
  from .common import StorageDatabaseBaseCase
9
10
 
@@ -22,6 +23,7 @@ class StorageDatabaseTestCase(StorageDatabaseBaseCase):
22
23
  self.assertTrue(self.storage.count_storage_files)
23
24
 
24
25
  @users("dms-manager")
26
+ @mute_logger("odoo.models.unlink")
25
27
  def test_file_migrate(self):
26
28
  root_directory = self.storage.root_directory_ids.filtered(
27
29
  lambda x: x.is_root_directory
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: odoo-addon-dms
3
- Version: 16.0.1.2.0
3
+ Version: 16.0.1.2.1.2
4
4
  Summary: Document Management System for Odoo
5
5
  Home-page: https://github.com/OCA/dms
6
6
  Author: MuK IT, Tecnativa, Odoo Community Association (OCA)
@@ -23,7 +23,7 @@ Document Management System
23
23
  !! This file is generated by oca-gen-addon-readme !!
24
24
  !! changes will be overwritten. !!
25
25
  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
26
- !! source digest: sha256:8c746a816bfdc7c0e05b514cf7d97e881d006c9b3e51a4a5c2cbcb45c93fb523
26
+ !! source digest: sha256:c800b9b5b45ad58a5b998b6b7b6960bb825cecec016f1c51853f1ef1fea9a229
27
27
  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
28
28
 
29
29
  .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
@@ -1,6 +1,6 @@
1
- odoo/addons/dms/README.rst,sha256=GEJJwwGW1Ib_bqZSkh8Qu_c4_wCQCHVdG2rF6CcceEA,7748
1
+ odoo/addons/dms/README.rst,sha256=zZ4sWKYucaibYVkDNfgMveOKblV5bKXRLh7_JXTciHc,7748
2
2
  odoo/addons/dms/__init__.py,sha256=jQ-fltIs1ohXt7udDkkJwzh7ckauQW2rbmv1Wtg3SjQ,47
3
- odoo/addons/dms/__manifest__.py,sha256=4vZvpOihDjVXxA5oEQI4eIdZIJ3-lxx_pFUDZBqwcNg,1767
3
+ odoo/addons/dms/__manifest__.py,sha256=KHtGjnLoxh1XND9N78eD81F-KTh_oGJMjM2htauqdC8,1767
4
4
  odoo/addons/dms/actions/file.xml,sha256=NlRIQoCbbDSaRmsumJP9dcrNtYpQji74hwhfi5TillE,524
5
5
  odoo/addons/dms/controllers/__init__.py,sha256=akfNDwFGryweTYowOA3DbbP0zvLmQtCdihtGhYvsIPQ,40
6
6
  odoo/addons/dms/controllers/main.py,sha256=9TjOKDeNerPNN4CKL0TWQiqOpNug8pqG6F5uBJO3bkM,1960
@@ -12,15 +12,15 @@ odoo/addons/dms/demo/file.xml,sha256=JaIGjObJXvz1Wvj3AwwTWMSYOxaHLxRS7KLcvBBCcg0
12
12
  odoo/addons/dms/demo/res_users.xml,sha256=edRmAsHsaQYhHiJWdFni5BGM3-0Vskw3A1grXCHJhWc,323
13
13
  odoo/addons/dms/demo/storage.xml,sha256=-FaGk-HRVGjqsrotq7rfsObWFF4E6FiIGjVWPYFrWiI,751
14
14
  odoo/addons/dms/demo/tag.xml,sha256=QfLyWfBB2Cpa6mMWmuUfQJ-l3Ofj8QpFglVmTFgIsGs,2408
15
- odoo/addons/dms/i18n/de.po,sha256=QyXaBrZQZ4LGLAJu2HaalkIKbrMZDsoaZEJdcD3GtAE,80354
16
- odoo/addons/dms/i18n/dms.pot,sha256=-Z_3oVfn-0xny7deDPmT57PzHoBTekqwQaIoiSnAzu8,68518
17
- odoo/addons/dms/i18n/es.po,sha256=BOZ9tZom5orzLABVE7ojhb5uIY9SP2vvIHfNemRDY5Q,83150
18
- odoo/addons/dms/i18n/fr.po,sha256=VNsLwX_ypAZ7v1YdblhPxdC3GkzEmiWzeFJOlDQfI1k,82020
19
- odoo/addons/dms/i18n/he_IL.po,sha256=Pp3T93rf6vJoeQs_VXtZ2hu8gCDdN0zHoCSDnAVTjlo,79035
20
- odoo/addons/dms/i18n/it.po,sha256=La-lShYZTOcq2DyfkkQ24Kti3XSNz9rZkIXhIEhpRvQ,80017
21
- odoo/addons/dms/i18n/nl.po,sha256=RL750itWVQEkeouxVYWu4zK1FLllMK6fujpdG1wE2Fo,68675
22
- odoo/addons/dms/i18n/pt_BR.po,sha256=F4WHXwU06TW1Gw5VZUgyEelzKQezgKQbDVbDmxygMLk,79814
23
- odoo/addons/dms/i18n/ru.po,sha256=181fU58Hk17Z3_bqBQ5Byeu4GTV_KP0GsQyqpQOHC4s,68505
15
+ odoo/addons/dms/i18n/de.po,sha256=esnxXJRQPQUoTmUh9b6PKMLZglG5R_wYIXVykgm-_6E,80293
16
+ odoo/addons/dms/i18n/dms.pot,sha256=OkZtpZ_51G0mzwN7jJhizrE9iEAJZ7a7j9oyk7u91Wc,68389
17
+ odoo/addons/dms/i18n/es.po,sha256=_ZlAwIuAvQDyd2DKB0Ner8jtBNYaxjkN0qKTGk0e3HE,83089
18
+ odoo/addons/dms/i18n/fr.po,sha256=Edh5ii8JfZCnig6SAHdzt1WPMq3VxX9HVKnJtlpe69E,81959
19
+ odoo/addons/dms/i18n/he_IL.po,sha256=a4vddug7dTHnnFpCAMeDkQopGypm8K5llOFa8_4lusc,78974
20
+ odoo/addons/dms/i18n/it.po,sha256=1gQw4uUGFTkYmQTsFowHuIQwTIq6Rhn0Zj4q_2BOUB0,79956
21
+ odoo/addons/dms/i18n/nl.po,sha256=bN1g3-rlctK9vARzgEmn2BfI7jJIS1VUi9yvvhRJkhs,68546
22
+ odoo/addons/dms/i18n/pt_BR.po,sha256=GnlDlkH1r9RxcpowN0NZAxhOXha7qqYNSDXj5qGWhHw,79753
23
+ odoo/addons/dms/i18n/ru.po,sha256=M25ee78XSL1uh227031c2FjhM5z6BXtVuPGDM3NDWIw,68376
24
24
  odoo/addons/dms/models/__init__.py,sha256=La9Zyaj_PZKuwp73-PAlyFwgZlK8skeYxl5LovFjTm8,371
25
25
  odoo/addons/dms/models/abstract_dms_mixin.py,sha256=n4-4hkz1qRYQfPcfzMEfCSfi5yzdtNF_MRysvzTn3-w,2086
26
26
  odoo/addons/dms/models/access_groups.py,sha256=ldhs1cc_wlG1G4zfg8ohPwh_mFO1C5wEq6Gza9PXDOU,5504
@@ -47,7 +47,7 @@ odoo/addons/dms/security/ir.model.access.csv,sha256=KRMPupL91xxWNWoOnE1nGHFIhLC1
47
47
  odoo/addons/dms/security/security.xml,sha256=plasjSwS2w5GK07BvW9obXNOpPgeBLKeEkUJ6Wpc6nA,9085
48
48
  odoo/addons/dms/static/description/icon.png,sha256=8xwcyAfhzMOu_xBinu4KwZsvmqUj6X5aF2LUQvvwdc4,7197
49
49
  odoo/addons/dms/static/description/icon.svg,sha256=cICSzGzl0Z00q7m0yhriujt2ip5_v4ymxAMTGzolxsc,8025
50
- odoo/addons/dms/static/description/index.html,sha256=zpR2-mAvlzt4yRPrB8loX8Z9yk2f6dUiLbdqXtxDc08,20358
50
+ odoo/addons/dms/static/description/index.html,sha256=uKUbO-Q4mq8sUibjNmkvEHxpS1i6ZP0P7eyExPJpEbI,20358
51
51
  odoo/addons/dms/static/icons/file_ai.svg,sha256=HeCXVJivVnn6jjj__5WJiLfZv4mrmAamPFek0CwozCc,3343
52
52
  odoo/addons/dms/static/icons/file_aj.svg,sha256=mUbfvaV5_m3zJ3zZKldBbaFz4AZNQNecSZ1W_JCZeE4,3063
53
53
  odoo/addons/dms/static/icons/file_avi.svg,sha256=Pf78IrO6gGsg3aUVguOu6osDwLYz5ceIOLMbTRpya5s,1862
@@ -176,14 +176,14 @@ odoo/addons/dms/test/text.txt,sha256=XvJmAQwagcQTPzVGQYJ_ObMwcSozSp1hWfKsnPXz64w
176
176
  odoo/addons/dms/test/vector.svg,sha256=7xzW2Y2jLqNDTNKQIiCjZr_fj2p39P04PMHJZVZkuJw,397923
177
177
  odoo/addons/dms/test/video.mp4,sha256=v4nhmkmDkUulGtzewA92QPoCGL46FW_1hRrmQCAjPvg,11302109
178
178
  odoo/addons/dms/tests/__init__.py,sha256=eIbM1FQ81v8gWbUqsWhLnllFxuBeCnU7gw9Swb-mSHU,215
179
- odoo/addons/dms/tests/common.py,sha256=k0B4yM2BbWWWDp-4SvN-ukgH9HqPPJvufI6xs1VI3qU,11701
180
- odoo/addons/dms/tests/test_benchmark.py,sha256=qvJH59IbMLTCjZkkbrrfjz2DlNnBp6tKobJDx2aMcw4,13633
181
- odoo/addons/dms/tests/test_directory.py,sha256=IJL5y3rogu5R4CZG8rInVySbhZSw0Mt3mk9Y3eEXxiE,8210
182
- odoo/addons/dms/tests/test_file.py,sha256=BRqmKWv8U-WvSAu1ugnPbyHTotWzf9QgDo8FzJQmcHY,3594
183
- odoo/addons/dms/tests/test_file_database.py,sha256=6diuKPcrpHjqcdzVEhxDDcnE5BczgGaYw6YK7vLmS2k,4625
184
- odoo/addons/dms/tests/test_portal.py,sha256=VLI_Rf1VMt7aLXRw6t1BVW4zvE5QY69Vx1S68Gc7r-0,3334
185
- odoo/addons/dms/tests/test_storage_attachment.py,sha256=bx1DpA4RnNLkwksVpAUed1tQJ2rewC87w5gPtKlRW5M,5163
186
- odoo/addons/dms/tests/test_storage_database.py,sha256=zJfS2XpdJj6CK2LixkgRGCzdzAMU5pUhjx2t9-kEAq4,3869
179
+ odoo/addons/dms/tests/common.py,sha256=0n_Az-3k1KpQLs536mlEDpcP6D8vfH_GbpsjTAKChH8,7614
180
+ odoo/addons/dms/tests/test_benchmark.py,sha256=iaEPKRTlQsvcrUpPhX3RWDuwDgddBeF_-xY4uA0LQyA,13611
181
+ odoo/addons/dms/tests/test_directory.py,sha256=qVti7SPiLEGl38LHcZnNUshlguP3uDMPGyICfBRO6RE,8317
182
+ odoo/addons/dms/tests/test_file.py,sha256=x0mbzko501cPgLCRT9ZhXpfDC0H738AeDAXGPZZ-me8,3582
183
+ odoo/addons/dms/tests/test_file_database.py,sha256=et3PD45scSfmQhfR-bGgEglLFkLxKpkSZJPQ4kgdJsM,4715
184
+ odoo/addons/dms/tests/test_portal.py,sha256=cnoAyxeaESErn4FkTeFzsH4FTr-k0HKDv0CZ76WKjLc,3350
185
+ odoo/addons/dms/tests/test_storage_attachment.py,sha256=vGU0isqnvMVMVgb33rdUANdlX-7U_Awh-lF05S_eks0,5237
186
+ odoo/addons/dms/tests/test_storage_database.py,sha256=XN-Se2BgLxgFx_mWqmZ6mClgRoc9odSrD6EEIqLUSMs,3943
187
187
  odoo/addons/dms/tests/data/dms.category.csv,sha256=VBWa6-PEA6__yv_D6CXUZ7xU-8AAxD7z8jWo4sKb8S0,2631
188
188
  odoo/addons/dms/tests/data/dms.directory.csv,sha256=Klh3tEdMt_BB9hWgc_FRUsv_q4Uy-asUut0EuTmnLLU,53514
189
189
  odoo/addons/dms/tests/data/dms.file.csv,sha256=CwUo4NgKikfn0JeTpRVYWtZhv8EunqEYO1ZHleviR64,308815
@@ -202,7 +202,7 @@ odoo/addons/dms/views/menu.xml,sha256=YJxLfNpa7HqM5rj09kXGUeernJp9sSTA_mDICKvIs9
202
202
  odoo/addons/dms/views/res_config_settings.xml,sha256=0ypGd5018Lh7ItlOo8Ks5-4RuTImAWocvgTFtYP-RK4,5214
203
203
  odoo/addons/dms/views/storage.xml,sha256=8WL4JZYzq1ngI6S_X7xSRuMSOykwk1br22Df0vm5W2Y,10448
204
204
  odoo/addons/dms/views/tag.xml,sha256=A1-WfRlN5TumsEdIEUwx7G2RpX7iHV37ztKxGABLvi0,7186
205
- odoo_addon_dms-16.0.1.2.0.dist-info/METADATA,sha256=h0rvZfHvhfB7fmODW-NUJIE_WLuUMtdNzuuGrxi5z7Y,8289
206
- odoo_addon_dms-16.0.1.2.0.dist-info/WHEEL,sha256=oiQVh_5PnQM0E3gPdiz09WCNmwiHDMaGer_elqB3coM,92
207
- odoo_addon_dms-16.0.1.2.0.dist-info/top_level.txt,sha256=qBj40grFkGOfDZ2WDSw3y1RnDlgG0u8rP8pvGNdbz4w,5
208
- odoo_addon_dms-16.0.1.2.0.dist-info/RECORD,,
205
+ odoo_addon_dms-16.0.1.2.1.2.dist-info/METADATA,sha256=-UDoCAG2RYiVsbT5zEhyn302TodBvESvd8tshbKj0yM,8291
206
+ odoo_addon_dms-16.0.1.2.1.2.dist-info/WHEEL,sha256=oiQVh_5PnQM0E3gPdiz09WCNmwiHDMaGer_elqB3coM,92
207
+ odoo_addon_dms-16.0.1.2.1.2.dist-info/top_level.txt,sha256=qBj40grFkGOfDZ2WDSw3y1RnDlgG0u8rP8pvGNdbz4w,5
208
+ odoo_addon_dms-16.0.1.2.1.2.dist-info/RECORD,,