odoo-addon-dms 17.0.1.2.1__py3-none-any.whl → 17.0.1.2.3__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/directory.py +8 -0
- 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/tests/test_storage_attachment.py +23 -0
- odoo/addons/dms/views/dms_file.xml +3 -3
- {odoo_addon_dms-17.0.1.2.1.dist-info → odoo_addon_dms-17.0.1.2.3.dist-info}/METADATA +2 -2
- {odoo_addon_dms-17.0.1.2.1.dist-info → odoo_addon_dms-17.0.1.2.3.dist-info}/RECORD +12 -12
- {odoo_addon_dms-17.0.1.2.1.dist-info → odoo_addon_dms-17.0.1.2.3.dist-info}/WHEEL +0 -0
- {odoo_addon_dms-17.0.1.2.1.dist-info → odoo_addon_dms-17.0.1.2.3.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:14906170a451329cbce282b867d0012872de1fff38ce9e4388bbeeab3afbc087
|
11
11
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
12
12
|
|
13
13
|
.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
|
odoo/addons/dms/__manifest__.py
CHANGED
@@ -698,6 +698,14 @@ class DmsDirectory(models.Model):
|
|
698
698
|
res = super().write(vals)
|
699
699
|
return res
|
700
700
|
|
701
|
+
@api.depends_context("directory_short_name")
|
702
|
+
def _compute_display_name(self):
|
703
|
+
if self.env.context.get("directory_short_name"):
|
704
|
+
for item in self:
|
705
|
+
item.display_name = item.name
|
706
|
+
else:
|
707
|
+
return super()._compute_display_name()
|
708
|
+
|
701
709
|
def unlink(self):
|
702
710
|
"""Custom cascade unlink.
|
703
711
|
|
@@ -197,6 +197,7 @@ class DMSFile(models.Model):
|
|
197
197
|
string="Attachment File",
|
198
198
|
prefetch=False,
|
199
199
|
ondelete="cascade",
|
200
|
+
index=True,
|
200
201
|
)
|
201
202
|
|
202
203
|
def get_human_size(self):
|
@@ -602,6 +603,13 @@ class DMSFile(models.Model):
|
|
602
603
|
new_vals_list.append(vals)
|
603
604
|
return super().create(new_vals_list)
|
604
605
|
|
606
|
+
def unlink(self):
|
607
|
+
attachments = self.mapped("attachment_id")
|
608
|
+
res = super().unlink()
|
609
|
+
if not self.env.context.get("dms_file"):
|
610
|
+
attachments.with_context(dms_file=True).unlink()
|
611
|
+
return res
|
612
|
+
|
605
613
|
# ----------------------------------------------------------
|
606
614
|
# Locking fields and functions
|
607
615
|
locked_by = fields.Many2one(comodel_name="res.users")
|
@@ -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
|
@@ -99,3 +99,10 @@ class IrAttachment(models.Model):
|
|
99
99
|
):
|
100
100
|
self._dms_operations()
|
101
101
|
return res
|
102
|
+
|
103
|
+
def unlink(self):
|
104
|
+
if not self.env.context.get("dms_file"):
|
105
|
+
self.env["dms.file"].search(
|
106
|
+
[("attachment_id", "in", self.ids)]
|
107
|
+
).with_context(dms_file=True).unlink()
|
108
|
+
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:14906170a451329cbce282b867d0012872de1fff38ce9e4388bbeeab3afbc087
|
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/17.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-17-0/dms-17-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=17.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
|
@@ -3,6 +3,7 @@
|
|
3
3
|
# Copyright 2024 Subteno - Timothée Vannier (https://www.subteno.com).
|
4
4
|
# License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl).
|
5
5
|
|
6
|
+
from odoo.exceptions import AccessError
|
6
7
|
from odoo.tests.common import users
|
7
8
|
from odoo.tools import mute_logger
|
8
9
|
|
@@ -48,6 +49,26 @@ class StorageAttachmentTestCase(StorageAttachmentBaseCase):
|
|
48
49
|
directories = self.env["dms.directory"].search([])
|
49
50
|
self.assertNotIn(directory.id, directories.ids)
|
50
51
|
|
52
|
+
@mute_logger("odoo.models.unlink")
|
53
|
+
def test_storage_attachment_unlink_lock_file(self):
|
54
|
+
group_partner_manager = self.env.ref("base.group_partner_manager")
|
55
|
+
self.dms_manager_user.write({"groups_id": [(4, group_partner_manager.id)]})
|
56
|
+
self.dms_user.write({"groups_id": [(4, group_partner_manager.id)]})
|
57
|
+
attachment = self._create_attachment("demo.txt")
|
58
|
+
attachment = attachment.with_user(self.dms_manager_user)
|
59
|
+
file = self.storage.storage_file_ids.filtered(lambda x: x.name == "demo.txt")
|
60
|
+
file.with_user(self.dms_user).lock()
|
61
|
+
self.assertTrue(file.is_locked)
|
62
|
+
self.assertFalse(file.is_lock_editor)
|
63
|
+
with self.assertRaises(AccessError):
|
64
|
+
attachment.unlink()
|
65
|
+
self.assertTrue(file.exists())
|
66
|
+
file.with_user(self.dms_user).unlock()
|
67
|
+
self.assertFalse(file.is_locked)
|
68
|
+
file.invalidate_recordset()
|
69
|
+
attachment.unlink()
|
70
|
+
self.assertFalse(file.exists())
|
71
|
+
|
51
72
|
@users("dms-manager")
|
52
73
|
def test_storage_attachment_misc(self):
|
53
74
|
attachment = self._create_attachment("demo.txt")
|
@@ -105,6 +126,8 @@ class StorageAttachmentTestCase(StorageAttachmentBaseCase):
|
|
105
126
|
self.assertEqual(
|
106
127
|
self.storage.count_storage_files, 2, "Storage should have 2 files"
|
107
128
|
)
|
129
|
+
dms_file.unlink()
|
130
|
+
self.assertFalse(attachment.exists())
|
108
131
|
|
109
132
|
@users("dms-manager")
|
110
133
|
def test_storage_attachment_directory_record_ref_access_dms_manager(self):
|
@@ -142,7 +142,7 @@
|
|
142
142
|
</div>
|
143
143
|
<div
|
144
144
|
role="menuitem"
|
145
|
-
t-if="record.permission_write.raw_value and record.active.raw_value"
|
145
|
+
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))"
|
146
146
|
>
|
147
147
|
<a name="toggle_active" type="object">
|
148
148
|
<i class="fa fa-archive" />
|
@@ -151,7 +151,7 @@
|
|
151
151
|
</div>
|
152
152
|
<div
|
153
153
|
role="menuitem"
|
154
|
-
t-if="record.permission_write.raw_value and !record.active.raw_value"
|
154
|
+
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))"
|
155
155
|
>
|
156
156
|
<a name="toggle_active" type="object">
|
157
157
|
<i class="fa fa-archive" />
|
@@ -191,7 +191,7 @@
|
|
191
191
|
</div>
|
192
192
|
<div
|
193
193
|
role="menuitem"
|
194
|
-
t-if="record.permission_unlink.raw_value"
|
194
|
+
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))"
|
195
195
|
>
|
196
196
|
<a type="delete">
|
197
197
|
<i class="fa fa-trash-o" />
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: odoo-addon-dms
|
3
|
-
Version: 17.0.1.2.
|
3
|
+
Version: 17.0.1.2.3
|
4
4
|
Requires-Python: >=3.10
|
5
5
|
Requires-Dist: odoo>=17.0a,<17.1dev
|
6
6
|
Summary: Document Management System for Odoo
|
@@ -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:14906170a451329cbce282b867d0012872de1fff38ce9e4388bbeeab3afbc087
|
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=yAXBi03l-msGQo10Ku_79lOmWRxc6kRu5UzyNGasbpA,8260
|
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=SRk4fwZXXmO59yVfFM93zlLh9obLnZxn_05HE5pWnXE,2440
|
4
4
|
odoo/addons/dms/actions/file.xml,sha256=z4UWfhmDcaOxdcwMbFH9Wjgi8_23RRAouD_o3FFaiaw,520
|
5
5
|
odoo/addons/dms/controllers/__init__.py,sha256=akfNDwFGryweTYowOA3DbbP0zvLmQtCdihtGhYvsIPQ,40
|
6
6
|
odoo/addons/dms/controllers/main.py,sha256=DW7wSHB_47kkxQQMCuic8ptvs_wnF-i6vJ0sXIKGgUk,531
|
@@ -28,11 +28,11 @@ odoo/addons/dms/models/__init__.py,sha256=MbhfClBwISk2qcZ1UJCLWTdwFre2IfodyIKHgR
|
|
28
28
|
odoo/addons/dms/models/abstract_dms_mixin.py,sha256=KLraRQRM6cQeWWo1m1x4AOwpvWeBA2wd2P1sgKgbexA,2084
|
29
29
|
odoo/addons/dms/models/access_groups.py,sha256=JPV-iZQ_FgJPEwxBUBwbz4h1t7C0TZ_MvQJyjk-IIcM,5656
|
30
30
|
odoo/addons/dms/models/base.py,sha256=neudsxtQLBpS4uq6haivMC2Lwtfprajx1CsLJSGDaWA,1336
|
31
|
-
odoo/addons/dms/models/directory.py,sha256=
|
31
|
+
odoo/addons/dms/models/directory.py,sha256=7jrQ0A5-2KKOQK0eYR3vcOJmMWFj54ocB5hNcfz1Dl4,27967
|
32
32
|
odoo/addons/dms/models/dms_category.py,sha256=DH1R7QUQQbGpGwDGxfm0oHenDVvWOrSeKmr-sttfvus,3337
|
33
|
-
odoo/addons/dms/models/dms_file.py,sha256=
|
33
|
+
odoo/addons/dms/models/dms_file.py,sha256=MqRjqQ7SwhoqNIHjhUsuEWWt39PYENyBlk2-mYg5WVs,24369
|
34
34
|
odoo/addons/dms/models/dms_security_mixin.py,sha256=ZF_PUR3nHh0_rVw1-7D4pbcpi7bzUTETJPaIL-wWklw,9832
|
35
|
-
odoo/addons/dms/models/ir_attachment.py,sha256=
|
35
|
+
odoo/addons/dms/models/ir_attachment.py,sha256=JcD9GGeiYj8ahSq1QtPaR_2Y_TpeqgTXar6nakjlnEQ,4240
|
36
36
|
odoo/addons/dms/models/ir_binary.py,sha256=K62N0v6hEM5AE5GxB2iiPL86ISZy8lNvtTdQABrN_-0,710
|
37
37
|
odoo/addons/dms/models/mail_thread.py,sha256=DBanYxThmxvMLoTWDvh2dBn9mHdADJx0gWTfifa4bcM,561
|
38
38
|
odoo/addons/dms/models/mixins_thumbnail.py,sha256=7u27IgH4cXxSZXkZF-QWgS9uQ96u1I3Bp25xvYzpUXs,1659
|
@@ -53,7 +53,7 @@ odoo/addons/dms/security/ir.model.access.csv,sha256=_SuEwHD3SOXbpLalbr5FqGjPvwtD
|
|
53
53
|
odoo/addons/dms/security/security.xml,sha256=PNM3fDyFN4CWooj_aMkLqTR0CYrjAugsCAKbcTm6crw,9159
|
54
54
|
odoo/addons/dms/static/description/icon.png,sha256=KfrJt0JWFclsfbF1KsyjikkjwX3ib9OLlBf2QwyXSD4,1233
|
55
55
|
odoo/addons/dms/static/description/icon.svg,sha256=kOfm8NcYxdEWmr5jGDjvCXmDix2mw-5LT0ZQ4omZ2c0,1820
|
56
|
-
odoo/addons/dms/static/description/index.html,sha256=
|
56
|
+
odoo/addons/dms/static/description/index.html,sha256=9ngexaMoiteprPstBhOLhn_UFUozJh5Va0QkYRNm04w,21674
|
57
57
|
odoo/addons/dms/static/description/portal_icon.svg,sha256=z5RFc6mU_DAgNHfOS2OncYBlQBczsawqwRI1IFwct0M,4801
|
58
58
|
odoo/addons/dms/static/icons/file_ai.svg,sha256=HeCXVJivVnn6jjj__5WJiLfZv4mrmAamPFek0CwozCc,3343
|
59
59
|
odoo/addons/dms/static/icons/file_aj.svg,sha256=mUbfvaV5_m3zJ3zZKldBbaFz4AZNQNecSZ1W_JCZeE4,3063
|
@@ -185,7 +185,7 @@ odoo/addons/dms/tests/test_directory.py,sha256=IGCy4xcWmVz5KWkPzmjUTxr64_GAiZEYE
|
|
185
185
|
odoo/addons/dms/tests/test_file.py,sha256=YTgPQfUfy2KJRxak2SO-Ey8_5avbjGuPGyFAGsEsJMw,7710
|
186
186
|
odoo/addons/dms/tests/test_file_database.py,sha256=FhRakGMc4lWlOS3tqIb-o-kH4CuE_6jW6V_GYc2pKJE,5843
|
187
187
|
odoo/addons/dms/tests/test_portal.py,sha256=_dPa5ql6iWV_SjJjuxwXHPQt3ermzoSiiyKfvGAhCAI,3949
|
188
|
-
odoo/addons/dms/tests/test_storage_attachment.py,sha256=
|
188
|
+
odoo/addons/dms/tests/test_storage_attachment.py,sha256=heePm0psf7VY4kBgwzyw5nSKkYxcWp1HKJodKv8SZyI,7740
|
189
189
|
odoo/addons/dms/tests/test_storage_database.py,sha256=S9eDN2BrnzUAmeEPlh7RQ6nhnMEPumxiducEr1khcQw,5670
|
190
190
|
odoo/addons/dms/tests/data/dms.category.csv,sha256=VBWa6-PEA6__yv_D6CXUZ7xU-8AAxD7z8jWo4sKb8S0,2631
|
191
191
|
odoo/addons/dms/tests/data/dms.directory.csv,sha256=Klh3tEdMt_BB9hWgc_FRUsv_q4Uy-asUut0EuTmnLLU,53514
|
@@ -199,7 +199,7 @@ odoo/addons/dms/tools/file.py,sha256=RIq2VWswdGySj9fNwAUFgli_sLcHK1rnidcd5icrTSk
|
|
199
199
|
odoo/addons/dms/views/dms_access_groups_views.xml,sha256=xtKE5llLOacj_dRyH8oB04kGVg2_VuhTcWQ0zxINgBw,4786
|
200
200
|
odoo/addons/dms/views/dms_category.xml,sha256=CyHbudcFCrodEZ54nbwycd_5hunABPz0NQsjNub6sWQ,4303
|
201
201
|
odoo/addons/dms/views/dms_directory.xml,sha256=cK_LQdFh2MMwnVc3SLwEYxvEUELbiUacVEuq9QanXBg,34084
|
202
|
-
odoo/addons/dms/views/dms_file.xml,sha256=
|
202
|
+
odoo/addons/dms/views/dms_file.xml,sha256=x8K4agQBfSJ7qO-X3yF2-eFu4u7WLfDqnpTVxGXfYdU,30289
|
203
203
|
odoo/addons/dms/views/dms_tag.xml,sha256=ybtRR_SptYMOafqeGdFzbJy9Z_ekhBfZ1RqNl8cI_J8,7342
|
204
204
|
odoo/addons/dms/views/menu.xml,sha256=2VHK7IrsQjp9rCqcihMVzMuoZFirRt8sHI8mxkNkzZI,2151
|
205
205
|
odoo/addons/dms/views/res_config_settings.xml,sha256=aoEhrRvTaGhwIiOa3WwUvayGXDVx-78_pFhuhGeFDTY,2429
|
@@ -209,7 +209,7 @@ odoo/addons/dms/wizards/wizard_dms_file_move.py,sha256=zQouQDJuLWOrjzkksiUaTf0DF
|
|
209
209
|
odoo/addons/dms/wizards/wizard_dms_file_move_views.xml,sha256=bYWdX_QlMpIOS5gRk7iEyddHKLCvAkvzDxfT3oM1lCo,1931
|
210
210
|
odoo/addons/dms/wizards/wizard_dms_share.py,sha256=s7n6nQy0I6qVsvQ7Z57lfY28wi8tbd9062Bdw-BSoWg,558
|
211
211
|
odoo/addons/dms/wizards/wizard_dms_share_views.xml,sha256=63BhWyowqJ2Yf3RdOdjT6WvC13jXxTKzsJEZXmaHv-A,1230
|
212
|
-
odoo_addon_dms-17.0.1.2.
|
213
|
-
odoo_addon_dms-17.0.1.2.
|
214
|
-
odoo_addon_dms-17.0.1.2.
|
215
|
-
odoo_addon_dms-17.0.1.2.
|
212
|
+
odoo_addon_dms-17.0.1.2.3.dist-info/METADATA,sha256=r89Q9aD1tSKs3lweXNRw_w0XV6oEyJoPfrKFp5u3NP8,8780
|
213
|
+
odoo_addon_dms-17.0.1.2.3.dist-info/WHEEL,sha256=9fEMia4zL7ZuZbnCOrcYogUhmn4XFIVaJ8G4YGI31xc,81
|
214
|
+
odoo_addon_dms-17.0.1.2.3.dist-info/top_level.txt,sha256=QE6RBQ0QX5f4eFuUcGgU5Kbq1A_qJcDs-e_vpr6pmfU,4
|
215
|
+
odoo_addon_dms-17.0.1.2.3.dist-info/RECORD,,
|
File without changes
|
File without changes
|