From 0fe8417602714ce81b17fc83ab0ab293180c25c0 Mon Sep 17 00:00:00 2001 From: "matthias.lotz" Date: Tue, 1 Jul 2025 21:57:51 +0200 Subject: [PATCH] running POS ows machine access and customer sidebar --- controllers/pos_access.py | 9 ++++++--- models/ows_models.py | 2 +- static/src/js/ows_machine_access_list.js | 4 +--- static/src/js/ows_pos_customer_sidebar.js | 18 +++++++----------- 4 files changed, 15 insertions(+), 18 deletions(-) diff --git a/controllers/pos_access.py b/controllers/pos_access.py index b185398..edd56c4 100644 --- a/controllers/pos_access.py +++ b/controllers/pos_access.py @@ -1,11 +1,14 @@ -# Datei: controllers/pos_access.py - from odoo import http from odoo.http import request class OpenWorkshopPOSController(http.Controller): @http.route('/open_workshop/partner_access', type='json', auth='user') - def get_partner_machine_access(self, partner_id): + def get_partner_machine_access(self, **kwargs): + partner_id = kwargs.get('params', {}).get('partner_id') + if not partner_id: + return {"error": "Missing partner_id"} + Machine = request.env['ows.machine'].sudo() return Machine.get_access_list_grouped(partner_id) + diff --git a/models/ows_models.py b/models/ows_models.py index 5c7cf00..192b465 100644 --- a/models/ows_models.py +++ b/models/ows_models.py @@ -514,7 +514,7 @@ class OwsMachine(models.Model): """ partner = self.env['res.partner'].browse(partner_id) areas = self.env['ows.machine.area'].search([], order="name") - + _logger.info("Access RPC called with partner_id=%s", partner_id) access_by_area = [] for area in areas: machines = self.search([('area_id', '=', area.id), ('category', '=', 'red')], order="name") diff --git a/static/src/js/ows_machine_access_list.js b/static/src/js/ows_machine_access_list.js index 4f84de3..f3ecc0f 100644 --- a/static/src/js/ows_machine_access_list.js +++ b/static/src/js/ows_machine_access_list.js @@ -45,9 +45,7 @@ export class OwsMachineAccessList extends Component { try { const data = await rpc("/open_workshop/partner_access", { - params: { - partner_id: partner.id, - }, + params: { partner_id: partner.id }, }); this.state.grouped_accesses = data.access_by_area || []; diff --git a/static/src/js/ows_pos_customer_sidebar.js b/static/src/js/ows_pos_customer_sidebar.js index 613f9ac..e8539f8 100644 --- a/static/src/js/ows_pos_customer_sidebar.js +++ b/static/src/js/ows_pos_customer_sidebar.js @@ -2,32 +2,30 @@ import { Component } from "@odoo/owl"; import { useService } from "@web/core/utils/hooks"; -import { registry } from "@web/core/registry"; import { usePos } from "@point_of_sale/app/store/pos_hook"; import { _t } from "@web/core/l10n/translation"; import { ask } from "@web/core/confirmation_dialog/confirmation_dialog"; -import { deserializeDateTime, formatDateTime, parseDateTime } from "@web/core/l10n/dates"; export class OwsPosCustomerSidebar extends Component { static template = "open_workshop.OwsPosCustomerSidebar"; setup() { - this.pos = usePos(); + this.pos = usePos(); // ✅ Holt dir Zugriff auf den zentralen POS-Store this.dialog = useService("dialog"); } addOrder() { - this.pos.add_new_order(); // neue Order wird aktive Order + this.pos.add_new_order(); // ✅ Neue Order wird aktive Order this.pos.showScreen("ProductScreen"); this.pos.selectPartner(); - this.env.bus.trigger('partner-changed'); // ✅ korrektes Event feuern + this.env.bus.trigger('partner-changed'); // ✅ Event manuell auslösen } async removeCurrentOrder() { const order = this.pos.get_order(); if (!order) return; - // 🛑 Sicherheitsabfrage: Order enthält bereits Positionen + // 🛑 Sicherheitsabfrage: Order enthält bereits Positionen? if (order.get_orderlines().length > 0) { const confirmed = await ask(this.dialog, { title: _t("Order enthält Positionen"), @@ -49,16 +47,16 @@ export class OwsPosCustomerSidebar extends Component { this.pos.set_order(remainingOrders[remainingOrders.length - 1]); } - this.env.bus.trigger('partner-changed'); // ✅ korrektes Event feuern + this.env.bus.trigger('partner-changed'); } openTicketScreen() { this.pos.showScreen("TicketScreen"); } + // 🔧 FIXED: Zugriff auf Order-Liste korrigiert getFilteredOrderList() { - //return this.pos.get_order_list(); - return this.pos.orders ? this.pos.orders.filter(order => order.get_partner()) : []; + return this.pos.get_open_orders(); } getDate(order) { @@ -79,5 +77,3 @@ export class OwsPosCustomerSidebar extends Component { this.env.bus.trigger('partner-changed'); } } - -