odoo-addon-dms 17.0.1.2.0__py3-none-any.whl → 18.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 (59) hide show
  1. odoo/addons/dms/README.rst +69 -62
  2. odoo/addons/dms/__manifest__.py +1 -5
  3. odoo/addons/dms/data/onboarding_data.xml +0 -1
  4. odoo/addons/dms/i18n/de.po +0 -203
  5. odoo/addons/dms/i18n/dms.pot +51 -55
  6. odoo/addons/dms/i18n/es.po +0 -214
  7. odoo/addons/dms/i18n/fr.po +0 -45
  8. odoo/addons/dms/i18n/he_IL.po +0 -139
  9. odoo/addons/dms/i18n/it.po +0 -219
  10. odoo/addons/dms/i18n/nl.po +0 -6
  11. odoo/addons/dms/i18n/pt.po +0 -215
  12. odoo/addons/dms/i18n/pt_BR.po +0 -201
  13. odoo/addons/dms/models/access_groups.py +9 -8
  14. odoo/addons/dms/models/directory.py +21 -23
  15. odoo/addons/dms/models/dms_category.py +2 -2
  16. odoo/addons/dms/models/dms_file.py +15 -16
  17. odoo/addons/dms/models/dms_security_mixin.py +46 -20
  18. odoo/addons/dms/models/ir_binary.py +2 -2
  19. odoo/addons/dms/models/mixins_thumbnail.py +1 -1
  20. odoo/addons/dms/models/storage.py +3 -3
  21. odoo/addons/dms/readme/CONTRIBUTORS.md +2 -0
  22. odoo/addons/dms/readme/ROADMAP.md +2 -0
  23. odoo/addons/dms/static/description/index.html +13 -6
  24. odoo/addons/dms/static/src/js/fields/path_json/path_owl.esm.js +5 -5
  25. odoo/addons/dms/static/src/js/fields/preview_binary/preview_record.esm.js +2 -4
  26. odoo/addons/dms/static/src/js/views/dms_file_upload.esm.js +2 -5
  27. odoo/addons/dms/static/src/js/views/file_kanban_controller.esm.js +0 -2
  28. odoo/addons/dms/static/src/js/views/file_kanban_record.esm.js +0 -2
  29. odoo/addons/dms/static/src/js/views/file_kanban_renderer.esm.js +0 -2
  30. odoo/addons/dms/static/src/js/views/file_kanban_view.esm.js +0 -2
  31. odoo/addons/dms/static/src/js/views/file_list_controller.esm.js +0 -2
  32. odoo/addons/dms/static/src/js/views/file_list_renderer.esm.js +0 -2
  33. odoo/addons/dms/static/src/js/views/file_list_view.esm.js +0 -2
  34. odoo/addons/dms/static/src/js/views/search_panel.esm.js +1 -5
  35. odoo/addons/dms/static/src/models/attachment.esm.js +0 -2
  36. odoo/addons/dms/static/src/models/attachment_image.esm.js +0 -2
  37. odoo/addons/dms/static/src/models/attachment_viewer_viewable.esm.js +0 -2
  38. odoo/addons/dms/static/tests/tours/dms_portal_tour.esm.js +3 -7
  39. odoo/addons/dms/template/portal.xml +8 -6
  40. odoo/addons/dms/tests/common.py +9 -10
  41. odoo/addons/dms/tests/test_benchmark.py +19 -1
  42. odoo/addons/dms/tests/test_directory.py +8 -5
  43. odoo/addons/dms/tests/test_file_database.py +1 -1
  44. odoo/addons/dms/tests/test_portal.py +16 -17
  45. odoo/addons/dms/views/dms_access_groups_views.xml +13 -13
  46. odoo/addons/dms/views/dms_category.xml +5 -5
  47. odoo/addons/dms/views/dms_directory.xml +101 -110
  48. odoo/addons/dms/views/dms_file.xml +66 -84
  49. odoo/addons/dms/views/dms_tag.xml +14 -33
  50. odoo/addons/dms/views/menu.xml +22 -13
  51. odoo/addons/dms/views/storage.xml +189 -193
  52. odoo/addons/dms/wizards/wizard_dms_file_move_views.xml +1 -1
  53. {odoo_addon_dms-17.0.1.2.0.dist-info → odoo_addon_dms-18.0.1.0.0.2.dist-info}/METADATA +72 -65
  54. {odoo_addon_dms-17.0.1.2.0.dist-info → odoo_addon_dms-18.0.1.0.0.2.dist-info}/RECORD +56 -59
  55. odoo/addons/dms/static/src/scss/directory_kanban.scss +0 -53
  56. odoo/addons/dms/static/src/scss/dms_common.scss +0 -69
  57. odoo/addons/dms/static/src/scss/file_kanban.scss +0 -70
  58. {odoo_addon_dms-17.0.1.2.0.dist-info → odoo_addon_dms-18.0.1.0.0.2.dist-info}/WHEEL +0 -0
  59. {odoo_addon_dms-17.0.1.2.0.dist-info → odoo_addon_dms-18.0.1.0.0.2.dist-info}/top_level.txt +0 -0
