odoo-addon-dms 16.0.1.8.0.3__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 (111) 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.3.dist-info → odoo_addon_dms-17.0.1.0.0.2.dist-info}/RECORD +93 -93
  92. {odoo_addon_dms-16.0.1.8.0.3.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/readme/CONFIGURE.rst +0 -40
  95. odoo/addons/dms/readme/CONTRIBUTORS.rst +0 -16
  96. odoo/addons/dms/readme/CREDITS.rst +0 -6
  97. odoo/addons/dms/readme/DESCRIPTION.rst +0 -6
  98. odoo/addons/dms/readme/INSTALL.rst +0 -9
  99. odoo/addons/dms/readme/ROADMAP.rst +0 -8
  100. odoo/addons/dms/readme/USAGE.rst +0 -8
  101. odoo/addons/dms/static/src/js/components/path/path.esm.js +0 -0
  102. odoo/addons/dms/static/src/js/dms_portal_tour.js +0 -57
  103. odoo/addons/dms/static/src/js/fields/path.js +0 -81
  104. odoo/addons/dms/static/src/js/views/fields/binary/preview_record.esm.js +0 -35
  105. odoo/addons/dms/static/src/js/views/many_drop_target.js +0 -98
  106. odoo/addons/dms/static/src/scss/variables.scss +0 -9
  107. odoo/addons/dms/static/src/xml/views.xml +0 -72
  108. odoo/addons/dms/template/assets.xml +0 -44
  109. odoo/addons/dms/template/onboarding.xml +0 -97
  110. odoo_addon_dms-16.0.1.8.0.3.dist-info/METADATA +0 -203
  111. odoo_addon_dms-16.0.1.8.0.3.dist-info/top_level.txt +0 -1
@@ -3,6 +3,7 @@
3
3
 
4
4
  Copyright 2017-2019 MuK IT GmbH
5
5
  Copyright 2021 Tecnativa - Víctor Martínez
6
+ Copyright 2024 Subteno - Timothée Vannier (https://www.subteno.com).
6
7
  License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl).
7
8
 
8
9
  -->
@@ -13,7 +14,7 @@
13
14
  <field name="view_mode">kanban,tree,form</field>
14
15
  <field name="domain">
15
16
  [
16
- ("is_hidden", "=", False),
17
+ ("is_hidden", "=", False),
17
18
  ]
18
19
  </field>
19
20
  <field name="context">
@@ -38,7 +39,7 @@
38
39
  <field name="view_mode">kanban,tree,graph,pivot,form</field>
39
40
  <field name="domain">
40
41
  [
41
- ("is_hidden", "=", False),
42
+ ("is_hidden", "=", False),
42
43
  ]
43
44
  </field>
44
45
  <field name="context">
@@ -62,14 +63,14 @@
62
63
  <field name="view_mode">kanban,tree,form</field>
63
64
  <field name="domain">
64
65
  [
65
- ("parent_id", "child_of", active_id),
66
- ("is_hidden", "=", False),
67
- ("id", "!=", active_id),
66
+ ("parent_id", "child_of", active_id),
67
+ ("is_hidden", "=", False),
68
+ ("id", "!=", active_id),
68
69
  ]
69
70
  </field>
70
71
  <field name="context">
71
72
  {
72
- 'default_parent_id': active_id,
73
+ 'default_parent_id': active_id,
73
74
  }
74
75
  </field>
75
76
  <field name="help" type="html">
@@ -88,13 +89,13 @@
88
89
  <field name="view_mode">kanban,tree,graph,pivot,form</field>
89
90
  <field name="domain">
90
91
  [
91
- ("is_hidden", "=", False),
92
+ ("is_hidden", "=", False),
92
93
  ]
93
94
  </field>
94
95
  <field name="context">
95
96
  {
96
- 'default_directory_id': active_id,
97
- 'searchpanel_default_directory_id': active_id
97
+ 'default_directory_id': active_id,
98
+ 'searchpanel_default_directory_id': active_id
98
99
  }
99
100
  </field>
100
101
  <field name="help" type="html">
@@ -191,8 +192,8 @@
191
192
  <field name="model">dms.directory</field>
192
193
  <field name="arch" type="xml">
193
194
  <kanban
194
- class="mk_directory_kanban_view o_kanban_small_column align-content-start"
195
- banner_route="/dms/document_onboarding/directory"
195
+ class="mk_directory_kanban_view o_kanban_small_column o_kanban_mobile"
196
+ banner_route="/onboarding/document_onboarding_file"
196
197
  >
197
198
  <field name="id" />
198
199
  <field name="tag_ids" />
@@ -211,167 +212,155 @@
211
212
  <field name="count_total_directories" />
212
213
  <field name="count_total_files" />
213
214
  <templates>
214
- <t t-name="kanban-box">
215
- <div
216
- t-attf-class="#{kanban_color(record.color.raw_value)} oe_kanban_global_click"
217
- >
218
- <div class="o_dropdown_kanban dropdown">
219
- <a
220
- class="dropdown-toggle o-no-caret btn"
221
- href="#"
222
- role="button"
223
- data-toggle="dropdown"
224
- aria-label="Dropdown menu"
225
- title="Dropdown menu"
215
+ <t t-name="kanban-menu">
216
+ <div class="container">
217
+ <div class="row">
218
+ <div
219
+ class="col-6 mk_directory_kanban_views o_kanban_card_manage_section o_kanban_manage_view"
226
220
  >
227
- <span class="fa fa-ellipsis-v" />
228
- </a>
229
- <div class="dropdown-menu" role="menu">
230
- <div class="row">
231
- <div class="col-6 mk_directory_kanban_views">
232
- <h6 class="dropdown-header">Views
233
- </h6>
234
- <a
235
- type="object"
236
- name="action_dms_directories_all_directory"
237
- role="menuitem"
238
- class="dropdown-item"
239
- >
240
- <i class="fa fa-folder-o" />
241
- Directories
242
- </a>
243
- <a
244
- type="object"
245
- name="action_dms_files_all_directory"
246
- role="menuitem"
247
- class="dropdown-item"
248
- >
249
- <i class="fa fa-file-o" />
250
- Files
251
- </a>
252
- </div>
253
- <div
254
- class="col-6 border-left mk_directory_kanban_actions"
255
- >
256
- <h6 class="dropdown-header">
257
- Actions
258
- </h6>
259
- <a
260
- role="menuitem"
261
- type="open"
262
- class="dropdown-item"
263
- >
264
- <i class="fa fa-external-link" />
265
- Open
266
- </a>
267
- <a
268
- t-if="record.permission_write.raw_value"
269
- role="menuitem"
270
- type="edit"
271
- class="dropdown-item"
272
- >
273
- <i class="fa fa-pencil-square-o" />
274
- Edit
275
- </a>
276
- <a
277
- t-if="record.permission_unlink.raw_value"
278
- role="menuitem"
279
- type="delete"
280
- class="dropdown-item"
281
- >
282
- <i class="fa fa-trash-o" />
283
- Delete
284
- </a>
285
- </div>
286
- </div>
287
- <div
288
- t-if="record.permission_write.raw_value"
289
- class="row"
290
- >
291
- <div role="menuitem" class="col-12">
292
- <ul
293
- class="oe_kanban_colorpicker"
294
- data-field="color"
295
- />
296
- </div>
297
- </div>
298
- </div>
299
- </div>
300
- <div class="oe_kanban_content">
301
- <div class="mk_directory_kanban_actions">
302
- <div class="mk_directory_kanban_actions_wrapper">
221
+ <h5
222
+ role="menuitem"
223
+ class="o_kanban_card_manage_title"
224
+ >Views</h5>
225
+ <div role="menuitem">
303
226
  <a
304
227
  type="object"
305
228
  name="action_dms_directories_all_directory"
306
- role="button"
307
- class="btn btn-sm btn-outline-primary mk_directory_kanban_directories"
308
- t-att-title="record.count_directories_title.raw_value"
309
229
  >
310
- <i class="fa fa-xs fa-folder" />
311
- <span
312
- class="total_items"
313
- t-esc="record.count_total_directories.raw_value"
314
- />
230
+ <i class="fa fa-folder-o" />
231
+ Directories
315
232
  </a>
233
+ </div>
234
+ <div role="menuitem">
316
235
  <a
317
236
  type="object"
318
237
  name="action_dms_files_all_directory"
319
- role="button"
320
- class="btn btn-sm btn-outline-primary mk_directory_kanban_files"
321
- t-att-title="record.count_files_title.raw_value"
322
238
  >
323
- <i class="fa fa-xs fa-file" />
324
- <span
325
- class="total_items"
326
- t-esc="record.count_total_files.raw_value"
327
- />
239
+ <i class="fa fa-file-o" />
240
+ Files
328
241
  </a>
329
242
  </div>
330
243
  </div>
331
- <div class="o_kanban_image">
332
- <div class="o_kanban_image_wrapper">
333
- <img
334
- t-att-src="record.icon_url.raw_value"
335
- alt="Icon"
336
- />
244
+ <div
245
+ class="col-6 border-left mk_directory_kanban_actions o_kanban_card_manage_section"
246
+ >
247
+ <h5
248
+ role="menuitem"
249
+ class="o_kanban_card_manage_title"
250
+ >Actions</h5>
251
+ <div role="menuitem">
252
+ <a type="open">
253
+ <i class="fa fa-external-link" />
254
+ Open
255
+ </a>
256
+ </div>
257
+ <div
258
+ role="menuitem"
259
+ t-if="record.permission_write.raw_value"
260
+ >
261
+ <a type="edit">
262
+ <i class="fa fa-pencil-square-o" />
263
+ Edit
264
+ </a>
265
+ </div>
266
+ <div
267
+ role="menuitem"
268
+ t-if="record.permission_unlink.raw_value"
269
+ >
270
+ <a type="delete">
271
+ <i class="fa fa-trash-o" />
272
+ Delete
273
+ </a>
337
274
  </div>
338
275
  </div>
276
+ </div>
277
+ <div class="o_kanban_card_manage_settings row">
278
+ <div
279
+ t-if="record.permission_write.raw_value"
280
+ role="menuitem"
281
+ aria-haspopup="true"
282
+ >
283
+ <ul
284
+ class="oe_kanban_colorpicker"
285
+ data-field="color"
286
+ role="popup"
287
+ />
288
+ </div>
289
+ </div>
290
+ </div>
291
+ </t>
292
+ <t t-name="kanban-box">
293
+ <div
294
+ t-attf-class="#{kanban_color(record.color.raw_value)} o_kanban_wrapper oe_kanban_global_click oe_kanban_content oe_kanban_card row g-0"
295
+ >
296
+ <div class="col-1 h-100">
297
+ <div class="h-50">
298
+ <a
299
+ type="object"
300
+ name="action_dms_directories_all_directory"
301
+ role="button"
302
+ class="btn btn-sm btn-outline-primary o_dms_directory_btn"
303
+ t-att-title="record.count_directories_title.raw_value"
304
+ >
305
+ <i class="fa fa-xs fa-folder" />
306
+ <span
307
+ class="total_items"
308
+ t-esc="record.count_total_directories.raw_value"
309
+ />
310
+ </a>
311
+ </div>
312
+ <div class="h-50">
313
+ <a
314
+ type="object"
315
+ name="action_dms_files_all_directory"
316
+ role="button"
317
+ class="btn btn-sm btn-outline-primary o_dms_directory_btn"
318
+ t-att-title="record.count_files_title.raw_value"
319
+ >
320
+ <i class="fa fa-xs fa-file" />
321
+ <span
322
+ class="total_items"
323
+ t-esc="record.count_total_files.raw_value"
324
+ />
325
+ </a>
326
+ </div>
327
+ </div>
328
+ <div class="col-3 h-100">
329
+ <img
330
+ t-att-src="record.icon_url.raw_value"
331
+ alt="Icon"
332
+ class="h-100"
333
+ />
334
+ </div>
335
+ <div class="col-8">
339
336
  <div class="o_kanban_details">
340
- <div class="o_kanban_details_wrapper">
341
- <div
342
- class="o_kanban_record_title o_text_overflow"
343
- >
344
- <field name="name" />
345
- </div>
346
- <div class="o_kanban_record_body">
347
- <field
348
- name="tag_ids"
349
- widget="many2many_tags"
350
- options="{'color_field': 'color'}"
337
+ <div class="o_kanban_record_title o_text_overflow">
338
+ <field name="name" />
339
+ </div>
340
+ <div class="o_kanban_record_body">
341
+ <field
342
+ name="tag_ids"
343
+ widget="many2many_tags"
344
+ options="{'color_field': 'color'}"
345
+ />
346
+ <field name="write_date" widget="date" />
347
+ </div>
348
+ <div class="o_kanban_record_bottom">
349
+ <div class="oe_kanban_bottom_left" />
350
+ <div class="oe_kanban_bottom_right">
351
+ <a
352
+ role="button"
353
+ type="object"
354
+ name="toggle_starred"
355
+ t-attf-class="fa fa-lg fa-star#{record.starred.raw_value ? ' favorite_sign_button_enabled' : '-o'} favorite_sign_button"
356
+ title="Starred"
357
+ />
358
+ <img
359
+ t-att-src="kanban_image('res.users', 'image_128', record.create_uid.raw_value)"
360
+ t-att-title="record.create_uid.value"
361
+ t-att-alt="record.create_uid.value"
362
+ class="oe_kanban_avatar"
351
363
  />
352
- </div>
353
- <div class="o_kanban_record_bottom">
354
- <div class="oe_kanban_bottom_left">
355
- <field
356
- name="write_date"
357
- widget="date"
358
- />
359
- </div>
360
- <div class="oe_kanban_bottom_right">
361
- <a
362
- role="button"
363
- type="object"
364
- name="toggle_starred"
365
- t-attf-class="fa fa-lg fa-star#{record.starred.raw_value ? ' favorite_sign_button_enabled' : '-o'} favorite_sign_button"
366
- title="Starred"
367
- />
368
- <img
369
- t-att-src="kanban_image('res.users', 'image_128', record.create_uid.raw_value)"
370
- t-att-title="record.create_uid.value"
371
- t-att-alt="record.create_uid.value"
372
- class="oe_kanban_avatar"
373
- />
374
- </div>
375
364
  </div>
376
365
  </div>
377
366
  </div>
@@ -443,6 +432,7 @@
443
432
  <field name="name" placeholder="My Documents" />
444
433
  </h1>
445
434
  <h4>
435
+ <label for="complete_name" class="oe_edit_only" />
446
436
  <field name="complete_name" />
447
437
  </h4>
448
438
  </div>
@@ -460,24 +450,30 @@
460
450
  <field
461
451
  name="storage_id"
462
452
  options="{'no_open': True}"
463
- attrs="{'readonly':[('is_root_directory','=',False)], 'required':[('is_root_directory','=',True)]}"
453
+ readonly="not is_root_directory"
454
+ required="is_root_directory"
464
455
  force_save="1"
465
456
  groups="!dms.group_dms_manager"
466
457
  />
467
458
  <field
468
459
  name="storage_id"
469
460
  options="{}"
470
- attrs="{'readonly':[('is_root_directory','=',False)], 'required':[('is_root_directory','=',True)]}"
461
+ readonly="not is_root_directory"
462
+ required="is_root_directory"
471
463
  force_save="1"
472
464
  groups="dms.group_dms_manager"
473
465
  />
474
466
  </group>
475
467
  <group>
476
- <field name="inherit_group_ids" />
468
+ <field
469
+ name="inherit_group_ids"
470
+ invisible="is_root_directory"
471
+ />
477
472
  <field
478
473
  name="parent_id"
479
474
  options="{'no_quick_create': True}"
480
- attrs="{'invisible':[('is_root_directory','=',True)], 'required':[('is_root_directory','=',False)]}"
475
+ invisible="is_root_directory"
476
+ required="not is_root_directory"
481
477
  />
482
478
  </group>
483
479
  </group>
@@ -510,25 +506,27 @@
510
506
  <field name="allowed_model_ids" invisible="True" />
511
507
  <field
512
508
  name="model_id"
513
- attrs="{'invisible': [('storage_id_save_type', '!=', 'attachment')], 'readonly': [('count_total_files', '>', 0)], 'required': [('storage_id_save_type','=','attachment')]}"
509
+ invisible="storage_id_save_type != 'attachment'"
510
+ readonly="count_total_files > 0"
511
+ required="storage_id_save_type == 'attachment'"
514
512
  />
515
513
  <field name="res_model" invisible="1" force_save="1" />
516
514
  <field
517
515
  name="res_id"
518
516
  readonly="True"
519
- attrs="{'invisible': [('storage_id_save_type', '!=', 'attachment')]}"
517
+ invisible="storage_id_save_type != 'attachment'"
520
518
  />
521
519
  <field
522
520
  name="record_ref"
523
- attrs="{'invisible': [('storage_id_save_type', '!=', 'attachment')]}"
521
+ invisible="storage_id_save_type != 'attachment'"
524
522
  />
525
523
  </group>
526
524
  <notebook>
527
525
  <page name="page_directories" string="Subdirectories">
528
526
  <field
529
527
  name="child_directory_ids"
530
- context="{'default_parent_id': active_id, 'mail_create_nolog': True}"
531
- attrs="{'readonly':[('permission_create','=',False)]}"
528
+ context="{'default_parent_id': id, 'mail_create_nolog': True}"
529
+ readonly="not permission_create"
532
530
  >
533
531
  <tree limit="10">
534
532
  <field name="name" />
@@ -544,8 +542,8 @@
544
542
  <page name="page_files" string="Files">
545
543
  <field
546
544
  name="file_ids"
547
- context="{'default_directory_id': active_id, 'mail_create_nolog': True}"
548
- attrs="{'readonly':[('permission_create','=',False)]}"
545
+ context="{'default_directory_id': id, 'mail_create_nolog': True}"
546
+ readonly="not permission_create"
549
547
  >
550
548
  <tree limit="10">
551
549
  <field name="name" />
@@ -581,7 +579,7 @@
581
579
  </page>
582
580
  <page
583
581
  string="Groups"
584
- attrs="{'invisible':[('storage_id_save_type', '=', 'attachment'),('storage_id_inherit_access_from_parent_record', '=', True)]}"
582
+ invisible="storage_id_save_type == 'attachment' and storage_id_inherit_access_from_parent_record"
585
583
  >
586
584
  <field name="group_ids">
587
585
  <tree>
@@ -594,7 +592,7 @@
594
592
  </page>
595
593
  <page
596
594
  string="Complete Groups"
597
- attrs="{'invisible':[('storage_id_save_type', '=', 'attachment'),('storage_id_inherit_access_from_parent_record', '=', True)]}"
595
+ invisible="storage_id_save_type == 'attachment' and storage_id_inherit_access_from_parent_record"
598
596
  >
599
597
  <field name="complete_group_ids">
600
598
  <tree>
@@ -662,13 +660,6 @@
662
660
  </p>
663
661
  </field>
664
662
  </record>
665
- <menuitem
666
- id="menu_dms_directory"
667
- name="Directories"
668
- sequence="30"
669
- parent="main_menu_dms"
670
- action="action_dms_directory"
671
- />
672
663
  <record id="view_dms_directory_new_form" model="ir.ui.view">
673
664
  <field name="name">dms_directory.form</field>
674
665
  <field name="model">dms.directory</field>
@@ -702,7 +693,8 @@
702
693
  <field
703
694
  name="storage_id"
704
695
  options="{'no_quick_create': True}"
705
- attrs="{'readonly':[('is_root_directory','=',False)], 'required':[('is_root_directory','=',True)]}"
696
+ readonly="not is_root_directory"
697
+ required="is_root_directory"
706
698
  force_save="1"
707
699
  />
708
700
  </group>