48 lines
1.4 KiB
JavaScript
48 lines
1.4 KiB
JavaScript
/** @odoo-module **/
|
|
|
|
import { _t } from "@web/core/l10n/translation";
|
|
import { useBus, useService } from "@web/core/utils/hooks";
|
|
|
|
export const LunchRendererMixin = (T) => class LunchRendererMixin extends T {
|
|
setup() {
|
|
super.setup(...arguments);
|
|
|
|
this.action = useService("action");
|
|
useBus(this.env.bus, 'lunch_open_order', (ev) => this.openOrderLine(ev.detail.productId));
|
|
}
|
|
|
|
openOrderLine(productId, orderId) {
|
|
let context = {};
|
|
|
|
if (this.env.searchModel.lunchState.userId) {
|
|
context['default_user_id'] = this.env.searchModel.lunchState.userId;
|
|
}
|
|
if (this.env.searchModel.lunchState.date) {
|
|
context['default_date'] = this.env.searchModel.lunchState.date;
|
|
}
|
|
if (this.env.searchModel.lunchState.locationId) {
|
|
context['default_lunch_location_id'] = this.env.searchModel.lunchState.locationId;
|
|
}
|
|
|
|
let action = {
|
|
res_model: 'lunch.order',
|
|
name: _t('Configure Your Order'),
|
|
type: 'ir.actions.act_window',
|
|
views: [[false, 'form']],
|
|
target: 'new',
|
|
context: {
|
|
...context,
|
|
default_product_id: productId,
|
|
},
|
|
};
|
|
|
|
if (orderId) {
|
|
action['res_id'] = orderId;
|
|
}
|
|
|
|
this.action.doAction(action, {
|
|
onClose: () => this.env.bus.trigger('lunch_update_dashboard')
|
|
});
|
|
}
|
|
};
|