@@ -93,6 +93,7 @@
93
93
  js_class="file_kanban"
94
94
  class="mk_file_kanban_view o_kanban_small_column o_kanban_mobile"
95
95
  banner_route="/onboarding/document_onboarding_file"
96
+ highlight_color="color"
96
97
  >
97
98
  <field name="id" />
98
99
  <field name="tag_ids" />
@@ -110,12 +111,10 @@
110
111
  <field name="permission_unlink" />
111
112
  <field name="write_date" />
112
113
  <templates>
113
- <t t-name="kanban-menu">
114
+ <t t-name="menu">
114
115
  <div class="container">
115
116
  <div class="row">
116
- <div
117
- class="col-6 o_kanban_card_manage_section o_kanban_manage_view"
118
- >
117
+ <div name="card_menu_Operations" class="col-6">
119
118
  <h5
120
119
  role="menuitem"
121
120
  class="o_kanban_card_manage_title"
@@ -167,7 +166,7 @@
167
166
  </a>
168
167
  </div>
169
168
  </div>
170
- <div class="col-6 o_kanban_card_manage_section">
169
+ <div class="col-6 o_kanban_manage_actions">
171
170
  <h5
172
171
  role="menuitem"
173
172
  class="o_kanban_card_manage_title"
@@ -200,72 +199,67 @@
200
199
  </div>
201
200
  </div>
202
201
  </div>
203
- <div class="o_kanban_card_manage_settings row">
202
+ <div class="o_kanban_card_manage_actions row">
204
203
  <div
205
- t-if="record.permission_write.raw_value"
206
204
  role="menuitem"
207
205
  aria-haspopup="true"
206
+ class="col-6"
207
+ t-if="record.permission_write.raw_value"
208
208
  >
209
- <ul
210
- class="oe_kanban_colorpicker"
211
- data-field="color"
212
- role="popup"
213
- />
209
+ <field name="color" widget="kanban_color_picker" />
214
210
  </div>
215
211
  </div>
216
212
  </div>
217
213
  </t>
218
- <t t-name="kanban-box">
219
- <div
220
- t-attf-class="#{kanban_color(record.color.raw_value)} oe_kanban_global_click oe_kanban_content oe_kanban_card row g-0"
221
- >
222
- <div class="col-3 h-100">
223
- <a
224
- class="h-100 d-block o_kanban_dms_file_preview"
225
- t-att-data-id="record.id.raw_value"
226
- t-att-id="record.id.raw_value"
227
- t-att-name="record.name.raw_value"
228
- >
229
- <img
230
- t-att-src="record.icon_url.raw_value"
231
- alt="Icon"
232
- />
233
- </a>
234
- </div>
235
- <div class="col-9">
236
- <div class="o_kanban_details">
237
- <h5 class="o_kanban_record_title o_text_overflow">
238
- <field name="name" />
239
- </h5>
240
- <div class="o_kanban_record_body">
241
- <field
242
- name="tag_ids"
243
- widget="many2many_tags"
244
- options="{'color_field': 'color'}"
214
+ <t t-name="card" class="flex-row">
215
+ <main>
216
+ <div
217
+ t-attf-class="oe_kanban_global_click oe_kanban_content row g-0"
218
+ >
219
+ <div class="col-3">
220
+ <a
221
+ class="h-100 d-block o_kanban_dms_file_preview"
222
+ t-att-data-id="record.id.raw_value"
223
+ t-att-id="record.id.raw_value"
224
+ t-att-name="record.name.raw_value"
225
+ >
226
+ <img
227
+ t-att-src="record.icon_url.raw_value"
228
+ style="height:70px;"
229
+ alt="Icon"
245
230
  />
