odoo-addon-dms 16.0.1.8.3.2__py3-none-any.whl → 16.0.1.8.5__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.
- odoo/addons/dms/README.rst +1 -1
- odoo/addons/dms/__manifest__.py +1 -1
- odoo/addons/dms/models/dms_file.py +8 -0
- odoo/addons/dms/models/ir_attachment.py +8 -1
- odoo/addons/dms/static/description/index.html +1 -1
- odoo/addons/dms/static/src/js/views/dms_file_upload.esm.js +6 -4
- odoo/addons/dms/tests/test_storage_attachment.py +23 -0
- odoo/addons/dms/views/dms_file.xml +3 -3
- {odoo_addon_dms-16.0.1.8.3.2.dist-info → odoo_addon_dms-16.0.1.8.5.dist-info}/METADATA +2 -2
- {odoo_addon_dms-16.0.1.8.3.2.dist-info → odoo_addon_dms-16.0.1.8.5.dist-info}/RECORD +12 -12
- {odoo_addon_dms-16.0.1.8.3.2.dist-info → odoo_addon_dms-16.0.1.8.5.dist-info}/WHEEL +0 -0
- {odoo_addon_dms-16.0.1.8.3.2.dist-info → odoo_addon_dms-16.0.1.8.5.dist-info}/top_level.txt +0 -0
odoo/addons/dms/README.rst
CHANGED
@@ -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:
|
10
|
+
!! source digest: sha256:a679dc80b0bc5020e1bcc24d4777a8b73a2223c966ba9505f304988e56349b6f
|
11
11
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
12
12
|
|
13
13
|
.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
|
odoo/addons/dms/__manifest__.py
CHANGED
@@ -202,6 +202,7 @@ class File(models.Model):
|
|
202
202
|
prefetch=False,
|
203
203
|
invisible=True,
|
204
204
|
ondelete="cascade",
|
205
|
+
index=True,
|
205
206
|
)
|
206
207
|
|
207
208
|
def get_human_size(self):
|
@@ -619,6 +620,13 @@ class File(models.Model):
|
|
619
620
|
new_vals_list.append(vals)
|
620
621
|
return super(File, self).create(new_vals_list)
|
621
622
|
|
623
|
+
def unlink(self):
|
624
|
+
attachments = self.mapped("attachment_id")
|
625
|
+
res = super().unlink()
|
626
|
+
if not self.env.context.get("dms_file"):
|
627
|
+
attachments.with_context(dms_file=True).unlink()
|
628
|
+
return res
|
629
|
+
|
622
630
|
# ----------------------------------------------------------
|
623
631
|
# Locking fields and functions
|
624
632
|
# ----------------------------------------------------------
|
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright 2021 Tecnativa - Víctor Martínez
|
1
|
+
# Copyright 2021-2025 Tecnativa - Víctor Martínez
|
2
2
|
# License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl).
|
3
3
|
from odoo import api, models
|
4
4
|
from odoo.tools import ormcache
|
@@ -100,3 +100,10 @@ class IrAttachment(models.Model):
|
|
100
100
|
):
|
101
101
|
self._dms_operations()
|
102
102
|
return res
|
103
|
+
|
104
|
+
def unlink(self):
|
105
|
+
if not self.env.context.get("dms_file"):
|
106
|
+
self.env["dms.file"].search(
|
107
|
+
[("attachment_id", "in", self.ids)]
|
108
|
+
).with_context(dms_file=True).unlink()
|
109
|
+
return super().unlink()
|
@@ -367,7 +367,7 @@ ul.auto-toc {
|
|
367
367
|
!! This file is generated by oca-gen-addon-readme !!
|
368
368
|
!! changes will be overwritten. !!
|
369
369
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
370
|
-
!! source digest: sha256:
|
370
|
+
!! source digest: sha256:a679dc80b0bc5020e1bcc24d4777a8b73a2223c966ba9505f304988e56349b6f
|
371
371
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
|
372
372
|
<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&target_branch=16.0"><img alt="Try me on Runboat" src="https://img.shields.io/badge/runboat-Try%20me-875A7B.png" /></a></p>
|
373
373
|
<p>DMS is a module for creating, managing and viewing document files directly
|
@@ -102,16 +102,18 @@ export const FileUpload = {
|
|
102
102
|
async onUpload(attachments) {
|
103
103
|
const self = this;
|
104
104
|
const attachmentIds = attachments.map((a) => a.id);
|
105
|
-
const ctx =
|
105
|
+
const ctx = Object.assign(
|
106
|
+
{},
|
107
|
+
this.actionService.currentController.props.context,
|
108
|
+
this.props.context
|
109
|
+
);
|
106
110
|
const controllerID = this.actionService.currentController.jsId;
|
107
111
|
|
108
112
|
if (!attachmentIds.length) {
|
109
113
|
this.notification.add(_t("An error occurred during the upload"));
|
110
114
|
return;
|
111
115
|
}
|
112
|
-
|
113
116
|
// Search the correct directory_id value according to the domain
|
114
|
-
ctx.default_directory_id = false;
|
115
117
|
if (this.props.domain) {
|
116
118
|
for (const domain_item of this.props.domain) {
|
117
119
|
if (domain_item.length === 3) {
|
@@ -122,7 +124,7 @@ export const FileUpload = {
|
|
122
124
|
}
|
123
125
|
}
|
124
126
|
|
125
|
-
if (ctx.default_directory_id
|
127
|
+
if (!ctx.default_directory_id) {
|
126
128
|
self.actionService.restore(controllerID);
|
127
129
|
return self.notification.add(
|
128
130
|
this.env._t("You must select a directory first"),
|
@@ -2,6 +2,7 @@
|
|
2
2
|
# Copyright 2021 Tecnativa - João Marques
|
3
3
|
# License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl).
|
4
4
|
|
5
|
+
from odoo.exceptions import AccessError
|
5
6
|
from odoo.tests.common import users
|
6
7
|
from odoo.tools import mute_logger
|
7
8
|
|
@@ -42,6 +43,26 @@ class StorageAttachmentTestCase(StorageAttachmentBaseCase):
|
|
42
43
|
directories = self.env["dms.directory"].search([])
|
43
44
|
self.assertNotIn(directory.id, directories.ids)
|
44
45
|
|
46
|
+
@mute_logger("odoo.models.unlink")
|
47
|
+
def test_storage_attachment_unlink_lock_file(self):
|
48
|
+
group_partner_manager = self.env.ref("base.group_partner_manager")
|
49
|
+
self.dms_manager_user.write({"groups_id": [(4, group_partner_manager.id)]})
|
50
|
+
self.dms_user.write({"groups_id": [(4, group_partner_manager.id)]})
|
51
|
+
attachment = self._create_attachment("demo.txt")
|
52
|
+
attachment = attachment.with_user(self.dms_manager_user)
|
53
|
+
file = self.storage.storage_file_ids.filtered(lambda x: x.name == "demo.txt")
|
54
|
+
file.with_user(self.dms_user).lock()
|
55
|
+
self.assertTrue(file.is_locked)
|
56
|
+
self.assertFalse(file.is_lock_editor)
|
57
|
+
with self.assertRaises(AccessError):
|
58
|
+
attachment.unlink()
|
59
|
+
self.assertTrue(file.exists())
|
60
|
+
file.with_user(self.dms_user).unlock()
|
61
|
+
self.assertFalse(file.is_locked)
|
62
|
+
file.invalidate_recordset()
|
63
|
+
attachment.unlink()
|
64
|
+
self.assertFalse(file.exists())
|
65
|
+
|
45
66
|
@users("dms-manager")
|
46
67
|
def test_storage_attachment_misc(self):
|
47
68
|
attachment = self._create_attachment("demo.txt")
|
@@ -67,6 +88,8 @@ class StorageAttachmentTestCase(StorageAttachmentBaseCase):
|
|
67
88
|
self.assertEqual(file_01.storage_id.save_type, "attachment")
|
68
89
|
self.assertEqual(file_01.save_type, "database")
|
69
90
|
self.assertEqual(self.storage.count_storage_files, 2)
|
91
|
+
dms_file.unlink()
|
92
|
+
self.assertFalse(attachment.exists())
|
70
93
|
|
71
94
|
@users("dms-manager")
|
72
95
|
def test_storage_attachment_directory_record_ref_access_dms_manager(self):
|
@@ -152,7 +152,7 @@
|
|
152
152
|
Unlock
|
153
153
|
</a>
|
154
154
|
<a
|
155
|
-
t-if="record.permission_write.raw_value and record.active.raw_value"
|
155
|
+
t-if="record.permission_write.raw_value and record.active.raw_value and (!record.is_locked.raw_value or (record.is_locked.raw_value and record.is_lock_editor.raw_value))"
|
156
156
|
role="menuitem"
|
157
157
|
name="toggle_active"
|
158
158
|
type="object"
|
@@ -162,7 +162,7 @@
|
|
162
162
|
Archive
|
163
163
|
</a>
|
164
164
|
<a
|
165
|
-
t-if="record.permission_write.raw_value and !record.active.raw_value"
|
165
|
+
t-if="record.permission_write.raw_value and !record.active.raw_value and (!record.is_locked.raw_value or (record.is_locked.raw_value and record.is_lock_editor.raw_value))"
|
166
166
|
role="menuitem"
|
167
167
|
name="toggle_active"
|
168
168
|
type="object"
|
@@ -204,7 +204,7 @@
|
|
204
204
|
Edit
|
205
205
|
</a>
|
206
206
|
<a
|
207
|
-
t-if="record.permission_unlink.raw_value"
|
207
|
+
t-if="record.permission_unlink.raw_value and (!record.is_locked.raw_value or (record.is_locked.raw_value and record.is_lock_editor.raw_value))"
|
208
208
|
role="menuitem"
|
209
209
|
type="delete"
|
210
210
|
class="dropdown-item"
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: odoo-addon-dms
|
3
|
-
Version: 16.0.1.8.
|
3
|
+
Version: 16.0.1.8.5
|
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)
|
@@ -22,7 +22,7 @@ Document Management System
|
|
22
22
|
!! This file is generated by oca-gen-addon-readme !!
|
23
23
|
!! changes will be overwritten. !!
|
24
24
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
25
|
-
!! source digest: sha256:
|
25
|
+
!! source digest: sha256:a679dc80b0bc5020e1bcc24d4777a8b73a2223c966ba9505f304988e56349b6f
|
26
26
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
27
27
|
|
28
28
|
.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
|
@@ -1,6 +1,6 @@
|
|
1
|
-
odoo/addons/dms/README.rst,sha256=
|
1
|
+
odoo/addons/dms/README.rst,sha256=XDvnBEY9qxxRkZV6YHUuP7j_9pXlKn5VV3u5-U49xVI,7893
|
2
2
|
odoo/addons/dms/__init__.py,sha256=dnUeA_K1torbiMNF3tt2dtECdk-FkWm01DByr9MBMIA,69
|
3
|
-
odoo/addons/dms/__manifest__.py,sha256=
|
3
|
+
odoo/addons/dms/__manifest__.py,sha256=BxPmRh4FG4XMvDD8aTZRZXdbdfja0KbtWF0rS2fx-Yg,1863
|
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
|
@@ -31,9 +31,9 @@ odoo/addons/dms/models/access_groups.py,sha256=ldhs1cc_wlG1G4zfg8ohPwh_mFO1C5wEq
|
|
31
31
|
odoo/addons/dms/models/base.py,sha256=t7uhbkDE9L4UdvYJAwPTlX5ff2Y9S01urlFfC3KlLxM,893
|
32
32
|
odoo/addons/dms/models/category.py,sha256=MB36VPKw3DItR5ZYM7CCROO3LDDTpTx87clML966GAs,4132
|
33
33
|
odoo/addons/dms/models/directory.py,sha256=agc1vxXW13w_q18W4Y9arE2zg1b96r-9jBPzyafQWgQ,28826
|
34
|
-
odoo/addons/dms/models/dms_file.py,sha256=
|
34
|
+
odoo/addons/dms/models/dms_file.py,sha256=mUqQeR3ElEEBQ9qL988m3WRQAxf-pBmk6XT19DQl8w8,25822
|
35
35
|
odoo/addons/dms/models/dms_security_mixin.py,sha256=DfbwMbV8itLQhZp1I9_uORHG91KeXY9rlhddz0DxZGU,9898
|
36
|
-
odoo/addons/dms/models/ir_attachment.py,sha256=
|
36
|
+
odoo/addons/dms/models/ir_attachment.py,sha256=BJgSKzctRFJxhScmEl7BjSrKBLOyevzGHcfKFdYSIH0,4241
|
37
37
|
odoo/addons/dms/models/mail_thread.py,sha256=ccAn2MHONCncjsJewBrLqMVBl6tmn2kezyJVJq2utVk,583
|
38
38
|
odoo/addons/dms/models/mixins_thumbnail.py,sha256=DCb8wrWTjdQp2ev9SfYHe9LLZuC18c5jSftm2Er9Aho,1466
|
39
39
|
odoo/addons/dms/models/res_company.py,sha256=dyQUHq9H_idTcytaV9QgO1QFWsHBBj_xW2mQHedqY6E,3370
|
@@ -51,7 +51,7 @@ odoo/addons/dms/security/ir.model.access.csv,sha256=_SuEwHD3SOXbpLalbr5FqGjPvwtD
|
|
51
51
|
odoo/addons/dms/security/security.xml,sha256=plasjSwS2w5GK07BvW9obXNOpPgeBLKeEkUJ6Wpc6nA,9085
|
52
52
|
odoo/addons/dms/static/description/icon.png,sha256=8xwcyAfhzMOu_xBinu4KwZsvmqUj6X5aF2LUQvvwdc4,7197
|
53
53
|
odoo/addons/dms/static/description/icon.svg,sha256=cICSzGzl0Z00q7m0yhriujt2ip5_v4ymxAMTGzolxsc,8025
|
54
|
-
odoo/addons/dms/static/description/index.html,sha256=
|
54
|
+
odoo/addons/dms/static/description/index.html,sha256=kkqgIjByd6zWReP3fQr5j0YVs-ZZ6LnBAUq_dgnl7p4,20593
|
55
55
|
odoo/addons/dms/static/icons/file_ai.svg,sha256=HeCXVJivVnn6jjj__5WJiLfZv4mrmAamPFek0CwozCc,3343
|
56
56
|
odoo/addons/dms/static/icons/file_aj.svg,sha256=mUbfvaV5_m3zJ3zZKldBbaFz4AZNQNecSZ1W_JCZeE4,3063
|
57
57
|
odoo/addons/dms/static/icons/file_avi.svg,sha256=Pf78IrO6gGsg3aUVguOu6osDwLYz5ceIOLMbTRpya5s,1862
|
@@ -119,7 +119,7 @@ odoo/addons/dms/static/src/js/components/path/path.esm.js,sha256=47DEQpj8HBSa-_T
|
|
119
119
|
odoo/addons/dms/static/src/js/fields/path.js,sha256=YZohwYuwaMjII2KBKwjdAutujsTKbBmwdYQlcOUfKtw,3275
|
120
120
|
odoo/addons/dms/static/src/js/fields/path_owl.esm.js,sha256=c_MKVLkX5-_IPzSh-0x-xrI-6QKrn45KyLYdleNsRPQ,1001
|
121
121
|
odoo/addons/dms/static/src/js/fields/path_owl.xml,sha256=qvLsXEr9hG10dN15fbgTjbs_Fptdx9eni_ZqwRUsyWU,944
|
122
|
-
odoo/addons/dms/static/src/js/views/dms_file_upload.esm.js,sha256=
|
122
|
+
odoo/addons/dms/static/src/js/views/dms_file_upload.esm.js,sha256=zDRA-WzMj9e_V8IxTI1OBUH-0mU0Gxf0KpybMD7SdRA,4935
|
123
123
|
odoo/addons/dms/static/src/js/views/file_kanban_controller.esm.js,sha256=sWB9Al_qt74lk8WKht5d2WJnKda7kqkg6-iIQQtyk6Y,517
|
124
124
|
odoo/addons/dms/static/src/js/views/file_kanban_controller.xml,sha256=WZ2yhLRlIJGSJrwZajb_7ktCSglA5DMATLe5yhZdsr0,778
|
125
125
|
odoo/addons/dms/static/src/js/views/file_kanban_record.esm.js,sha256=RCWo1IBSxsv99rznib-I_UuYc9QNk1a6IxZpY-8VwuE,2086
|
@@ -186,7 +186,7 @@ odoo/addons/dms/tests/test_directory.py,sha256=qVti7SPiLEGl38LHcZnNUshlguP3uDMPG
|
|
186
186
|
odoo/addons/dms/tests/test_file.py,sha256=U8-RNRPQipIst6Js36Tz1xPHFziRfwFlRSX_6a9D4Rs,4651
|
187
187
|
odoo/addons/dms/tests/test_file_database.py,sha256=et3PD45scSfmQhfR-bGgEglLFkLxKpkSZJPQ4kgdJsM,4715
|
188
188
|
odoo/addons/dms/tests/test_portal.py,sha256=cnoAyxeaESErn4FkTeFzsH4FTr-k0HKDv0CZ76WKjLc,3350
|
189
|
-
odoo/addons/dms/tests/test_storage_attachment.py,sha256=
|
189
|
+
odoo/addons/dms/tests/test_storage_attachment.py,sha256=hdz8xrx9GJxfPHRl9OXxf6Q6Zf377IBRrOlz7G8hLtQ,6937
|
190
190
|
odoo/addons/dms/tests/test_storage_database.py,sha256=XN-Se2BgLxgFx_mWqmZ6mClgRoc9odSrD6EEIqLUSMs,3943
|
191
191
|
odoo/addons/dms/tests/data/dms.category.csv,sha256=VBWa6-PEA6__yv_D6CXUZ7xU-8AAxD7z8jWo4sKb8S0,2631
|
192
192
|
odoo/addons/dms/tests/data/dms.directory.csv,sha256=Klh3tEdMt_BB9hWgc_FRUsv_q4Uy-asUut0EuTmnLLU,53514
|
@@ -200,7 +200,7 @@ odoo/addons/dms/tools/file.py,sha256=NYgdhsu1qdcLfMInmzhMs-PzDKmFm3wuo9kx610mSJs
|
|
200
200
|
odoo/addons/dms/views/category.xml,sha256=fjes6BqnZpcB8IJhZliZP4C7HqjJHlRVqRo4mvlEt38,4434
|
201
201
|
odoo/addons/dms/views/directory.xml,sha256=rEv4ykJ4aBj3Tv8lLfs3rIHFw1fMENU0uNxhxnhqpqY,35526
|
202
202
|
odoo/addons/dms/views/dms_access_groups_views.xml,sha256=vVeq7iGl7YfT1GKVGsulwOdPc6z3xS51hsRXfR2hR7w,5427
|
203
|
-
odoo/addons/dms/views/dms_file.xml,sha256=
|
203
|
+
odoo/addons/dms/views/dms_file.xml,sha256=dvrLT1SeGr-cTGFiDC_47Dk2zhPmJiDMCY4uq4UhMWw,32132
|
204
204
|
odoo/addons/dms/views/dms_portal_templates.xml,sha256=piujeenSeFNfeQzME_wphQ16Heg2AFmWtBnLO_yv3Z0,5638
|
205
205
|
odoo/addons/dms/views/menu.xml,sha256=YJxLfNpa7HqM5rj09kXGUeernJp9sSTA_mDICKvIs9I,792
|
206
206
|
odoo/addons/dms/views/res_config_settings.xml,sha256=0ypGd5018Lh7ItlOo8Ks5-4RuTImAWocvgTFtYP-RK4,5214
|
@@ -211,7 +211,7 @@ odoo/addons/dms/wizards/wizard_dms_file_move.py,sha256=zQouQDJuLWOrjzkksiUaTf0DF
|
|
211
211
|
odoo/addons/dms/wizards/wizard_dms_file_move_views.xml,sha256=bYWdX_QlMpIOS5gRk7iEyddHKLCvAkvzDxfT3oM1lCo,1931
|
212
212
|
odoo/addons/dms/wizards/wizard_dms_share.py,sha256=s7n6nQy0I6qVsvQ7Z57lfY28wi8tbd9062Bdw-BSoWg,558
|
213
213
|
odoo/addons/dms/wizards/wizard_dms_share_views.xml,sha256=63BhWyowqJ2Yf3RdOdjT6WvC13jXxTKzsJEZXmaHv-A,1230
|
214
|
-
odoo_addon_dms-16.0.1.8.
|
215
|
-
odoo_addon_dms-16.0.1.8.
|
216
|
-
odoo_addon_dms-16.0.1.8.
|
217
|
-
odoo_addon_dms-16.0.1.8.
|
214
|
+
odoo_addon_dms-16.0.1.8.5.dist-info/METADATA,sha256=e-Gglb4wOXDHZx_zOpP1fylQt7y8z2IoLGFtldvXLPM,8413
|
215
|
+
odoo_addon_dms-16.0.1.8.5.dist-info/WHEEL,sha256=tZoeGjtWxWRfdplE7E3d45VPlLNQnvbKiYnx7gwAy8A,92
|
216
|
+
odoo_addon_dms-16.0.1.8.5.dist-info/top_level.txt,sha256=qBj40grFkGOfDZ2WDSw3y1RnDlgG0u8rP8pvGNdbz4w,5
|
217
|
+
odoo_addon_dms-16.0.1.8.5.dist-info/RECORD,,
|
File without changes
|
File without changes
|