odoo-addon-dms 18.0.1.0.0.2__py3-none-any.whl → 18.0.1.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.
@@ -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:904150d6b7037648a3ed02450c9b27d802f4cee614b59b1fa582f48093e1a0ed
10
+ !! source digest: sha256:af970fb589a8c1287ca69e82eb448cfeefdcfeceaaf01d83bd2fd554e816af9b
11
11
  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
12
12
 
13
13
  .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
@@ -5,7 +5,7 @@
5
5
  {
6
6
  "name": "Document Management System",
7
7
  "summary": """Document Management System for Odoo""",
8
- "version": "18.0.1.0.0",
8
+ "version": "18.0.1.0.2",
9
9
  "category": "Document Management",
10
10
  "license": "LGPL-3",
11
11
  "website": "https://github.com/OCA/dms",
@@ -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):
@@ -601,6 +602,13 @@ class DMSFile(models.Model):
601
602
  new_vals_list.append(vals)
602
603
  return super().create(new_vals_list)
603
604
 
605
+ def unlink(self):
606
+ attachments = self.mapped("attachment_id")
607
+ res = super().unlink()
608
+ if not self.env.context.get("dms_file"):
609
+ attachments.with_context(dms_file=True).unlink()
610
+ return res
611
+
604
612
  # ----------------------------------------------------------
605
613
  # Locking fields and functions
606
614
  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:904150d6b7037648a3ed02450c9b27d802f4cee614b59b1fa582f48093e1a0ed
370
+ !! source digest: sha256:af970fb589a8c1287ca69e82eb448cfeefdcfeceaaf01d83bd2fd554e816af9b
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/18.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-18-0/dms-18-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=18.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
@@ -48,6 +48,22 @@ class StorageAttachmentTestCase(StorageAttachmentBaseCase):
48
48
  directories = self.env["dms.directory"].search([])
49
49
  self.assertNotIn(directory.id, directories.ids)
50
50
 
51
+ @mute_logger("odoo.models.unlink")
52
+ def test_storage_attachment_unlink_lock_file(self):
53
+ group_partner_manager = self.env.ref("base.group_partner_manager")
54
+ self.dms_manager_user.write({"groups_id": [(4, group_partner_manager.id)]})
55
+ self.dms_user.write({"groups_id": [(4, group_partner_manager.id)]})
56
+ attachment = self._create_attachment("demo.txt")
57
+ attachment = attachment.with_user(self.dms_manager_user)
58
+ file = self.storage.storage_file_ids.filtered(lambda x: x.name == "demo.txt")
59
+ file.with_user(self.dms_user).lock()
60
+ self.assertTrue(file.is_locked)
61
+ self.assertFalse(file.is_lock_editor)
62
+ file.with_user(self.dms_user).unlock()
63
+ self.assertFalse(file.is_locked)
64
+ attachment.unlink()
65
+ self.assertFalse(file.exists())
66
+
51
67
  @users("dms-manager")
52
68
  def test_storage_attachment_misc(self):
53
69
  attachment = self._create_attachment("demo.txt")
@@ -105,6 +121,8 @@ class StorageAttachmentTestCase(StorageAttachmentBaseCase):
105
121
  self.assertEqual(
106
122
  self.storage.count_storage_files, 2, "Storage should have 2 files"
107
123
  )
124
+ dms_file.unlink()
125
+ self.assertFalse(attachment.exists())
108
126
 
109
127
  @users("dms-manager")
110
128
  def test_storage_attachment_directory_record_ref_access_dms_manager(self):
@@ -141,7 +141,7 @@
141
141
  </div>
142
142
  <div
143
143
  role="menuitem"
144
- t-if="record.permission_write.raw_value and record.active.raw_value"
144
+ 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))"
145
145
  >
146
146
  <a name="toggle_active" type="object">
147
147
  <i class="fa fa-archive" />
@@ -150,7 +150,7 @@
150
150
  </div>
151
151
  <div
152
152
  role="menuitem"
153
- t-if="record.permission_write.raw_value and !record.active.raw_value"
153
+ 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))"
154
154
  >
155
155
  <a name="toggle_active" type="object">
156
156
  <i class="fa fa-archive" />
@@ -190,7 +190,7 @@
190
190
  </div>
191
191
  <div
192
192
  role="menuitem"
193
- t-if="record.permission_unlink.raw_value"
193
+ 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))"
194
194
  >
195
195
  <a type="delete">
196
196
  <i class="fa fa-trash-o" />
@@ -231,7 +231,7 @@
231
231
  </a>
232
232
  </div>
233
233
  <div class="col-9">
