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.
@@ -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:a1e09fa33b9ef1f4f1ff039a3ff5685f7de8ade40a250dca4e24d40b0b695fe5
10
+ !! source digest: sha256:a679dc80b0bc5020e1bcc24d4777a8b73a2223c966ba9505f304988e56349b6f
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.8.3",
7
+ "version": "16.0.1.8.5",
8
8
  "category": "Document Management",
9
9
  "license": "LGPL-3",
10
10
  "website": "https://github.com/OCA/dms",
@@ -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:a1e09fa33b9ef1f4f1ff039a3ff5685f7de8ade40a250dca4e24d40b0b695fe5
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&amp;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 = this.props.context;
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 === false) {
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.2
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:a1e09fa33b9ef1f4f1ff039a3ff5685f7de8ade40a250dca4e24d40b0b695fe5
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=PSg56jpmuFGiiYotdb5bEGUDKr2bnhcHpeyUj-2H-fU,7893
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=W8Sfrk27fwkVS90XL7w4l8cv8zswmV9UmeWNg7iedZ0,1863
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=khNVtNZ08ddcyVevViUnN-Hhm-jxUqY_lkQwxAw-Wns,25568
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=aEhmB_nH0aLyOqv4ECKX4yRBUn2txbdMgH0cUa8eCPw,3988
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=d5zgkLP5xc2_ZQWWhWdN_t1ZAwnDh-lH3XWJdH5YQn8,20593
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=RC4euAV9DEu21AREGsV3jkL3iq8HkQ9S7UC-sQ_TWGA,4870
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=itCx4omjp8gRQn6O7YnIYJTQdTe-02i_5CyIcjPhjDQ,5847
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=BSpOsGRRVpoyeG8dRbZju6guv_oEpK2RN_faCuLsYdY,31826
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.3.2.dist-info/METADATA,sha256=gPZmukbQnnFkR1oqTABJRWIM3Fi0MEkTI02g_z38jPY,8415
215
- odoo_addon_dms-16.0.1.8.3.2.dist-info/WHEEL,sha256=tZoeGjtWxWRfdplE7E3d45VPlLNQnvbKiYnx7gwAy8A,92
216
- odoo_addon_dms-16.0.1.8.3.2.dist-info/top_level.txt,sha256=qBj40grFkGOfDZ2WDSw3y1RnDlgG0u8rP8pvGNdbz4w,5
217
- odoo_addon_dms-16.0.1.8.3.2.dist-info/RECORD,,
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,,