odoo-addon-dms 16.0.1.8.0.5__py3-none-any.whl → 17.0.1.0.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.
Files changed (113) hide show
  1. odoo/addons/dms/README.rst +132 -78
  2. odoo/addons/dms/__manifest__.py +34 -16
  3. odoo/addons/dms/actions/file.xml +1 -3
  4. odoo/addons/dms/controllers/main.py +0 -34
  5. odoo/addons/dms/controllers/portal.py +178 -92
  6. odoo/addons/dms/data/onboarding_data.xml +77 -0
  7. odoo/addons/dms/demo/access_group.xml +3 -9
  8. odoo/addons/dms/i18n/de.po +13 -117
  9. odoo/addons/dms/i18n/dms.pot +137 -174
  10. odoo/addons/dms/i18n/es.po +15 -58
  11. odoo/addons/dms/i18n/fr.po +296 -450
  12. odoo/addons/dms/i18n/he_IL.po +13 -117
  13. odoo/addons/dms/i18n/it.po +15 -131
  14. odoo/addons/dms/i18n/nl.po +13 -117
  15. odoo/addons/dms/i18n/pt.po +13 -121
  16. odoo/addons/dms/i18n/pt_BR.po +28 -147
  17. odoo/addons/dms/i18n/ru.po +13 -117
  18. odoo/addons/dms/models/__init__.py +7 -1
  19. odoo/addons/dms/models/abstract_dms_mixin.py +1 -1
  20. odoo/addons/dms/models/access_groups.py +18 -11
  21. odoo/addons/dms/models/base.py +10 -2
  22. odoo/addons/dms/models/directory.py +46 -75
  23. odoo/addons/dms/models/{category.py → dms_category.py} +10 -42
  24. odoo/addons/dms/models/dms_file.py +125 -147
  25. odoo/addons/dms/models/dms_security_mixin.py +26 -22
  26. odoo/addons/dms/models/ir_attachment.py +0 -1
  27. odoo/addons/dms/models/ir_binary.py +19 -0
  28. odoo/addons/dms/models/mail_thread.py +2 -4
  29. odoo/addons/dms/models/mixins_thumbnail.py +13 -8
  30. odoo/addons/dms/models/onboarding_onboarding.py +16 -0
  31. odoo/addons/dms/models/onboarding_onboarding_step.py +50 -0
  32. odoo/addons/dms/models/res_company.py +22 -47
  33. odoo/addons/dms/models/res_config_settings.py +0 -1
  34. odoo/addons/dms/models/storage.py +4 -24
  35. odoo/addons/dms/models/tag.py +1 -1
  36. odoo/addons/dms/readme/CONFIGURE.md +59 -0
  37. odoo/addons/dms/readme/CONTRIBUTORS.md +14 -0
  38. odoo/addons/dms/readme/CREDITS.md +6 -0
  39. odoo/addons/dms/readme/DESCRIPTION.md +9 -0
  40. odoo/addons/dms/readme/INSTALL.md +4 -0
  41. odoo/addons/dms/readme/ROADMAP.md +19 -0
  42. odoo/addons/dms/readme/USAGE.md +11 -0
  43. odoo/addons/dms/security/security.xml +1 -0
  44. odoo/addons/dms/static/description/icon.png +0 -0
  45. odoo/addons/dms/static/description/icon.svg +4 -1
  46. odoo/addons/dms/static/description/index.html +133 -88
  47. odoo/addons/dms/static/description/portal_icon.svg +12 -0
  48. odoo/addons/dms/static/src/js/fields/{path_owl.esm.js → path_json/path_owl.esm.js} +22 -4
  49. odoo/addons/dms/static/src/js/fields/{path_owl.xml → path_json/path_owl.xml} +7 -4
  50. odoo/addons/dms/static/src/js/fields/preview_binary/preview_record.esm.js +47 -0
  51. odoo/addons/dms/static/src/js/{views/fields/binary → fields/preview_binary}/preview_record.xml +5 -4
  52. odoo/addons/dms/static/src/js/views/dms_file_upload.esm.js +155 -148
  53. odoo/addons/dms/static/src/js/views/file_kanban_controller.xml +0 -1
  54. odoo/addons/dms/static/src/js/views/file_kanban_record.esm.js +26 -27
  55. odoo/addons/dms/static/src/js/views/file_kanban_renderer.esm.js +1 -2
  56. odoo/addons/dms/static/src/js/views/file_kanban_renderer.xml +12 -16
  57. odoo/addons/dms/static/src/js/views/file_kanban_view.esm.js +11 -9
  58. odoo/addons/dms/static/src/js/views/file_list_controller.esm.js +1 -1
  59. odoo/addons/dms/static/src/js/views/file_list_renderer.xml +1 -7
  60. odoo/addons/dms/static/src/js/views/file_list_view.esm.js +11 -9
  61. odoo/addons/dms/static/src/js/views/search_panel.esm.js +9 -10
  62. odoo/addons/dms/static/src/models/attachment.esm.js +83 -82
  63. odoo/addons/dms/static/src/models/attachment_image.esm.js +30 -28
  64. odoo/addons/dms/static/src/models/attachment_viewer_viewable.esm.js +27 -25
  65. odoo/addons/dms/static/src/scss/directory_kanban.scss +28 -73
  66. odoo/addons/dms/static/src/scss/dms_common.scss +69 -0
  67. odoo/addons/dms/static/src/scss/file_kanban.scss +22 -34
  68. odoo/addons/dms/static/src/scss/portal.scss +12 -0
  69. odoo/addons/dms/static/tests/tours/dms_portal_tour.esm.js +46 -0
  70. odoo/addons/dms/{views/dms_portal_templates.xml → template/portal.xml} +13 -3
  71. odoo/addons/dms/tests/common.py +20 -4
  72. odoo/addons/dms/tests/data/mail01.eml +2 -2
  73. odoo/addons/dms/tests/data/mail02.eml +2 -2
  74. odoo/addons/dms/tests/test_benchmark.py +16 -21
  75. odoo/addons/dms/tests/test_directory.py +128 -40
  76. odoo/addons/dms/tests/test_file.py +112 -30
  77. odoo/addons/dms/tests/test_file_database.py +50 -24
  78. odoo/addons/dms/tests/test_portal.py +50 -37
  79. odoo/addons/dms/tests/test_storage_attachment.py +85 -63
  80. odoo/addons/dms/tests/test_storage_database.py +89 -35
  81. odoo/addons/dms/tools/file.py +63 -11
  82. odoo/addons/dms/views/dms_access_groups_views.xml +2 -17
  83. odoo/addons/dms/views/{category.xml → dms_category.xml} +4 -9
  84. odoo/addons/dms/views/{directory.xml → dms_directory.xml} +168 -176
  85. odoo/addons/dms/views/dms_file.xml +170 -191
  86. odoo/addons/dms/views/{tag.xml → dms_tag.xml} +50 -53
  87. odoo/addons/dms/views/menu.xml +52 -21
  88. odoo/addons/dms/views/res_config_settings.xml +31 -82
  89. odoo/addons/dms/views/storage.xml +7 -13
  90. odoo_addon_dms-17.0.1.0.0.2.dist-info/METADATA +257 -0
  91. {odoo_addon_dms-16.0.1.8.0.5.dist-info → odoo_addon_dms-17.0.1.0.0.2.dist-info}/RECORD +93 -95
  92. {odoo_addon_dms-16.0.1.8.0.5.dist-info → odoo_addon_dms-17.0.1.0.0.2.dist-info}/WHEEL +1 -1
  93. odoo_addon_dms-17.0.1.0.0.2.dist-info/top_level.txt +1 -0
  94. odoo/addons/dms/i18n/fa.po +0 -2277
  95. odoo/addons/dms/i18n/fa_IR.po +0 -2277
  96. odoo/addons/dms/readme/CONFIGURE.rst +0 -40
  97. odoo/addons/dms/readme/CONTRIBUTORS.rst +0 -16
  98. odoo/addons/dms/readme/CREDITS.rst +0 -6
  99. odoo/addons/dms/readme/DESCRIPTION.rst +0 -6
  100. odoo/addons/dms/readme/INSTALL.rst +0 -9
  101. odoo/addons/dms/readme/ROADMAP.rst +0 -8
  102. odoo/addons/dms/readme/USAGE.rst +0 -8
  103. odoo/addons/dms/static/src/js/components/path/path.esm.js +0 -0
  104. odoo/addons/dms/static/src/js/dms_portal_tour.js +0 -57
  105. odoo/addons/dms/static/src/js/fields/path.js +0 -81
  106. odoo/addons/dms/static/src/js/views/fields/binary/preview_record.esm.js +0 -35
  107. odoo/addons/dms/static/src/js/views/many_drop_target.js +0 -98
  108. odoo/addons/dms/static/src/scss/variables.scss +0 -9
  109. odoo/addons/dms/static/src/xml/views.xml +0 -72
  110. odoo/addons/dms/template/assets.xml +0 -44
  111. odoo/addons/dms/template/onboarding.xml +0 -97
  112. odoo_addon_dms-16.0.1.8.0.5.dist-info/METADATA +0 -203
  113. odoo_addon_dms-16.0.1.8.0.5.dist-info/top_level.txt +0 -1
