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.
- odoo/addons/dms/README.rst +132 -78
- odoo/addons/dms/__manifest__.py +34 -16
- odoo/addons/dms/actions/file.xml +1 -3
- odoo/addons/dms/controllers/main.py +0 -34
- odoo/addons/dms/controllers/portal.py +178 -92
- odoo/addons/dms/data/onboarding_data.xml +77 -0
- odoo/addons/dms/demo/access_group.xml +3 -9
- odoo/addons/dms/i18n/de.po +13 -117
- odoo/addons/dms/i18n/dms.pot +137 -174
- odoo/addons/dms/i18n/es.po +15 -58
- odoo/addons/dms/i18n/fr.po +296 -450
- odoo/addons/dms/i18n/he_IL.po +13 -117
- odoo/addons/dms/i18n/it.po +15 -131
- odoo/addons/dms/i18n/nl.po +13 -117
- odoo/addons/dms/i18n/pt.po +13 -121
- odoo/addons/dms/i18n/pt_BR.po +28 -147
- odoo/addons/dms/i18n/ru.po +13 -117
- odoo/addons/dms/models/__init__.py +7 -1
- odoo/addons/dms/models/abstract_dms_mixin.py +1 -1
- odoo/addons/dms/models/access_groups.py +18 -11
- odoo/addons/dms/models/base.py +10 -2
- odoo/addons/dms/models/directory.py +46 -75
- odoo/addons/dms/models/{category.py → dms_category.py} +10 -42
- odoo/addons/dms/models/dms_file.py +125 -147
- odoo/addons/dms/models/dms_security_mixin.py +26 -22
- odoo/addons/dms/models/ir_attachment.py +0 -1
- odoo/addons/dms/models/ir_binary.py +19 -0
- odoo/addons/dms/models/mail_thread.py +2 -4
- odoo/addons/dms/models/mixins_thumbnail.py +13 -8
- odoo/addons/dms/models/onboarding_onboarding.py +16 -0
- odoo/addons/dms/models/onboarding_onboarding_step.py +50 -0
- odoo/addons/dms/models/res_company.py +22 -47
- odoo/addons/dms/models/res_config_settings.py +0 -1
- odoo/addons/dms/models/storage.py +4 -24
- odoo/addons/dms/models/tag.py +1 -1
- odoo/addons/dms/readme/CONFIGURE.md +59 -0
- odoo/addons/dms/readme/CONTRIBUTORS.md +14 -0
- odoo/addons/dms/readme/CREDITS.md +6 -0
- odoo/addons/dms/readme/DESCRIPTION.md +9 -0
- odoo/addons/dms/readme/INSTALL.md +4 -0
- odoo/addons/dms/readme/ROADMAP.md +19 -0
- odoo/addons/dms/readme/USAGE.md +11 -0
- odoo/addons/dms/security/security.xml +1 -0
- odoo/addons/dms/static/description/icon.png +0 -0
- odoo/addons/dms/static/description/icon.svg +4 -1
- odoo/addons/dms/static/description/index.html +133 -88
- odoo/addons/dms/static/description/portal_icon.svg +12 -0
- odoo/addons/dms/static/src/js/fields/{path_owl.esm.js → path_json/path_owl.esm.js} +22 -4
- odoo/addons/dms/static/src/js/fields/{path_owl.xml → path_json/path_owl.xml} +7 -4
- odoo/addons/dms/static/src/js/fields/preview_binary/preview_record.esm.js +47 -0
- odoo/addons/dms/static/src/js/{views/fields/binary → fields/preview_binary}/preview_record.xml +5 -4
- odoo/addons/dms/static/src/js/views/dms_file_upload.esm.js +155 -148
- odoo/addons/dms/static/src/js/views/file_kanban_controller.xml +0 -1
- odoo/addons/dms/static/src/js/views/file_kanban_record.esm.js +26 -27
- odoo/addons/dms/static/src/js/views/file_kanban_renderer.esm.js +1 -2
- odoo/addons/dms/static/src/js/views/file_kanban_renderer.xml +12 -16
- odoo/addons/dms/static/src/js/views/file_kanban_view.esm.js +11 -9
- odoo/addons/dms/static/src/js/views/file_list_controller.esm.js +1 -1
- odoo/addons/dms/static/src/js/views/file_list_renderer.xml +1 -7
- odoo/addons/dms/static/src/js/views/file_list_view.esm.js +11 -9
- odoo/addons/dms/static/src/js/views/search_panel.esm.js +9 -10
- odoo/addons/dms/static/src/models/attachment.esm.js +83 -82
- odoo/addons/dms/static/src/models/attachment_image.esm.js +30 -28
- odoo/addons/dms/static/src/models/attachment_viewer_viewable.esm.js +27 -25
- odoo/addons/dms/static/src/scss/directory_kanban.scss +28 -73
- odoo/addons/dms/static/src/scss/dms_common.scss +69 -0
- odoo/addons/dms/static/src/scss/file_kanban.scss +22 -34
- odoo/addons/dms/static/src/scss/portal.scss +12 -0
- odoo/addons/dms/static/tests/tours/dms_portal_tour.esm.js +46 -0
- odoo/addons/dms/{views/dms_portal_templates.xml → template/portal.xml} +13 -3
- odoo/addons/dms/tests/common.py +20 -4
- odoo/addons/dms/tests/data/mail01.eml +2 -2
- odoo/addons/dms/tests/data/mail02.eml +2 -2
- odoo/addons/dms/tests/test_benchmark.py +16 -21
- odoo/addons/dms/tests/test_directory.py +128 -40
- odoo/addons/dms/tests/test_file.py +112 -30
- odoo/addons/dms/tests/test_file_database.py +50 -24
- odoo/addons/dms/tests/test_portal.py +50 -37
- odoo/addons/dms/tests/test_storage_attachment.py +85 -63
- odoo/addons/dms/tests/test_storage_database.py +89 -35
- odoo/addons/dms/tools/file.py +63 -11
- odoo/addons/dms/views/dms_access_groups_views.xml +2 -17
- odoo/addons/dms/views/{category.xml → dms_category.xml} +4 -9
- odoo/addons/dms/views/{directory.xml → dms_directory.xml} +168 -176
- odoo/addons/dms/views/dms_file.xml +170 -191
- odoo/addons/dms/views/{tag.xml → dms_tag.xml} +50 -53
- odoo/addons/dms/views/menu.xml +52 -21
- odoo/addons/dms/views/res_config_settings.xml +31 -82
- odoo/addons/dms/views/storage.xml +7 -13
- odoo_addon_dms-17.0.1.0.0.2.dist-info/METADATA +257 -0
- {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
- {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
- odoo_addon_dms-17.0.1.0.0.2.dist-info/top_level.txt +1 -0
- odoo/addons/dms/i18n/fa.po +0 -2277
- odoo/addons/dms/i18n/fa_IR.po +0 -2277
- odoo/addons/dms/readme/CONFIGURE.rst +0 -40
- odoo/addons/dms/readme/CONTRIBUTORS.rst +0 -16
- odoo/addons/dms/readme/CREDITS.rst +0 -6
- odoo/addons/dms/readme/DESCRIPTION.rst +0 -6
- odoo/addons/dms/readme/INSTALL.rst +0 -9
- odoo/addons/dms/readme/ROADMAP.rst +0 -8
- odoo/addons/dms/readme/USAGE.rst +0 -8
- odoo/addons/dms/static/src/js/components/path/path.esm.js +0 -0
- odoo/addons/dms/static/src/js/dms_portal_tour.js +0 -57
- odoo/addons/dms/static/src/js/fields/path.js +0 -81
- odoo/addons/dms/static/src/js/views/fields/binary/preview_record.esm.js +0 -35
- odoo/addons/dms/static/src/js/views/many_drop_target.js +0 -98
- odoo/addons/dms/static/src/scss/variables.scss +0 -9
- odoo/addons/dms/static/src/xml/views.xml +0 -72
- odoo/addons/dms/template/assets.xml +0 -44
- odoo/addons/dms/template/onboarding.xml +0 -97
- odoo_addon_dms-16.0.1.8.0.5.dist-info/METADATA +0 -203
- odoo_addon_dms-16.0.1.8.0.5.dist-info/top_level.txt +0 -1
@@ -1,88 +1,89 @@
|
|
1
1
|
/** @odoo-module **/
|
2
2
|
|
3
|
-
|
4
|
-
|
3
|
+
// /** ********************************************************************************
|
4
|
+
// Copyright 2024 Subteno - Timothée Vannier (https://www.subteno.com).
|
5
|
+
// License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl).
|
6
|
+
// **********************************************************************************/
|
7
|
+
import {Attachment} from "@mail/core/common/attachment_model";
|
8
|
+
import {patch} from "@web/core/utils/patch";
|
5
9
|
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
10
|
+
patch(Attachment.prototype, {
|
11
|
+
_handleImage() {
|
12
|
+
if (this.model_name && this.model_name === "dms.file") {
|
13
|
+
return `/web/content?id=${this.id}&field=content&model=dms.file&filename_field=name&download=false`;
|
14
|
+
}
|
15
|
+
return `/web/image/${this.id}?signature=${this.checksum}`;
|
16
|
+
},
|
17
|
+
_handlePdf() {
|
18
|
+
if (this.model_name && this.model_name === "dms.file") {
|
19
|
+
return (
|
20
|
+
"/web/content?id=" +
|
21
|
+
this.id +
|
22
|
+
"&field=content&model=dms.file" +
|
23
|
+
"&filename_field=name"
|
24
|
+
);
|
25
|
+
}
|
26
|
+
const pdf_lib = `/web/static/lib/pdfjs/web/viewer.html?file=`;
|
27
|
+
if (
|
28
|
+
!this.accessToken &&
|
29
|
+
this.originThread &&
|
30
|
+
this.originThread.model === "mail.channel"
|
31
|
+
) {
|
32
|
+
return `${pdf_lib}/mail/channel/${this.originThread.id}/attachment/${this.id}#pagemode=none`;
|
33
|
+
}
|
34
|
+
const accessToken = this.accessToken
|
35
|
+
? `?access_token%3D${this.accessToken}`
|
36
|
+
: "";
|
37
|
+
return `${pdf_lib}/web/content/${this.id}${accessToken}#pagemode=none`;
|
38
|
+
},
|
39
|
+
_handleYoutube() {
|
40
|
+
const urlArr = this.url.split("/");
|
41
|
+
let token = urlArr[urlArr.length - 1];
|
42
|
+
if (token.includes("watch")) {
|
43
|
+
token = token.split("v=")[1];
|
44
|
+
const amp = token.indexOf("&");
|
45
|
+
if (amp !== -1) {
|
46
|
+
token = token.substring(0, amp);
|
47
|
+
}
|
48
|
+
}
|
49
|
+
return `https://www.youtube.com/embed/${token}`;
|
50
|
+
},
|
51
|
+
get defaultSource() {
|
52
|
+
if (this.isImage) {
|
53
|
+
return this._handleImage();
|
54
|
+
}
|
55
|
+
if (this.isPdf) {
|
56
|
+
return this._handlePdf();
|
57
|
+
}
|
58
|
+
if (this.isUrlYoutube) {
|
59
|
+
return this._handleYoutube();
|
60
|
+
}
|
61
|
+
if (
|
62
|
+
!this.accessToken &&
|
63
|
+
this.originThread &&
|
64
|
+
this.originThread.model === "mail.channel"
|
65
|
+
) {
|
66
|
+
return `/mail/channel/${this.originThread.id}/attachment/${this.id}`;
|
67
|
+
}
|
68
|
+
const accessToken = this.accessToken ? `?access_token=${this.accessToken}` : "";
|
61
69
|
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
}
|
81
|
-
const accessToken = this.accessToken
|
82
|
-
? `access_token=${this.accessToken}&`
|
83
|
-
: "";
|
84
|
-
return `/web/content/ir.attachment/${this.id}/datas?${accessToken}download=true`;
|
85
|
-
},
|
86
|
-
},
|
70
|
+
if (this.model_name && this.model_name === "dms.file") {
|
71
|
+
return `/web/content?id=${this.id}&field=content&model=dms.file&filename_field=name`;
|
72
|
+
}
|
73
|
+
return `/web/content/${this.id}${accessToken}`;
|
74
|
+
},
|
75
|
+
get downloadUrl() {
|
76
|
+
if (
|
77
|
+
!this.accessToken &&
|
78
|
+
this.originThread &&
|
79
|
+
this.originThread.model === "mail.channel"
|
80
|
+
) {
|
81
|
+
return `/mail/channel/${this.originThread.id}/attachment/${this.id}?download=true`;
|
82
|
+
}
|
83
|
+
if (this.model_name && this.model_name === "dms.file") {
|
84
|
+
return `/web/content?id=${this.id}&field=content&model=dms.file&filename_field=name&download=true`;
|
85
|
+
}
|
86
|
+
const accessToken = this.accessToken ? `access_token=${this.accessToken}&` : "";
|
87
|
+
return `/web/content/ir.attachment/${this.id}/datas?${accessToken}download=true`;
|
87
88
|
},
|
88
89
|
});
|
@@ -1,33 +1,35 @@
|
|
1
1
|
/** @odoo-module **/
|
2
2
|
|
3
|
-
|
3
|
+
// /** ********************************************************************************
|
4
|
+
// Copyright 2024 Subteno - Timothée Vannier (https://www.subteno.com).
|
5
|
+
// License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl).
|
6
|
+
// **********************************************************************************/
|
7
|
+
import {LinkPreview} from "@mail/core/common/link_preview";
|
8
|
+
import {patch} from "@web/core/utils/patch";
|
4
9
|
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
}
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
return `/web/image/${this.attachment.id}/${this.width}x${this.height}${accessToken}`;
|
30
|
-
},
|
31
|
-
},
|
10
|
+
patch(LinkPreview, {
|
11
|
+
get imageUrl() {
|
12
|
+
return function compute() {
|
13
|
+
if (!this.attachment) {
|
14
|
+
return;
|
15
|
+
}
|
16
|
+
if (
|
17
|
+
!this.attachment.accessToken &&
|
18
|
+
this.attachment.originThread &&
|
19
|
+
this.attachment.originThread.model === "mail.channel"
|
20
|
+
) {
|
21
|
+
return `/mail/channel/${this.attachment.originThread.id}/image/${this.attachment.id}/${this.width}x${this.height}`;
|
22
|
+
}
|
23
|
+
const accessToken = this.attachment.accessToken
|
24
|
+
? `?access_token=${this.attachment.accessToken}`
|
25
|
+
: "";
|
26
|
+
if (
|
27
|
+
this.attachment.model_name &&
|
28
|
+
this.attachment.model_name === "dms.file"
|
29
|
+
) {
|
30
|
+
return `/web/content?id=${this.attachment.id}&field=content&model=dms.file&filename_field=name&download=false`;
|
31
|
+
}
|
32
|
+
return `/web/image/${this.attachment.id}/${this.width}x${this.height}${accessToken}`;
|
33
|
+
};
|
32
34
|
},
|
33
35
|
});
|
@@ -1,30 +1,32 @@
|
|
1
1
|
/** @odoo-module **/
|
2
2
|
|
3
|
-
|
3
|
+
// /** ********************************************************************************
|
4
|
+
// Copyright 2024 Subteno - Timothée Vannier (https://www.subteno.com).
|
5
|
+
// License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl).
|
6
|
+
// **********************************************************************************/
|
7
|
+
import {LinkPreview} from "@mail/core/common/link_preview";
|
8
|
+
import {patch} from "@web/core/utils/patch";
|
4
9
|
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
}
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
return `/web/image/${this.attachmentOwner.id}${accessToken}`;
|
27
|
-
},
|
28
|
-
},
|
10
|
+
patch(LinkPreview, {
|
11
|
+
get imageUrl() {
|
12
|
+
return function compute() {
|
13
|
+
if (
|
14
|
+
!this.attachmentOwner.accessToken &&
|
15
|
+
this.attachmentOwner.originThread &&
|
16
|
+
this.attachmentOwner.originThread.model === "mail.channel"
|
17
|
+
) {
|
18
|
+
return `/mail/channel/${this.attachmentOwner.originThread.id}/image/${this.attachmentOwner.id}`;
|
19
|
+
}
|
20
|
+
const accessToken = this.attachmentOwner.accessToken
|
21
|
+
? `?access_token=${this.attachmentOwner.accessToken}`
|
22
|
+
: "";
|
23
|
+
if (
|
24
|
+
this.attachmentOwner.model_name &&
|
25
|
+
this.attachmentOwner.model_name === "dms.file"
|
26
|
+
) {
|
27
|
+
return `/web/content?id=${this.attachmentOwner.id}&field=content&model=dms.file&filename_field=name&download=false`;
|
28
|
+
}
|
29
|
+
return `/web/image/${this.attachmentOwner.id}${accessToken}`;
|
30
|
+
};
|
29
31
|
},
|
30
32
|
});
|
@@ -1,69 +1,47 @@
|
|
1
1
|
/**********************************************************************************
|
2
2
|
*
|
3
3
|
* Copyright 2017-2019 MuK IT GmbH
|
4
|
+
* Copyright 2024 Subteno - Timothée Vannier (https://www.subteno.com).
|
4
5
|
* License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl).
|
5
6
|
*
|
6
7
|
**********************************************************************************/
|
7
8
|
|
9
|
+
$o-kanban-image-width: 80px;
|
10
|
+
|
8
11
|
.mk_directory_kanban_view {
|
12
|
+
span.total_items {
|
13
|
+
margin-left: 3px;
|
14
|
+
margin-top: 3px;
|
15
|
+
}
|
16
|
+
|
9
17
|
height: 100%;
|
10
|
-
.o_kanban_record {
|
11
|
-
> div:nth-child(1) {
|
12
|
-
padding: 0;
|
13
|
-
}
|
14
18
|
|
15
|
-
|
19
|
+
.o_kanban_wrapper {
|
16
20
|
max-height: $o-kanban-image-width + 1;
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
min-height: $o-kanban-image-width / 2;
|
30
|
-
&.mk_directory_kanban_directories {
|
31
|
-
border-bottom: solid 1px $gray-400;
|
32
|
-
}
|
33
|
-
}
|
34
|
-
span.total_items {
|
35
|
-
margin-left: 3px;
|
36
|
-
margin-top: 3px;
|
37
|
-
}
|
38
|
-
}
|
39
|
-
}
|
40
|
-
.o_kanban_image {
|
41
|
-
width: $o-kanban-image-width - 1;
|
42
|
-
border-right: solid 1px $gray-400;
|
43
|
-
+ div {
|
44
|
-
padding-left: $o-kanban-image-width + $o-kanban-inside-hgutter +
|
45
|
-
$o-kanban-image-width / 2;
|
46
|
-
@include media-breakpoint-down(sm) {
|
47
|
-
padding-left: $o-kanban-image-width +
|
48
|
-
$o-kanban-inside-hgutter-mobile + $o-kanban-image-width / 2;
|
49
|
-
}
|
50
|
-
}
|
21
|
+
padding: 0 !important;
|
22
|
+
|
23
|
+
.o_dms_directory_btn {
|
24
|
+
border-style: solid solid none none;
|
25
|
+
border-color: $gray-400;
|
26
|
+
border-width: 1px;
|
27
|
+
width: 30px;
|
28
|
+
display: flex;
|
29
|
+
justify-content: center;
|
30
|
+
align-items: center;
|
31
|
+
height: 100%;
|
32
|
+
border-radius: 0;
|
51
33
|
}
|
52
|
-
|
53
|
-
|
54
|
-
.
|
55
|
-
|
56
|
-
padding-right: 16px;
|
57
|
-
}
|
58
|
-
.o_kanban_record_body {
|
59
|
-
max-height: 12px;
|
60
|
-
.o_kanban_tags {
|
61
|
-
@include o-text-overflow;
|
62
|
-
}
|
34
|
+
|
35
|
+
.o_kanban_details {
|
36
|
+
.o_kanban_record_body .o_kanban_tags {
|
37
|
+
@include o-text-overflow;
|
63
38
|
}
|
39
|
+
|
64
40
|
.oe_kanban_avatar {
|
65
41
|
margin-left: 0px;
|
42
|
+
max-width: 20px;
|
66
43
|
}
|
44
|
+
|
67
45
|
.favorite_sign_button {
|
68
46
|
margin-top: 1px;
|
69
47
|
font-size: 1.5rem;
|
@@ -71,28 +49,5 @@
|
|
71
49
|
margin-right: 6px;
|
72
50
|
}
|
73
51
|
}
|
74
|
-
.o_dropdown_kanban {
|
75
|
-
.dropdown-menu {
|
76
|
-
min-width: 22rem;
|
77
|
-
.mk_directory_kanban_views {
|
78
|
-
padding-right: 8px;
|
79
|
-
}
|
80
|
-
.mk_directory_kanban_actions {
|
81
|
-
padding-left: 8px;
|
82
|
-
border-right: none;
|
83
|
-
}
|
84
|
-
.fa {
|
85
|
-
min-width: 12px;
|
86
|
-
padding-right: 2px;
|
87
|
-
text-align: center;
|
88
|
-
}
|
89
|
-
.oe_kanban_colorpicker {
|
90
|
-
max-width: none;
|
91
|
-
margin: 5px 5px;
|
92
|
-
padding: 10px 0 0 25px;
|
93
|
-
border-top: 1px solid gray("300");
|
94
|
-
}
|
95
|
-
}
|
96
|
-
}
|
97
52
|
}
|
98
53
|
}
|
@@ -0,0 +1,69 @@
|
|
1
|
+
/**********************************************************************************
|
2
|
+
*
|
3
|
+
* Copyright 2024 Subteno - Timothée Vannier (https://www.subteno.com).
|
4
|
+
* License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl).
|
5
|
+
*
|
6
|
+
**********************************************************************************/
|
7
|
+
|
8
|
+
.mk_directory_kanban_view,
|
9
|
+
.mk_file_kanban_view {
|
10
|
+
.o_kanban_renderer {
|
11
|
+
.o_kanban_details {
|
12
|
+
position: relative;
|
13
|
+
height: 100%;
|
14
|
+
}
|
15
|
+
img:not(.oe_kanban_avatar) {
|
16
|
+
height: 79px;
|
17
|
+
}
|
18
|
+
|
19
|
+
.o_kanban_record_bottom {
|
20
|
+
position: absolute;
|
21
|
+
bottom: var(--KanbanRecord-gap-v);
|
22
|
+
left: var(--KanbanRecord-gap-v);
|
23
|
+
right: var(--KanbanRecord-gap-v);
|
24
|
+
|
25
|
+
.oe_kanban_bottom {
|
26
|
+
&_left,
|
27
|
+
&_right {
|
28
|
+
position: absolute;
|
29
|
+
bottom: 0;
|
30
|
+
}
|
31
|
+
|
32
|
+
&_left {
|
33
|
+
left: 0;
|
34
|
+
}
|
35
|
+
|
36
|
+
&_right {
|
37
|
+
right: 0;
|
38
|
+
}
|
39
|
+
}
|
40
|
+
}
|
41
|
+
}
|
42
|
+
|
43
|
+
.o_dropdown_kanban {
|
44
|
+
.dropdown-menu {
|
45
|
+
min-width: 22rem;
|
46
|
+
|
47
|
+
.mk_file_kanban_operations {
|
48
|
+
padding-right: 8px;
|
49
|
+
}
|
50
|
+
|
51
|
+
.mk_file_kanban_actions {
|
52
|
+
padding-left: 8px;
|
53
|
+
}
|
54
|
+
|
55
|
+
.fa {
|
56
|
+
min-width: 12px;
|
57
|
+
padding-right: 2px;
|
58
|
+
text-align: center;
|
59
|
+
}
|
60
|
+
|
61
|
+
.oe_kanban_colorpicker {
|
62
|
+
max-width: none;
|
63
|
+
margin: 5px 5px;
|
64
|
+
padding: 10px 0 0 25px;
|
65
|
+
border-top: 1px solid $gray-400;
|
66
|
+
}
|
67
|
+
}
|
68
|
+
}
|
69
|
+
}
|
@@ -1,65 +1,52 @@
|
|
1
1
|
/**********************************************************************************
|
2
2
|
*
|
3
3
|
* Copyright (c) 2017-2019 MuK IT GmbH.
|
4
|
+
* Copyright 2024 Subteno - Timothée Vannier (https://www.subteno.com).
|
4
5
|
* License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl).
|
5
6
|
*
|
6
7
|
**********************************************************************************/
|
7
8
|
|
9
|
+
$o-kanban-image-width: 80px;
|
10
|
+
|
8
11
|
.mk_file_kanban_view {
|
9
12
|
height: 100%;
|
10
|
-
.o_kanban_record {
|
11
|
-
> div:nth-child(1) {
|
12
|
-
padding: 0 5px !important;
|
13
|
-
}
|
14
13
|
|
14
|
+
.o_kanban_record {
|
15
15
|
padding: 0;
|
16
16
|
max-height: $o-kanban-image-width + 1;
|
17
|
-
|
18
|
-
|
19
|
-
|
17
|
+
|
18
|
+
> div:nth-child(1) {
|
19
|
+
padding: 0 var(--KanbanRecord-gap-v) !important;
|
20
20
|
}
|
21
|
-
|
22
|
-
|
21
|
+
|
22
|
+
.o_kanban_details {
|
23
|
+
height: 100%;
|
24
|
+
padding: var(--KanbanRecord-gap-v) var(--KanbanRecord-gap-v)
|
25
|
+
var(--KanbanRecord-gap-v) 0;
|
26
|
+
|
23
27
|
.o_kanban_record_title {
|
24
28
|
font-weight: bold;
|
25
29
|
padding-right: 16px;
|
26
30
|
}
|
31
|
+
|
27
32
|
.o_kanban_record_body {
|
28
33
|
max-height: 12px;
|
34
|
+
|
29
35
|
.o_kanban_tags {
|
30
36
|
@include o-text-overflow;
|
31
37
|
}
|
32
38
|
}
|
39
|
+
|
33
40
|
.oe_kanban_avatar {
|
34
|
-
margin-left:
|
41
|
+
margin-left: 0;
|
42
|
+
max-width: 20px;
|
35
43
|
}
|
36
|
-
|
44
|
+
|
45
|
+
.o_dms_file_kanban_lock {
|
37
46
|
margin-top: 2px;
|
38
47
|
font-size: 1.2rem;
|
39
48
|
line-height: 20px;
|
40
|
-
margin-right:
|
41
|
-
}
|
42
|
-
}
|
43
|
-
.o_dropdown_kanban {
|
44
|
-
.dropdown-menu {
|
45
|
-
min-width: 22rem;
|
46
|
-
.mk_file_kanban_operations {
|
47
|
-
padding-right: 8px;
|
48
|
-
}
|
49
|
-
.mk_file_kanban_actions {
|
50
|
-
padding-left: 8px;
|
51
|
-
}
|
52
|
-
.fa {
|
53
|
-
min-width: 12px;
|
54
|
-
padding-right: 2px;
|
55
|
-
text-align: center;
|
56
|
-
}
|
57
|
-
.oe_kanban_colorpicker {
|
58
|
-
max-width: none;
|
59
|
-
margin: 5px 5px;
|
60
|
-
padding: 10px 0 0 25px;
|
61
|
-
border-top: 1px solid gray("300");
|
62
|
-
}
|
49
|
+
margin-right: var(--KanbanRecord-gap-v);
|
63
50
|
}
|
64
51
|
}
|
65
52
|
}
|
@@ -73,6 +60,7 @@
|
|
73
60
|
z-index: 2;
|
74
61
|
left: 0;
|
75
62
|
top: 0;
|
63
|
+
|
76
64
|
i {
|
77
65
|
justify-content: center;
|
78
66
|
display: flex;
|
@@ -0,0 +1,12 @@
|
|
1
|
+
/**********************************************************************************
|
2
|
+
*
|
3
|
+
* Copyright 2024 Subteno - Timothée Vannier (https://www.subteno.com).
|
4
|
+
* License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl).
|
5
|
+
*
|
6
|
+
**********************************************************************************/
|
7
|
+
|
8
|
+
.o_portal_contact_img {
|
9
|
+
width: 2.3em;
|
10
|
+
height: 2.3em;
|
11
|
+
object-fit: cover;
|
12
|
+
}
|
@@ -0,0 +1,46 @@
|
|
1
|
+
/** @odoo-module **/
|
2
|
+
|
3
|
+
// /** ********************************************************************************
|
4
|
+
// Copyright 2024 Subteno - Timothée Vannier (https://www.subteno.com).
|
5
|
+
// License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl).
|
6
|
+
// **********************************************************************************/
|
7
|
+
import {registry} from "@web/core/registry";
|
8
|
+
|
9
|
+
registry.category("web_tour.tours").add("dms_portal_mail_tour", {
|
10
|
+
url: "/my/dms",
|
11
|
+
test: true,
|
12
|
+
steps: () => [
|
13
|
+
{
|
14
|
+
content: "Go to Mails directory",
|
15
|
+
extra_trigger: "li.breadcrumb-item:contains('Documents')",
|
16
|
+
trigger: ".tr_dms_directory_link:contains('Mails')",
|
17
|
+
},
|
18
|
+
{
|
19
|
+
content: "Go to Mail_01.eml",
|
20
|
+
extra_trigger: "li.breadcrumb-item:contains('Mails')",
|
21
|
+
trigger: ".tr_dms_file_link:contains('Mail_01.eml')",
|
22
|
+
},
|
23
|
+
],
|
24
|
+
});
|
25
|
+
|
26
|
+
registry.category("web_tour.tours").add("dms_portal_partners_tour", {
|
27
|
+
url: "/my/dms",
|
28
|
+
test: true,
|
29
|
+
steps: () => [
|
30
|
+
{
|
31
|
+
content: "Go to Partners directory",
|
32
|
+
extra_trigger: "li.breadcrumb-item:contains('Documents')",
|
33
|
+
trigger: ".tr_dms_directory_link:contains('Partners')",
|
34
|
+
},
|
35
|
+
{
|
36
|
+
content: "Go to Joel Willis",
|
37
|
+
extra_trigger: "li.breadcrumb-item:contains('Partners')",
|
38
|
+
trigger: ".tr_dms_directory_link:contains('Joel Willis')",
|
39
|
+
},
|
40
|
+
{
|
41
|
+
content: "Go to test.txt",
|
42
|
+
extra_trigger: "li.breadcrumb-item:contains('Joel Willis')",
|
43
|
+
trigger: ".tr_dms_file_link:contains('test.txt')",
|
44
|
+
},
|
45
|
+
],
|
46
|
+
});
|