246
- <field name="write_date" widget="date" />
247
- </div>
248
- <div class="o_kanban_record_bottom">
249
- <div class="oe_kanban_bottom_right">
250
- <span
251
- t-if="record.is_locked.raw_value"
252
- class="o_dms_file_kanban_lock"
253
- >
254
- <i
255
- t-attf-class="fa #{(record.is_locked.raw_value and !record.is_lock_editor.raw_value) ? 'fa-lock' : ''} #{((record.is_locked.raw_value and record.is_lock_editor.raw_value)) ? 'fa-unlock-alt' : ''}"
256
- t-att-title="record.locked_by.value"
257
- />
258
- </span>
259
- <img
260
- t-att-src="kanban_image('res.users', 'image_128', record.create_uid.raw_value)"
261
- t-att-alt="record.create_uid.value"
262
- class="oe_kanban_avatar"
231
+ </a>
232
+ </div>
233
+ <div class="col-9">
234
+ <field name="name" class="text-truncate fw-bold" />
235
+ <field
236
+ name="tag_ids"
237
+ widget="many2many_tags"
238
+ options="{'color_field': 'color'}"
239
+ />
240
+ <field name="write_date" widget="date" />
241
+ </div>
242
+ <footer class="mt-auto pt-0 ms-1">
243
+ <div class="d-flex ms-auto oe_kanban_bottom_right">
244
+ <span
245
+ t-if="record.is_locked.raw_value"
246
+ class="o_dms_file_kanban_lock"
247
+ >
248
+ <i
249
+ t-attf-class="fa #{(record.is_locked.raw_value and !record.is_lock_editor.raw_value) ? 'fa-lock' : ''} #{((record.is_locked.raw_value and record.is_lock_editor.raw_value)) ? 'fa-unlock-alt' : ''}"
250
+ t-att-title="record.locked_by.value"
263
251
  />
264
- </div>
252
+ </span>
253
+ <img
254
+ t-attf-src="/web/image/res.users/#{record.create_uid.raw_value}/avatar_128"
255
+ t-att-alt="record.create_uid.value"
256
+ class="oe_kanban_avatar"
257
+ style="max-width:20px;"
258
+ />
265
259
  </div>
266
- </div>
260
+ </footer>
267
261
  </div>
268
- </div>
262
+ </main>
269
263
  </t>
270
264
  </templates>
271
265
  </kanban>
@@ -289,10 +283,10 @@
289
283
  </field>
290
284
  </record>
291
285
  <record id="view_dms_file_tree" model="ir.ui.view">
292
- <field name="name">dms_file.tree</field>
286
+ <field name="name">dms_file.list</field>
293
287
  <field name="model">dms.file</field>
294
288
  <field name="arch" type="xml">
295
- <tree
289
+ <list
296
290
  js_class="file_list"
297
291
  decoration-warning="not active"
298
292
  decoration-muted="(is_locked and not is_lock_editor)"
@@ -314,7 +308,7 @@
314
308
  widget="many2many_tags"
315
309
  options="{'color_field': 'color', 'no_create_edit': True}"
316
310
  />
317
- </tree>
311
+ </list>
318
312
  </field>
319
313
  </record>
320
314
  <record id="view_dms_file_graph" model="ir.ui.view">
@@ -404,12 +398,7 @@
404
398
  </div>
405
399
  <group name="content">
406
400
  <group>
407
- <field
408
- name="content"
409
- filename="name"
410
- mimetype="mimetype"
411
- widget="preview_binary"
412
- />
401
+ <field name="content" filename="name" />
413
402
  </group>
414
403
  <group>
415
404
  <field name="extension" />
@@ -493,26 +482,20 @@
493
482
  groups="dms.group_dms_manager,base.group_no_one"
494
483
  >
495
484
  <group name="technical">
496
- <group name="technical_left">
497
- </group>
498
- <group name="technical_right">
499
- </group>
485
+ <group name="technical_left" />
486
+ <group name="technical_right" />
500
487
  </group>
501
488
  </page>
502
489
  </notebook>
503
490
  </sheet>
504
- <div class="oe_chatter">
505
- <field name="message_follower_ids" />
506
- <field name="activity_ids" />
507
- <field name="message_ids" />
508
- </div>
491
+ <chatter />
509
492
  </form>
510
493
  </field>
511
494
  </record>
512
495
  <record id="action_dms_file" model="ir.actions.act_window">
513
496
  <field name="name">Files</field>
514
497
  <field name="res_model">dms.file</field>