@@ -77,19 +77,6 @@ msgid ""
77
77
  " Download"
78
78
  msgstr ""
79
79
 
80
- #. module: dms
81
- #: model_terms:ir.ui.view,arch_db:dms.wizard_dms_file_move_form_view
82
- msgid ""
83
- "<i class=\"fa fa-exclamation-triangle mr-3\" title=\"Warning\"/>\n"
84
- " <b>ATTENTION:</b> Tips to keep in mind before moving "
85
- "files:<br/>\n"
86
- " - This change cannot be undone.<br/>\n"
87
- " - Remember that the permissions of the files are those "
88
- "of the folder that contains it, therefore, it is possible that when you "
89
- "change it, the permissions will also change.<br/>\n"
90
- " Make this change at your own risk."
91
- msgstr ""
92
-
93
80
  #. module: dms
94
81
  #: model_terms:ir.ui.view,arch_db:dms.view_dms_directory_kanban
95
82
  #: model_terms:ir.ui.view,arch_db:dms.view_dms_file_kanban
@@ -240,8 +227,17 @@ msgid "A file must have model and resource ID in attachment storage."
240
227
  msgstr ""
241
228
 
242
229
  #. module: dms
230
+ #. odoo-javascript
231
+ #: code:addons/dms/static/src/js/views/dms_file_upload.esm.js:0
232
+ #, python-format
233
+ msgid "A file with the same name already exists"
234
+ msgstr ""
235
+
236
+ #. module: dms
237
+ #. odoo-javascript
243
238
  #. odoo-python
