When I am in Form View and the data is filled, refreshing the page automatically saves it. However, I don’t want this to happen. When I refresh, the data should not be saved.
Odoo is the world's easiest all-in-one management software.
It includes hundreds of business apps:
- CRM
- e-Commerce
- Accounting
- Inventory
- PoS
- Project
- MRP
This question has been flagged
In which file i have to do this??
Hi,
By patching FormController, we can restrict auto-save in form views. By restricting the auto-save, the form will not save if we refresh the page.
/** @odoo-module */
import { FormController } from "@web/views/form/form_controller";
import { patch } from "@web/core/utils/patch";
import { useSetupView } from "@web/views/view_hook";
patch(FormController.prototype, {
setup(){
super.setup(...arguments);
this.beforeLeaveHook = false
useSetupView({
beforeLeave: () => this.beforeLeave(),
beforeUnload: (ev) => this.beforeUnload(ev),
});
},
async beforeLeave() {
/* function will work before leave the form */
if(this.model.root.isDirty && this.beforeLeaveHook == false){
if (this.env.searchModel && this.env.searchModel.resModel != 'create.bulk.products') {
this.beforeLeaveHook = true
await this.model.root.save({
reload: false,
onError: this.onSaveError.bind(this),
});
} else {
this.beforeLeaveHook = true
this.model.root.discard();
}
}
},
beforeUnload: async (ev) => {
ev.preventDefault();
}
});
Hope this helps.
Enjoying the discussion? Don't just read, join in!
Create an account today to enjoy exclusive features and engage with our awesome community!
Sign upRelated Posts | Replies | Views | Activity | |
---|---|---|---|---|
|
2
May 24
|
1065 | ||
|
1
Feb 24
|
893 | ||
|
1
Nov 22
|
4613 | ||
|
2
Sep 22
|
16330 | ||
|
0
Feb 22
|
1093 |