machine access sidebar funktioniert

This commit is contained in:
gitea 2025-04-13 07:32:59 +00:00
parent fb96a54c2d
commit 9b16baf196

View File

@ -1,3 +1,6 @@
/* This file is based on the original code from the OrderWidget in Odoo Point of Sale module (screen.js).
* It has been modified to create a sidebar that displays machine access information for the selected customer.*/
odoo.define('machine_access_sidebar', function (require) {
"use strict";
@ -7,8 +10,6 @@ odoo.define('machine_access_sidebar', function (require) {
var core = require('web.core');
var QWeb = core.qweb;
console.log("✅ machine_access_sidebar.js geladen");
var MachineAccessSidebar = screens.ScreenWidget.extend({
template: 'MachineAccessSidebar',
@ -22,15 +23,15 @@ odoo.define('machine_access_sidebar', function (require) {
this.render_access();
},
set_partner: function(partner) {
console.log("🔁 Sidebar bekommt neuen Partner:", partner);
update_machine_access: function(partner) {
console.log("🔁 Sidebar aktualisiert Maschinenfreigaben für Partner:", partner);
this.partner = partner;
this.render_access();
},
render_access: function() {
var self = this;
var partner = this.partner || this.pos.get_order().get_client();
var partner = this.partner;
if (!partner) {
this.$('.access-content').html("<p>Kein Kunde ausgewählt.</p>");
return;
@ -41,41 +42,39 @@ odoo.define('machine_access_sidebar', function (require) {
method: 'get_access_list_grouped',
args: [partner.id],
}).then(function (result) {
console.log("📥 Sidebar: Maschinenfreigaben geladen:", result);
var html = QWeb.render('PartnerMachineAccessList', {
areas: result || [],
});
self.$('.access-content').html(html);
});
},
bind_order_events: function () {
var order = this.pos.get_order();
if (!order) return;
order.unbind('change:client', this);
order.bind('change:client', this, function () {
this.update_machine_access(order.get_client());
});
this.update_machine_access(order.get_client());
}
});
chrome.Chrome.include({
build_widgets: function () {
this._super();
var sidebar = new MachineAccessSidebar(this, {});
this.sidebar_widget = sidebar;
sidebar.appendTo(this.$el);
var self = this;
this.pos.bind('change:selectedOrder', sidebar.bind_order_events, sidebar);
function bind_order_events(order) {
if (order) {
order.bind('change:client', {}, function () {
sidebar.set_partner(order.get_client());
});
sidebar.set_partner(order.get_client());
if (this.pos.get_order()) {
sidebar.bind_order_events();
}
}
this.pos.bind('change:selectedOrder', this, function () {
bind_order_events(this.pos.get_order());
});
bind_order_events(this.pos.get_order());
},
});
});