244
239
  #: code:addons/dms/models/dms_file.py:0
240
+ #: code:addons/dms/static/src/js/views/dms_file_upload.esm.js:0
245
241
  #, python-format
246
242
  msgid "A file with the same name already exists."
247
243
  msgstr ""
@@ -278,7 +274,6 @@ msgstr ""
278
274
  #. module: dms
279
275
  #: model:ir.model.fields,field_description:dms.field_dms_directory__access_warning
280
276
  #: model:ir.model.fields,field_description:dms.field_dms_file__access_warning
281
- #: model:ir.model.fields,field_description:dms.field_wizard_dms_share__access_warning
282
277
  msgid "Access warning"
283
278
  msgstr ""
284
279
 
@@ -341,11 +336,6 @@ msgstr ""
341
336
  msgid "Add a new File."
342
337
  msgstr ""
343
338
 
344
- #. module: dms
345
- #: model:ir.model.fields,help:dms.field_wizard_dms_share__note
346
- msgid "Add extra content to display in the email"
347
- msgstr ""
348
-
349
339
  #. module: dms
350
340
  #: model:dms.access.group,name:dms.access_group_01_demo
351
341
  msgid "Admin"
@@ -424,11 +414,6 @@ msgstr ""
424
414
  msgid "Archived Files"