234
- <field name="name" class="text-truncate fw-bold" />
234
+ <field name="name" class="fw-bold" />
235
235
  <field
236
236
  name="tag_ids"
237
237
  widget="many2many_tags"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: odoo-addon-dms
3
- Version: 18.0.1.0.0.2
3
+ Version: 18.0.1.0.2
4
4
  Requires-Python: >=3.10
5
5
  Requires-Dist: odoo==18.0.*
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:904150d6b7037648a3ed02450c9b27d802f4cee614b59b1fa582f48093e1a0ed
25
+ !! source digest: sha256:af970fb589a8c1287ca69e82eb448cfeefdcfeceaaf01d83bd2fd554e816af9b
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=rvGqkugoEfmMBBKlTm1baC-u7CHpyQiMVwxlyXmctxU,8352
1
+ odoo/addons/dms/README.rst,sha256=dF1hK1UdTwWuzmcuAm5lkPzBtebV7uxrutW4zxjDD1s,8352
2
2
  odoo/addons/dms/__init__.py,sha256=dnUeA_K1torbiMNF3tt2dtECdk-FkWm01DByr9MBMIA,69
3
- odoo/addons/dms/__manifest__.py,sha256=eWyhIlj78cafgPfRjLrYiq5njLHluIcMh-rofuerKUc,2260
3
+ odoo/addons/dms/__manifest__.py,sha256=5aVG4Jfh8BZtPqdeWmi8b06aMWaoCKJBcbLhRTL6iXk,2260
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
@@ -30,9 +30,9 @@ odoo/addons/dms/models/access_groups.py,sha256=ekfFIX8iOc5AnjkHW-5YkKeQMHH48dnth
30
30
  odoo/addons/dms/models/base.py,sha256=neudsxtQLBpS4uq6haivMC2Lwtfprajx1CsLJSGDaWA,1336
31
31
  odoo/addons/dms/models/directory.py,sha256=n-X9xCgS5BKq2VV4MAhJqQGYtzxPrOVBm6i_9sPV6m0,27657
32
32
  odoo/addons/dms/models/dms_category.py,sha256=SWhf5uAHo9qyYocQH-TbmxqNvL9gPsUEcz_ACOua--Q,3311
33
- odoo/addons/dms/models/dms_file.py,sha256=KRi4MzzLb6MRetAe2QmpghExuX6eMQO3LzOeJExrPRc,24138
33
+ odoo/addons/dms/models/dms_file.py,sha256=wJJ7MBLPjisSpCnozLLalsFuI32OubLJCtgEWDcQskk,24392
34
34
  odoo/addons/dms/models/dms_security_mixin.py,sha256=793rTWKKqpHugvghsYPY9lTBTm2kZmoXm34w2vphvqo,10829
35
- odoo/addons/dms/models/ir_attachment.py,sha256=ABXO54R3D3RECp4Kza8VqfrpDWBbmOSdsTPUs_ctpyA,3987
35
+ odoo/addons/dms/models/ir_attachment.py,sha256=JcD9GGeiYj8ahSq1QtPaR_2Y_TpeqgTXar6nakjlnEQ,4240
36
36
  odoo/addons/dms/models/ir_binary.py,sha256=IZys2wtW_tIHm5NNmwWfCxsWW9geFsfr-25dHQzfQF8,724
37
37
  odoo/addons/dms/models/mail_thread.py,sha256=DBanYxThmxvMLoTWDvh2dBn9mHdADJx0gWTfifa4bcM,561
38
38
  odoo/addons/dms/models/mixins_thumbnail.py,sha256=hIMU7jYjffgSTxjsqRUaLeKPOOB99oGSS-t-qGBCwEg,1657
@@ -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=-DZLIYlWFYDVL-Kr4zVy0LgEvvTXMHUKLZCOobD-HPU,21908
56
+ odoo/addons/dms/static/description/index.html,sha256=9VSeWHcz6rEQ408Bxn3xp0a62F-Lty9D-DSCrVQv-18,21908
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
@@ -182,7 +182,7 @@ odoo/addons/dms/tests/test_directory.py,sha256=4douN0uYg26mZwGRRGtWALjEtdYjTqSed
182
182
  odoo/addons/dms/tests/test_file.py,sha256=YTgPQfUfy2KJRxak2SO-Ey8_5avbjGuPGyFAGsEsJMw,7710
183
183
  odoo/addons/dms/tests/test_file_database.py,sha256=nX34iI-MdbX98wFkykvBOVKFFgY8FOvvrPcwxiw4i7Q,5841
184
184
  odoo/addons/dms/tests/test_portal.py,sha256=KGEO141mYxjqCP2-956tP-D_kAeTYGR5__fYmCKDnfA,3903
