odoo-addon-dms 18.0.1.0.1__py3-none-any.whl → 18.0.1.0.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.
@@ -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:40b1711b25ea421ce4520492429a8c0a0512960a21f1d83ceec331aabe8800fa
10
+ !! source digest: sha256:1e82c9364cc8752ba072a1f42973cae9e23f91ea045c59db276a45536013b0e0
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.1",
8
+ "version": "18.0.1.0.3",
9
9
  "category": "Document Management",
10
10
  "license": "LGPL-3",
11
11
  "website": "https://github.com/OCA/dms",
@@ -696,6 +696,14 @@ class DmsDirectory(models.Model):
696
696
  res = super().write(vals)
697
697
  return res
698
698
 
699
+ @api.depends_context("directory_short_name")
700
+ def _compute_display_name(self):
701
+ if self.env.context.get("directory_short_name"):
702
+ for item in self:
703
+ item.display_name = item.name
704
+ else:
705
+ return super()._compute_display_name()
706
+
699
707
  def unlink(self):
700
708
  """Custom cascade unlink.
701
709
 
@@ -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:40b1711b25ea421ce4520492429a8c0a0512960a21f1d83ceec331aabe8800fa
370
+ !! source digest: sha256:1e82c9364cc8752ba072a1f42973cae9e23f91ea045c59db276a45536013b0e0
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" />
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: odoo-addon-dms
3
- Version: 18.0.1.0.1
3
+ Version: 18.0.1.0.3
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:40b1711b25ea421ce4520492429a8c0a0512960a21f1d83ceec331aabe8800fa
25
+ !! source digest: sha256:1e82c9364cc8752ba072a1f42973cae9e23f91ea045c59db276a45536013b0e0
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=P3kYvCNNJocwVE9Dae3tuhpR5h0sRvqQqcJ9RtVg0NE,8352
1
+ odoo/addons/dms/README.rst,sha256=D5Nh1JS_HlBo45OYe25e3NNaO9bKneE20yR_wbjC6rQ,8352
2
2
  odoo/addons/dms/__init__.py,sha256=dnUeA_K1torbiMNF3tt2dtECdk-FkWm01DByr9MBMIA,69
3
- odoo/addons/dms/__manifest__.py,sha256=jSDCPUpcLyyM17923qJITptYjTUMIaA-F3njq-cwEeA,2260
3
+ odoo/addons/dms/__manifest__.py,sha256=ECoIAEWqdnZUeeVqDrF9CxZAA4-736_dcYD62Vtb5os,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
@@ -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=ekfFIX8iOc5AnjkHW-5YkKeQMHH48dnthIssMlR6tL0,5693
30
30
  odoo/addons/dms/models/base.py,sha256=neudsxtQLBpS4uq6haivMC2Lwtfprajx1CsLJSGDaWA,1336
31
- odoo/addons/dms/models/directory.py,sha256=n-X9xCgS5BKq2VV4MAhJqQGYtzxPrOVBm6i_9sPV6m0,27657
31
+ odoo/addons/dms/models/directory.py,sha256=cZbxeLjqClYqbQIeenp2kILl3ds4uDGWVMNCGX5eSO4,27942
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=tSHDFL7pN2tg02HaS_x5C5T4tml-0uQndloqqx0JjyQ,21908
56
+ odoo/addons/dms/static/description/index.html,sha256=2JQHsTExmKw_SHjfRsTUhg48hAXNMLlfvE015jX8iEM,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=6nfBlRhEjW2Gh9Cx0DqQ-0_n0Ks-OkQSy_YhjT8W404,29129
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.1.dist-info/METADATA,sha256=cZ06UeRhpj3vJMsxXYoQN_2mjSri95MWooi80rZo1M0,8864
210
- odoo_addon_dms-18.0.1.0.1.dist-info/WHEEL,sha256=9fEMia4zL7ZuZbnCOrcYogUhmn4XFIVaJ8G4YGI31xc,81
211
- odoo_addon_dms-18.0.1.0.1.dist-info/top_level.txt,sha256=QE6RBQ0QX5f4eFuUcGgU5Kbq1A_qJcDs-e_vpr6pmfU,4
212
- odoo_addon_dms-18.0.1.0.1.dist-info/RECORD,,
209
+ odoo_addon_dms-18.0.1.0.3.dist-info/METADATA,sha256=NHmzETqUJdCM8ecYJadf88oHpOrPzwy3cvwvHV4WjXQ,8864
210
+ odoo_addon_dms-18.0.1.0.3.dist-info/WHEEL,sha256=9fEMia4zL7ZuZbnCOrcYogUhmn4XFIVaJ8G4YGI31xc,81
211
+ odoo_addon_dms-18.0.1.0.3.dist-info/top_level.txt,sha256=QE6RBQ0QX5f4eFuUcGgU5Kbq1A_qJcDs-e_vpr6pmfU,4
212
+ odoo_addon_dms-18.0.1.0.3.dist-info/RECORD,,