425
415
  msgstr ""
426
416
 
427
- #. module: dms
428
- #: model_terms:ir.ui.view,arch_db:dms.wizard_dms_file_move_form_view
429
- msgid "Are you sure? All files will be moved."
430
- msgstr ""
431
-
432
417
  #. module: dms
433
418
  #. odoo-python
434
419
  #: code:addons/dms/models/storage.py:0
@@ -458,7 +443,6 @@ msgstr ""
458
443
  #: model_terms:ir.ui.view,arch_db:dms.view_dms_directory_new_form
459
444
  #: model_terms:ir.ui.view,arch_db:dms.view_dms_file_new_form
460
445
  #: model_terms:ir.ui.view,arch_db:dms.view_dms_storage_new_form
461
- #: model_terms:ir.ui.view,arch_db:dms.wizard_dms_file_move_form_view
462
446
  msgid "Cancel"
463
447
  msgstr ""
464
448
 
@@ -633,7 +617,6 @@ msgstr ""
633
617
  #: model:ir.model.fields,field_description:dms.field_dms_directory__count_files_title
634
618
  #: model:ir.model.fields,field_description:dms.field_dms_storage__count_storage_files
635
619
  #: model:ir.model.fields,field_description:dms.field_dms_tag__count_files
636
- #: model:ir.model.fields,field_description:dms.field_wizard_dms_file_move__count_files
637
620
  msgid "Count Files"
638
621
  msgstr ""
639
622
 
@@ -724,8 +707,6 @@ msgstr ""
724
707
  #: model:ir.model.fields,field_description:dms.field_dms_file__create_uid
725
708
  #: model:ir.model.fields,field_description:dms.field_dms_storage__create_uid
726
709
  #: model:ir.model.fields,field_description:dms.field_dms_tag__create_uid
727
- #: model:ir.model.fields,field_description:dms.field_wizard_dms_file_move__create_uid
728
- #: model:ir.model.fields,field_description:dms.field_wizard_dms_share__create_uid
729
710
  msgid "Created by"
730
711
  msgstr ""
731
712
 
@@ -736,8 +717,6 @@ msgstr ""
736
717
  #: model:ir.model.fields,field_description:dms.field_dms_file__create_date
737
718
  #: model:ir.model.fields,field_description:dms.field_dms_storage__create_date
738
719
  #: model:ir.model.fields,field_description:dms.field_dms_tag__create_date
739
- #: model:ir.model.fields,field_description:dms.field_wizard_dms_file_move__create_date
740
- #: model:ir.model.fields,field_description:dms.field_wizard_dms_share__create_date
741
720
  msgid "Created on"
742
721
  msgstr ""
743
722
 
@@ -862,7 +841,6 @@ msgstr ""
862
841
  #. module: dms
863
842
  #: model:ir.model,name:dms.model_dms_directory
864
843
  #: model:ir.model.fields,field_description:dms.field_dms_file__directory_id
865
- #: model:ir.model.fields,field_description:dms.field_wizard_dms_file_move__directory_id
866
844
  #: model_terms:ir.ui.view,arch_db:dms.onboarding_directory_step
867
845
  msgid "Directory"
868
846
  msgstr ""
@@ -874,8 +852,6 @@ msgstr ""
874
852
  #: model:ir.model.fields,field_description:dms.field_dms_file__display_name
875
853
  #: model:ir.model.fields,field_description:dms.field_dms_storage__display_name
876
854
  #: model:ir.model.fields,field_description:dms.field_dms_tag__display_name
877
- #: model:ir.model.fields,field_description:dms.field_wizard_dms_file_move__display_name
878
- #: model:ir.model.fields,field_description:dms.field_wizard_dms_share__display_name
879
855
  msgid "Display Name"