515
- <field name="view_mode">kanban,tree,graph,pivot,form</field>
498
+ <field name="view_mode">kanban,list,graph,pivot,form</field>
516
499
  <field name="domain">[("is_hidden", "=", False)]</field>
517
500
  <field name="help" type="html">
518
501
  <p class="o_view_nocontent_smiling_face">
@@ -567,10 +550,10 @@
567
550
  </field>
568
551
  </record>
569
552
  <record id="view_dms_file_migration_tree" model="ir.ui.view">
570
- <field name="name">dms_file.tree</field>
553
+ <field name="name">dms_file.list</field>
571
554
  <field name="model">dms.file</field>
572
555
  <field name="arch" type="xml">
573
- <tree
556
+ <list
574
557
  decoration-muted="(is_locked and not is_lock_editor)"
575
558
  create="0"
576
559
  delete="0"
@@ -583,13 +566,13 @@
583
566
  <field name="mimetype" />
584
567
  <field name="storage_id" />
585
568
  <field name="migration" />
586
- </tree>
569
+ </list>
587
570
  </field>
588
571
  </record>
589
572
  <record id="action_dms_file_migration" model="ir.actions.act_window">
590
573
  <field name="name">Files</field>
591
574
  <field name="res_model">dms.file</field>
592
- <field name="view_mode">tree</field>
575
+ <field name="view_mode">list</field>
593
576
  <field name="search_view_id" ref="search_dms_file_migration" />
594
577
  <field
595
578
  name="domain"
@@ -598,7 +581,7 @@
598
581
  <field name="context">{'search_default_group_storage': 1}</field>
599
582
  <field
600
583
  name="view_ids"
601
- eval="[(5, 0, 0), (0, 0, {'view_mode': 'tree', 'view_id': ref('view_dms_file_migration_tree')})]"
584
+ eval="[(5, 0, 0), (0, 0, {'view_mode': 'list', 'view_id': ref('view_dms_file_migration_tree')})]"
602
585
  />
603
586
  <field name="help" type="html">
604
587
  <p class="o_view_nocontent_smiling_face">
@@ -652,5 +635,4 @@
652
635
  action = model.action_wizard_dms_file_move()
653
636
  </field>
654
637
  </record>
655
-
656
638
  </odoo>
@@ -39,20 +39,12 @@
39
39
  <field name="name">dms_tag.kanban</field>
40
40
  <field name="model">dms.tag</field>
41
41
  <field name="arch" type="xml">
42
- <kanban class="o_kanban_small_column" group_create="false">
43
- <field name="name" />
44
- <field name="color" />
42
+ <kanban highlight_color="color" group_create="false">
45
43
  <templates>
46
- <t t-name="kanban-menu">
44
+ <t t-name="menu">
47
45
  <div class="container">
48
46
  <div class="row">
49
- <div class="col o_kanban_card_manage_section">
50
- <h5
51
- role="menuitem"
52
- class="o_kanban_card_manage_title"
53
- >
54
- <span>Actions</span>
55
- </h5>
47
+ <div name="card_menu_view">
56
48
  <div role="menuitem">
57
49
  <a type="open">
58
50
  <i class="fa fa-external-link" />
@@ -74,26 +66,15 @@
74
66
  </div>
75
67
  </div>
76
68
  <div class="o_kanban_card_manage_settings row">
77
- <div role="menuitem" aria-haspopup="true">
78
- <ul
79
- class="oe_kanban_colorpicker"
80
- data-field="color"
81
- role="popup"
82
- />
69
+ <div role="menuitem" aria-haspopup="true" class="col-6">
70
+ <field name="color" widget="kanban_color_picker" />
83
71
  </div>
84
72
  </div>
85
73
  </div>
86
74
  </t>
87
- <t t-name="kanban-box">
88
- <div
89
- t-attf-class="#{kanban_color(record.color.raw_value)} oe_kanban_global_click oe_kanban_content oe_kanban_card"
90
- >
91
- <div class="o_kanban_details">
92
- <div class="o_kanban_record_title">
93
- <h2><field name="name" /></h2>
94
- </div>
95
- <div class="o_kanban_record_body" />
96
- </div>
75
+ <t t-name="card">
76
+ <div>
77
+ <field name="name" />
97
78
  </div>
98
79
  </t>
99
80
  </templates>
@@ -101,14 +82,14 @@
101
82
  </field>
102
83
  </record>
103
84
  <record id="view_dms_tag_tree" model="ir.ui.view">