185
- odoo/addons/dms/tests/test_storage_attachment.py,sha256=z1sT7UZ57tabCGprKPrbiOgkmr7-kwKqMMRFjX0-nyU,6650
185
+ odoo/addons/dms/tests/test_storage_attachment.py,sha256=te_i8eXdrUyx4Hs-S2wuwSHM7K3XRVAPobSDyTLufJQ,7548
186
186
  odoo/addons/dms/tests/test_storage_database.py,sha256=S9eDN2BrnzUAmeEPlh7RQ6nhnMEPumxiducEr1khcQw,5670
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
@@ -196,7 +196,7 @@ odoo/addons/dms/tools/file.py,sha256=RIq2VWswdGySj9fNwAUFgli_sLcHK1rnidcd5icrTSk
196
196
  odoo/addons/dms/views/dms_access_groups_views.xml,sha256=YhqZSF_aeQkQYfmbbFRu-e_M41nG6qlPcQzaXvjMq7s,4786
197
197
  odoo/addons/dms/views/dms_category.xml,sha256=VNoocgA5C1TTKQ_hbWYVbI3ERWxArGiq61PZfKDEm9Y,4303
198
198
  odoo/addons/dms/views/dms_directory.xml,sha256=qtj3NdZiKQg_kK_E53jhRw9FCADhn-SnGj6-a32IrSU,33550
199
- odoo/addons/dms/views/dms_file.xml,sha256=6gOkrl_uzywGUjl1L28a3QTgoy7ey7B6JffZ_OBar2s,29143
199
+ odoo/addons/dms/views/dms_file.xml,sha256=i9sitdzpa4SJxoueQwpmgeTN-B5gNaldIbVyRm-GlDY,29435
200
200
  odoo/addons/dms/views/dms_tag.xml,sha256=3Z9BcJo0vZGpBgnRSJWV2i43eFi5XJ4F8nZxNAggDHU,6305
201
201
  odoo/addons/dms/views/menu.xml,sha256=vOxHRqnAyFIyMqazmpftASN9UkNsKO6qQaZuJF-9BBE,2332
202
202
  odoo/addons/dms/views/res_config_settings.xml,sha256=aoEhrRvTaGhwIiOa3WwUvayGXDVx-78_pFhuhGeFDTY,2429
@@ -206,7 +206,7 @@ odoo/addons/dms/wizards/wizard_dms_file_move.py,sha256=zQouQDJuLWOrjzkksiUaTf0DF
206
206
  odoo/addons/dms/wizards/wizard_dms_file_move_views.xml,sha256=1zclO-2cv8-erAcllgdbuvC65KWWIHAWt9z73bbX_X8,1927
207
207
  odoo/addons/dms/wizards/wizard_dms_share.py,sha256=s7n6nQy0I6qVsvQ7Z57lfY28wi8tbd9062Bdw-BSoWg,558
208
208
  odoo/addons/dms/wizards/wizard_dms_share_views.xml,sha256=63BhWyowqJ2Yf3RdOdjT6WvC13jXxTKzsJEZXmaHv-A,1230
209
- odoo_addon_dms-18.0.1.0.0.2.dist-info/METADATA,sha256=uktGuyCZRtn_Pw7XaLdMiYKA9gkiKnS9dSGeC8r0bro,8866
210
- odoo_addon_dms-18.0.1.0.0.2.dist-info/WHEEL,sha256=9fEMia4zL7ZuZbnCOrcYogUhmn4XFIVaJ8G4YGI31xc,81
211
- odoo_addon_dms-18.0.1.0.0.2.dist-info/top_level.txt,sha256=QE6RBQ0QX5f4eFuUcGgU5Kbq1A_qJcDs-e_vpr6pmfU,4
212
- odoo_addon_dms-18.0.1.0.0.2.dist-info/RECORD,,
209
+ odoo_addon_dms-18.0.1.0.2.dist-info/METADATA,sha256=41-e7iTAs8mZBozhU6xLKrVk5QfbabQMI1xbF3jOUSc,8864
210
+ odoo_addon_dms-18.0.1.0.2.dist-info/WHEEL,sha256=9fEMia4zL7ZuZbnCOrcYogUhmn4XFIVaJ8G4YGI31xc,81
211
+ odoo_addon_dms-18.0.1.0.2.dist-info/top_level.txt,sha256=QE6RBQ0QX5f4eFuUcGgU5Kbq1A_qJcDs-e_vpr6pmfU,4
212
+ odoo_addon_dms-18.0.1.0.2.dist-info/RECORD,,