880
856
  msgstr ""
881
857
 
@@ -1114,8 +1090,6 @@ msgstr ""
1114
1090
  #: model:ir.model.fields,field_description:dms.field_dms_file__id
1115
1091
  #: model:ir.model.fields,field_description:dms.field_dms_storage__id
1116
1092
  #: model:ir.model.fields,field_description:dms.field_dms_tag__id
1117
- #: model:ir.model.fields,field_description:dms.field_wizard_dms_file_move__id
1118
- #: model:ir.model.fields,field_description:dms.field_wizard_dms_share__id
1119
1093
  msgid "ID"
1120
1094
  msgstr ""
1121
1095
 
@@ -1338,8 +1312,6 @@ msgstr ""
1338
1312
  #: model:ir.model.fields,field_description:dms.field_dms_file____last_update
1339
1313
  #: model:ir.model.fields,field_description:dms.field_dms_storage____last_update
1340
1314
  #: model:ir.model.fields,field_description:dms.field_dms_tag____last_update
1341
- #: model:ir.model.fields,field_description:dms.field_wizard_dms_file_move____last_update
1342
- #: model:ir.model.fields,field_description:dms.field_wizard_dms_share____last_update
1343
1315
  msgid "Last Modified on"
1344
1316
  msgstr ""
1345
1317
 
@@ -1350,8 +1322,6 @@ msgstr ""
1350
1322
  #: model:ir.model.fields,field_description:dms.field_dms_file__write_uid
1351
1323
  #: model:ir.model.fields,field_description:dms.field_dms_storage__write_uid
1352
1324
  #: model:ir.model.fields,field_description:dms.field_dms_tag__write_uid
1353
- #: model:ir.model.fields,field_description:dms.field_wizard_dms_file_move__write_uid
1354
- #: model:ir.model.fields,field_description:dms.field_wizard_dms_share__write_uid
1355
1325
  msgid "Last Updated by"
1356
1326
  msgstr ""
1357
1327
 
@@ -1362,8 +1332,6 @@ msgstr ""
1362
1332
  #: model:ir.model.fields,field_description:dms.field_dms_file__write_date
1363
1333
  #: model:ir.model.fields,field_description:dms.field_dms_storage__write_date
1364
1334
  #: model:ir.model.fields,field_description:dms.field_dms_tag__write_date
1365
- #: model:ir.model.fields,field_description:dms.field_wizard_dms_file_move__write_date
1366
- #: model:ir.model.fields,field_description:dms.field_wizard_dms_share__write_date
1367
1335
  msgid "Last Updated on"
1368
1336
  msgstr ""
1369
1337
 
@@ -1372,11 +1340,6 @@ msgstr ""
1372
1340
  msgid "Last update"
1373
1341
  msgstr ""
1374
1342
 
1375
- #. module: dms
1376
- #: model:ir.model.fields,field_description:dms.field_wizard_dms_share__share_link
1377
- msgid "Link"
1378
- msgstr ""
1379
-
1380
1343
  #. module: dms
1381
1344
  #: model:ir.model.fields,field_description:dms.field_dms_directory__allowed_model_ids
1382
1345
  #: model:ir.model.fields,field_description:dms.field_dms_storage__model_ids
@@ -1492,17 +1455,6 @@ msgstr ""
1492
1455
  msgid "Modification Date"
1493
1456
  msgstr ""
1494
1457
 
1495
- #. module: dms
1496
- #: model:ir.actions.server,name:dms.action_wizard_dms_file_move
1497
- #: model_terms:ir.ui.view,arch_db:dms.wizard_dms_file_move_form_view
1498
- msgid "Move"
1499
- msgstr ""
1500
-
1501
- #. module: dms
1502
- #: model:ir.actions.act_window,name:dms.wizard_dms_file_move_act_window
1503
- msgid "Move files"
1504
- msgstr ""
1505
-
1506
1458
  #. module: dms
1507
1459
  #: model:ir.model.fields,field_description:dms.field_dms_directory__my_activity_date_deadline