104
- <field name="name">dms_tag.tree</field>
85
+ <field name="name">dms_tag.list</field>
105
86
  <field name="model">dms.tag</field>
106
87
  <field name="arch" type="xml">
107
- <tree>
88
+ <list>
108
89
  <field name="name" />
109
90
  <field name="category_id" />
110
91
  <field name="color" widget="color_picker" />
111
- </tree>
92
+ </list>
112
93
  </field>
113
94
  </record>
114
95
  <record id="view_dms_tag_form" model="ir.ui.view">
@@ -143,10 +124,10 @@
143
124
  </group>
144
125
  <notebook>
145
126
  <page string="Directories">
146
- <field name="directory_ids" widget="one2many" mode="tree" />
127
+ <field name="directory_ids" widget="one2many" mode="list" />
147
128
  </page>
148
129
  <page string="Files">
149
- <field name="file_ids" widget="one2many" mode="tree" />
130
+ <field name="file_ids" widget="one2many" mode="list" />
150
131
  </page>
151
132
  </notebook>
152
133
  </sheet>
@@ -156,7 +137,7 @@
156
137
  <record id="action_dms_tag" model="ir.actions.act_window">
157
138
  <field name="name">Tags</field>
158
139
  <field name="res_model">dms.tag</field>
159
- <field name="view_mode">kanban,tree,form</field>
140
+ <field name="view_mode">kanban,list,form</field>
160
141
  <field name="context">{'search_default_group_by_category': 1}</field>
161
142
  <field name="help" type="html">
162
143
  <p class="o_view_nocontent_smiling_face">
@@ -7,59 +7,68 @@
7
7
 
8
8
  -->
9
9
  <odoo>
10
- <menuitem
10
+ <menuitem
11
11
  id="main_menu_dms"
12
12
  name="Documents"
13
13
  web_icon="dms,static/description/icon.png"
14
14
  groups="group_dms_user"
15
15
  >
16
- <menuitem id="menu_dms_file" name="Files" sequence="20" action="action_dms_file" />
17
- <menuitem
16
+ <menuitem
17
+ id="menu_dms_file"
18
+ name="Files"
19
+ sequence="20"
20
+ action="action_dms_file"
21
+ />
22
+ <menuitem
18
23
  id="menu_dms_directory"
19
24
  name="Directories"
20
25
  sequence="30"
21
26
  action="action_dms_directory"
22
27
  />
23
- <menuitem id="cat_menu_dms_config" name="Configuration" sequence="50">
24
- <menuitem
28
+ <menuitem id="cat_menu_dms_config" name="Configuration" sequence="50">
29
+ <menuitem
25
30
  id="menu_dms_settings_general"
26
31
  name="General Settings"
27
32
  sequence="0"
28
33
  action="action_dms_settings_general"
29
34
  groups="base.group_system"
30
35
  />
31
- <menuitem id="cat_menu_dms_config_organizing" name="Organizing" sequence="5">
32
- <menuitem id="menu_dms_tag" name="Tags" action="action_dms_tag" />
33
36
  <menuitem
37
+ id="cat_menu_dms_config_organizing"
38
+ name="Organizing"
39
+ sequence="5"
40
+ >
41
+ <menuitem id="menu_dms_tag" name="Tags" action="action_dms_tag" />
42
+ <menuitem
34
43
  id="menu_dms_category"
35
44
  name="Categories"
36
45
  action="action_dms_category"
37
46
  />
38
- </menuitem>
39
- <menuitem
47
+ </menuitem>
48
+ <menuitem
40
49
  id="cat_menu_dms_config_system"
41
50
  name="System"
42
51
  groups="dms.group_dms_manager"
43
52
  sequence="25"
44
53
  >
45
- <menuitem
54
+ <menuitem
46
55
  id="menu_dms_storage"
47
56
  name="Storages"
48
57
  action="action_dms_storage"
49
58
  sequence="5"
50
59
  />
51
- <menuitem
60
+ <menuitem
52
61
  id="menu_dms_file_migration"
53
62
  name="Migration"
54
63
  action="action_dms_file_migration"
55
64
  sequence="8"
56
65
  />
57
- <menuitem
66
+ <menuitem
58
67
  id="menu_dms_access_groups"
59
68
  name="Access Groups"
60
69
  action="action_dms_access_groups"
61
70
  />
71
+ </menuitem>
62
72
  </menuitem>
63
73
  </menuitem>
64
- </menuitem>
65
74
  </odoo>