I'm trying to add project_id and crm_lead_id to the context. I know I need to change _makeFileUploadFormDataKeys However no matter what I do I can't get it working. I've tried three different ways and the first one fails because of missing dependencies. The last two compile with no issues but don't work.
//First Method Doesn't compile.
/** @odoo-module **/
import { DocumentsControllerMixin } from '@documents/js/documents_controller_mixin';
import config from 'web.config';
import { patch } from 'web.utils';
patch(DocumentsControllerMixin, 'document_connections.DocumentsControllerMixin', {
_makeFileUploadFormDataKeys ({ recordId }) {
const context = this.model.get(this.handle, { raw: true }).getContext();
return {
document_id: recordId,
folder_id: this.searchModel.get('selectedFolderId'),
tag_ids: this.searchModel.get('selectedTagIds'),
owner_id: context && context.default_owner_id,
partner_id: context && context.default_partner_id,
project_id: context && context.default_project_id,
crm_lead_id: context && context.default_crm_lead_id,
};
},
_onClickDocumentsRequest (ev) {
ev.preventDefault();
const context = this.model.get(this.handle, {raw: true}).getContext();
this.do_action('documents.action_request_form', {
additional_context: {
default_project_id: context.default_project_id || false,
default_crm_lead_id: context.default_crm_lead_id || false,
default_partner_id: context.default_partner_id || false,
default_folder_id: this.searchModel.get('selectedFolderId'),
default_tag_ids: [[6, 0, this.searchModel.get('selectedTagIds')]],
},
fullscreen: config.device.isMobile,
on_close: () => this.reload(),
});
},
_onClickDocumentsUploadFromUrl (ev) {
ev.preventDefault();
const context = this.model.get(this.handle, {raw: true}).getContext();
this.do_action('documents.action_url_form', {
additional_context: {
default_project_id: context.default_project_id || false,
default_crm_lead_id: context.default_crm_lead_id || false,
default_partner_id: context.default_partner_id || false,
default_folder_id: this.searchModel.get('selectedFolderId'),
default_tag_ids: [[6, 0, this.searchModel.get('selectedTagIds')]],
},
fullscreen: config.device.isMobile,
on_close: async () => await this.reload()
});
}
});
//Second Method
odoo.define('document_connections.DocumentsControllerMixin', function (require) {
'use strict';
const DocumentsControllerMixin = require('documents.controllerMixin');
const ConnectionsControllerMixin = (DocumentsControllerMixin) =>
class extends DocumentsControllerMixin {
_makeFileUploadFormDataKeys ({ recordId }) {
const context = this.model.get(this.handle, { raw: true }).getContext();
return {
document_id: recordId,
folder_id: this.searchModel.get('selectedFolderId'),
tag_ids: this.searchModel.get('selectedTagIds'),
owner_id: context && context.default_owner_id,
partner_id: context && context.default_partner_id,
project_id: context && context.default_project_id,
crm_lead_id: context && context.default_crm_lead_id,
};
}
_onClickDocumentsRequest (ev) {
ev.preventDefault();
const context = this.model.get(this.handle, {raw: true}).getContext();
this.do_action('documents.action_request_form', {
additional_context: {
default_project_id: context.default_project_id || false,
default_crm_lead_id: context.default_crm_lead_id || false,
default_partner_id: context.default_partner_id || false,
default_folder_id: this.searchModel.get('selectedFolderId'),
default_tag_ids: [[6, 0, this.searchModel.get('selectedTagIds')]],
},
fullscreen: config.device.isMobile,
on_close: () => this.reload(),
});
}
_onClickDocumentsUploadFromUrl (ev) {
ev.preventDefault();
const context = this.model.get(this.handle, {raw: true}).getContext();
this.do_action('documents.action_url_form', {
additional_context: {
default_project_id: context.default_project_id || false,
default_crm_lead_id: context.default_crm_lead_id || false,
default_partner_id: context.default_partner_id || false,
default_folder_id: this.searchModel.get('selectedFolderId'),
default_tag_ids: [[6, 0, this.searchModel.get('selectedTagIds')]],
},
fullscreen: config.device.isMobile,
on_close: async () => await this.reload()
});
}
};
return DocumentsControllerMixin;
});
//Third Method
odoo.define('document_connections.DocumentsControllerMixin', function (require) {'use strict';
const DocumentsControllerMixin = require("documents.controllerMixin");
DocumentsControllerMixin._makeFileUploadFormDataKeys = ({recordId}) => {
const context = this.model.get(this.handle, {raw: true}).getContext();
return {
document_id: recordId,
folder_id: this.searchModel.get('selectedFolderId'),
tag_ids: this.searchModel.get('selectedTagIds'),
owner_id: context && context.default_owner_id,
partner_id: context && context.default_partner_id,
project_id: context && context.default_project_id,
crm_lead_id: context && context.default_crm_lead_id,
};
},
DocumentsControllerMixin._onClickDocumentsRequest = (ev) => {
ev.preventDefault();
const context = this.model.get(this.handle, {raw: true}).getContext();
this.do_action('documents.action_request_form', {
additional_context: {
default_project_id: context.default_project_id || false,
default_crm_lead_id: context.default_crm_lead_id || false,
default_partner_id: context.default_partner_id || false,
default_folder_id: this.searchModel.get('selectedFolderId'),
default_tag_ids: [[6, 0, this.searchModel.get('selectedTagIds')]],
},
fullscreen: config.device.isMobile,
on_close: () => this.reload(),
});
},
DocumentsControllerMixin._onClickDocumentsUploadFromUrl = (ev) => {
ev.preventDefault();
const context = this.model.get(this.handle, {raw: true}).getContext();
this.do_action('documents.action_url_form', {
additional_context: {
default_project_id: context.default_project_id || false,
default_crm_lead_id: context.default_crm_lead_id || false,
default_partner_id: context.default_partner_id || false,
default_folder_id: this.searchModel.get('selectedFolderId'),
default_tag_ids: [[6, 0, this.searchModel.get('selectedTagIds')]],
},
fullscreen: config.device.isMobile,
on_close: async () => await this.reload()
});
}
});
Odoo is the world's easiest all-in-one management software.
It includes hundreds of business apps:
- CRM
- e-Commerce
- Kế toán
- Tồn kho
- PoS
- Project
- MRP
Câu hỏi này đã bị gắn cờ
1547
Lượt xem
Bạn có hứng thú với cuộc thảo luận không? Đừng chỉ đọc, hãy tham gia nhé!
Tạo tài khoản ngay hôm nay để tận hưởng các tính năng độc đáo và tham gia cộng đồng tuyệt vời của chúng tôi!
Đăng kýBài viết liên quan | Trả lời | Lượt xem | Hoạt động | |
---|---|---|---|---|
|
1
thg 3 25
|
4318 | ||
|
1
thg 5 23
|
2621 | ||
|
0
thg 2 23
|
2402 | ||
|
2
thg 5 22
|
14415 | ||
|
2
thg 4 22
|
4535 |
I was unable to edit the function in DocumentsControllerMixin directly. I had to make two files and use the include function on the DocumentsKanbanController and the DocumentsListController. I would like to change the DocumentsControllerMixin directly so I don't have to redo the work twice.
odoo.define('document_connections.DocumentsListControllerMixin', function (require) {
'use strict'
const DocumentsListControllerMixin = require("documents.DocumentsListController");
DocumentsListControllerMixin.include({
_makeFileUploadFormDataKeys: function ({recordId}) {
const context = this.model.get(this.handle, {raw: true}).getContext();
return {
document_id: recordId,
folder_id: this.searchModel.get('selectedFolderId'),
tag_ids: this.searchModel.get('selectedTagIds'),
owner_id: context && context.default_owner_id,
partner_id: context && context.default_partner_id,
project_id: context && context.default_project_id,
crm_lead_id: context && context.default_crm_lead_id,
};
}
});
});
odoo.define('document_connections.DocumentsKanbanControllerMixin', function (require) {
'use strict'
const DocumentsKanbanControllerMixin = require("documents.DocumentsKanbanController");
DocumentsKanbanControllerMixin.include({
_makeFileUploadFormDataKeys: function ({recordId}) {
const context = this.model.get(this.handle, {raw: true}).getContext();
return {
document_id: recordId,
folder_id: this.searchModel.get('selectedFolderId'),
tag_ids: this.searchModel.get('selectedTagIds'),
owner_id: context && context.default_owner_id,
partner_id: context && context.default_partner_id,
project_id: context && context.default_project_id,
crm_lead_id: context && context.default_crm_lead_id,
};
}
});
});