1508
1460
  #: model:ir.model.fields,field_description:dms.field_dms_file__my_activity_date_deadline
@@ -1592,11 +1544,6 @@ msgstr ""
1592
1544
  msgid "Not results"
1593
1545
  msgstr ""
1594
1546
 
1595
- #. module: dms
1596
- #: model:ir.model.fields,field_description:dms.field_wizard_dms_share__note
1597
- msgid "Note"
1598
- msgstr ""
1599
-
1600
1547
  #. module: dms
1601
1548
  #: model:ir.model.fields,field_description:dms.field_dms_directory__message_needaction_counter
1602
1549
  #: model:ir.model.fields,field_description:dms.field_dms_file__message_needaction_counter
@@ -1626,13 +1573,6 @@ msgstr ""
1626
1573
  msgid "Only admin user"
1627
1574
  msgstr ""
1628
1575
 
1629
- #. module: dms
1630
- #. odoo-python
1631
- #: code:addons/dms/models/dms_file.py:0
1632
- #, python-format
1633
- msgid "Only files in the same root directory can be moved."
1634
- msgstr ""
1635
-
1636
1576
  #. module: dms
1637
1577
  #. odoo-python
1638
1578
  #: code:addons/dms/models/storage.py:0
@@ -1771,11 +1711,6 @@ msgstr ""
1771
1711
  msgid "Read Access"
1772
1712
  msgstr ""
1773
1713
 
1774
- #. module: dms
1775
- #: model:ir.model.fields,field_description:dms.field_wizard_dms_share__partner_ids
1776
- msgid "Recipients"
1777
- msgstr ""
1778
-
1779
1714
  #. module: dms
1780
1715
  #: model:ir.model,name:dms.model_dms_access_group
1781
1716
  msgid "Record Access Groups"
@@ -1793,21 +1728,6 @@ msgstr ""
1793
1728
  msgid "Record Thread ID"
1794
1729
  msgstr ""
1795
1730
 
1796
- #. module: dms
1797
- #: model:ir.model.fields,field_description:dms.field_wizard_dms_share__resource_ref
1798
- msgid "Related Document"
1799
- msgstr ""
1800
-
1801
- #. module: dms
1802
- #: model:ir.model.fields,field_description:dms.field_wizard_dms_share__res_id
1803
- msgid "Related Document ID"
1804
- msgstr ""
1805
-
1806
- #. module: dms
1807
- #: model:ir.model.fields,field_description:dms.field_wizard_dms_share__res_model
1808
- msgid "Related Document Model"
1809
- msgstr ""
1810
-
1811
1731
  #. module: dms
1812
1732
  #: model:ir.model.fields,field_description:dms.field_dms_file__require_migration
1813
1733
  msgid "Require Migration"
@@ -1828,7 +1748,6 @@ msgstr ""
1828
1748
 
1829
1749
  #. module: dms
1830
1750
  #: model:ir.model.fields,field_description:dms.field_dms_directory__root_directory_id
1831
- #: model:ir.model.fields,field_description:dms.field_dms_file__root_directory_id
1832
1751
  msgid "Root Directory"
1833
1752
  msgstr ""
1834
1753
 
@@ -1866,8 +1785,8 @@ msgid "Settings"
1866
1785
  msgstr ""
1867
1786
 
1868
1787
  #. module: dms
1869
- #: model:ir.actions.act_window,name:dms.wizard_dms_directory_share_action
1870
- #: model:ir.actions.act_window,name:dms.wizard_dms_file_share_action
1788
+ #: model_terms:ir.ui.view,arch_db:dms.view_dms_directory_form
1789
+ #: model_terms:ir.ui.view,arch_db:dms.view_dms_file_form
1871
1790
  msgid "Share"
1872
1791
  msgstr ""
1873
1792
 
@@ -1882,23 +1801,15 @@ msgid "Single Files"
1882
1801
  msgstr ""
1883
1802
 
1884
1803
  #. module: dms
1804
+ #: model:ir.model.fields,field_description:dms.field_dms_directory__human_size
1885
1805
  #: model:ir.model.fields,field_description:dms.field_dms_directory__size
1806
+ #: model:ir.model.fields,field_description:dms.field_dms_file__human_size
1886
1807
  #: model:ir.model.fields,field_description:dms.field_dms_file__size
1887
1808
  #: model:ir.model.fields,field_description:dms.field_res_config_settings__documents_binary_max_size
1888
1809
  #: model_terms:ir.ui.view,arch_db:dms.portal_my_dms
1889
- #: model_terms:ir.ui.view,arch_db:dms.view_dms_directory_form
1890
- #: model_terms:ir.ui.view,arch_db:dms.view_dms_file_migration_tree
1891
- #: model_terms:ir.ui.view,arch_db:dms.view_dms_file_tree
1892
- #: model_terms:ir.ui.view,arch_db:dms.view_dms_storage_form
1893
1810
  msgid "Size"
1894
1811
  msgstr ""
1895
1812
 
1896
- #. module: dms
1897
- #: model:ir.model.fields,field_description:dms.field_dms_directory__human_size
1898
- #: model:ir.model.fields,field_description:dms.field_dms_file__human_size
1899
- msgid "Size (human readable)"
1900
- msgstr ""
1901
-
1902
1813
  #. module: dms
1903
1814
  #: model:ir.model.fields,field_description:dms.field_dms_directory__starred
1904
1815
  #: model_terms:ir.ui.view,arch_db:dms.view_dms_directory_kanban
@@ -2123,11 +2034,6 @@ msgstr ""
2123
2034
  msgid "Total Subdirectories"
2124
2035
  msgstr ""
2125
2036
 
2126
- #. module: dms
2127
- #: model_terms:ir.ui.view,arch_db:dms.wizard_dms_file_move_form_view
2128
- msgid "Total files"
2129
- msgstr ""
2130
-
2131
2037
  #. module: dms
2132
2038
  #: model:dms.category,name:dms.category_04_demo
2133
2039
  msgid "Traveling"
@@ -2217,16 +2123,6 @@ msgstr ""
2217
2123
  msgid "Website communication history"
2218
2124
  msgstr ""
2219
2125
 
2220
- #. module: dms
2221
- #: model:ir.model,name:dms.model_wizard_dms_file_move
2222
- msgid "Wizard Dms File Move"
2223
- msgstr ""
2224
-
2225
- #. module: dms
2226
- #: model:ir.model,name:dms.model_wizard_dms_share
2227
- msgid "Wizard for sharing DMS records"
2228
- msgstr ""
2229
-
2230
2126
  #. module: dms
2231
2127
  #: model:ir.model.fields,field_description:dms.field_dms_access_group__perm_write
2232
2128
  #: model:ir.model.fields,field_description:dms.field_dms_directory__permission_write
@@ -1,3 +1,6 @@
1
+ # Copyright 2024 Subteno - Timothée Vannier (https://www.subteno.com).
2
+ # License LGPL-3.0 or later (https://www.gnu.org/licenses/lgpl).
3
+
1
4
  from . import access_groups
2
5
  from . import base
3
6
  from . import mixins_thumbnail
@@ -8,10 +11,13 @@ from . import storage
8
11
  from . import directory
9
12
  from . import dms_file
10
13
 
11
- from . import category
14
+ from . import onboarding_onboarding
15
+ from . import onboarding_onboarding_step
16
+ from . import dms_category
12
17
  from . import tag
13
18
 
14
19
  from . import res_company
15
20
  from . import res_config_settings
16
21
  from . import ir_attachment
22
+ from . import ir_binary
17
23
  from . import mail_thread
@@ -30,7 +30,7 @@ class AbstractDmsMixin(models.AbstractModel):
30
30
  color = fields.Integer(default=0)
31
31
  category_id = fields.Many2one(
32
32
  comodel_name="dms.category",
33
- context="{'dms_category_show_path': True}",
33
+ context={"dms_category_show_path": True},
34
34
  string="Category",
35
35
  )
36
36
 
@@ -1,5 +1,6 @@
1
1
  # Copyright 2017-2019 MuK IT GmbH
2
2
  # Copyright 2020 RGB Consulting
3
+ # Copyright 2024 Timothée Vannier - Subteno (https://www.subteno.com).
3
4
  # License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl).
4
5
 
5
6
  from odoo import _, api, fields, models
@@ -121,8 +122,7 @@ class DmsAccessGroups(models.Model):
121
122
  for one in self:
122
123
  one.update(
123
124
  {
124
- "perm_inclusive_%s"
125
- % perm: (
125
+ "perm_inclusive_%s" % perm: (
126
126
  one["perm_%s" % perm]
127
127
  or one.parent_group_id["perm_inclusive_%s" % perm]
128
128
  )
@@ -132,8 +132,8 @@ class DmsAccessGroups(models.Model):
132
132
 
133
133
  @api.model
134
134
  def default_get(self, fields_list):
135
- res = super(DmsAccessGroups, self).default_get(fields_list)
136
- if "explicit_user_ids" in res and res["explicit_user_ids"]:
135
+ res = super().default_get(fields_list)
136
+ if res.get("explicit_user_ids"):
137
137
  res["explicit_user_ids"] = res["explicit_user_ids"] + [self.env.uid]
138
138
  else:
139
139
  res["explicit_user_ids"] = [(6, 0, [self.env.uid])]
@@ -148,17 +148,24 @@ class DmsAccessGroups(models.Model):
148
148
  )
149
149
  def _compute_users(self):
150
150
  for record in self:
151
- users = record.mapped("group_ids.users")
152
- users |= record.mapped("explicit_user_ids")
153
- users |= record.mapped("parent_group_id.users")
151
+ users = (
152
+ record.group_ids.users
153
+ | record.explicit_user_ids
154
+ | record.parent_group_id.users
155
+ )
154
156
  record.update({"users": users, "count_users": len(users)})
155
157
 
158
+ def copy(self, default=None):
159
+ default = dict(default or {})
160
+ default["name"] = _("%s (copy)") % self.name
161
+ return super().copy(default=default)
162
+
156
163
  @api.constrains("parent_path")
157
164
  def _check_parent_recursiveness(self):
158
- """Forbid recursive relationships."""
159
- for one in self:
160
- if not one.parent_group_id:
161
- continue
165
+ """
166
+ Forbid recursive relationships.
167
+ """
168
+ for one in self.filtered("parent_group_id"):
162
169
  if str(one.id) in one.parent_path.split("/"):
163
170
  raise ValidationError(
164
171
  _("Parent group '%(parent)s' is child of '%(current)s'.")
@@ -1,5 +1,6 @@
1
1
  # Copyright 2021 Tecnativa - Jairo Llopis
2
2
  # Copyright 2024 Tecnativa - Víctor Martínez
3
+ # Copyright 2024 Subteno - Timothée Vannier (https://www.subteno.com).
3
4
  # License LGPL-3.0 or later (https://www.gnu.org/licenses/lgpl).
4
5
 
5
6
  from odoo import models
@@ -19,6 +20,13 @@ class Base(models.AbstractModel):
19
20
  and self._name not in ("dms.file", "dms.directory")
20
21
  ):
21
22
  domain = [("res_model", "=", self._name), ("res_id", "in", self.ids)]
22
- self.env["dms.file"].sudo().search(domain).unlink()
23
- self.env["dms.directory"].sudo().search(domain).unlink()
23
+ # Has to check if existing before unlinking, because even if the search
24
+ # returns an empty recordset, it will still call the unlink method on it.
25
+ # This can result in an infinite loop and a recursion depth error.
26
+ files = self.env["dms.file"].sudo().search(domain)
27
+ if files:
28
+ files.unlink()
29
+ directories = self.env["dms.directory"].sudo().search(domain)
30
+ if directories:
31
+ directories.unlink()
24
32
  return result