Kapitel 3+4: POS-Code in separates Modul ausgelagert

- Neues Modul open_workshop_pos erstellt
- POS JavaScript, XML Templates und CSS verschoben
- open_workshop_base bereinigt: keine POS-Abhängigkeit mehr
- open_workshop_base Version 18.0.1.0.4
- open_workshop_pos Version 18.0.1.0.0
- Kategorie von 'Point of Sale' zu 'Manufacturing' geändert
- Alle Template-Referenzen aktualisiert (open_workshop_base → open_workshop_pos)

Module getestet und erfolgreich installiert in hh18 Datenbank.
This commit is contained in:
Matthias Lotz 2025-12-07 16:43:51 +01:00
parent 3619526af0
commit 71c6ba56ed
13 changed files with 83 additions and 24 deletions

View File

@ -1,11 +1,11 @@
{
'name': 'Open Workshop Base',
'license': 'AGPL-3',
'version': '18.0.1.0.3',
'summary': 'Erstellt Maschinenfreigaben basierend auf POS-Einweisungsprodukten',
'depends': ['base', 'account', 'hr','product','sale','contacts','point_of_sale'],
'version': '18.0.1.0.4',
'summary': 'Kern-Modul für Maschinenfreigaben und Einweisungslogik',
'depends': ['base', 'account', 'hr','product','sale','contacts'],
'author': 'matthias.lotz',
'category': 'Point of Sale',
'category': 'Manufacturing',
'data': [
'security/ir.model.access.csv',
@ -21,21 +21,21 @@
'web.assets_backend': [
'open_workshop_base/static/src/css/category_color.css',
],
'point_of_sale._assets_pos': [
'open_workshop_base/static/src/css/pos.css',
'open_workshop_base/static/src/js/ows_machine_access_list.js',
'open_workshop_base/static/src/js/ows_pos_customer_sidebar.js',
'open_workshop_base/static/src/js/ows_pos_sidebar.js',
'open_workshop_base/static/src/js/ows_product_screen_template_patch.js',
'open_workshop_base/static/src/xml/ows_machine_access_list.xml',
'open_workshop_base/static/src/xml/ows_pos_customer_sidebar.xml',
'open_workshop_base/static/src/xml/ows_pos_sidebar.xml',
'open_workshop_base/static/src/xml/ows_product_screen_template_patch.xml',
],
},
'description': """
Diese App erstellt Maschinenfreigaben basierend auf POS-Einweisungsprodukten.
Die App ist für den Einsatz in der Odoo-Version 18.0 konzipiert.
Open Workshop Base - Kernmodul
================================
Dieses Modul stellt die Basis-Funktionalität für Open Workshop bereit:
* Maschinenmodelle (ows.machine)
* Bereiche (ows.machine.area)
* Einweisungslogik und Freigaben
* Produktverknüpfungen für Einweisungen
* Backend-UI (Form, Tree, Kanban)
Für POS-Integration installiere: open_workshop_pos
Für API-Zugriff installiere: open_workshop_api (erforderlich für WordPress Frontend)
""",
'post_init_hook': 'post_init_hook',
}

View File

@ -0,0 +1,2 @@
# -*- coding: utf-8 -*-
from . import models

View File

@ -0,0 +1,55 @@
# -*- coding: utf-8 -*-
{
'name': 'Open Workshop POS',
'version': '18.0.1.0.0',
'category': 'Point of Sale',
'summary': 'POS Integration für Open Workshop - Machine Access & Customer UI',
'description': """
Open Workshop POS Integration
==============================
Dieses Modul erweitert den Odoo Point of Sale um Open Workshop Funktionalität:
* Machine Access List - Anzeige verfügbarer Maschinen
* Customer Sidebar - Kundenspezifische Maschinenfreigaben
* POS Sidebar - Maschinenauswahl und Status
* Product Screen Patches - Integration in POS Workflow
Abhängigkeiten:
* open_workshop_base - Kernfunktionalität
* point_of_sale - Odoo POS System
Autor: HobbyHimmel
""",
'author': 'HobbyHimmel',
'website': 'https://hobbyhimmel.de',
'license': 'LGPL-3',
'depends': [
'open_workshop_base',
'point_of_sale',
],
'data': [
# Views
],
'assets': {
'point_of_sale.assets': [
# JavaScript
'open_workshop_pos/static/src/js/ows_pos_sidebar.js',
'open_workshop_pos/static/src/js/ows_pos_customer_sidebar.js',
'open_workshop_pos/static/src/js/ows_machine_access_list.js',
'open_workshop_pos/static/src/js/ows_product_screen_template_patch.js',
# XML Templates
'open_workshop_pos/static/src/xml/ows_pos_sidebar.xml',
'open_workshop_pos/static/src/xml/ows_pos_customer_sidebar.xml',
'open_workshop_pos/static/src/xml/ows_machine_access_list.xml',
'open_workshop_pos/static/src/xml/ows_product_screen_template_patch.xml',
# CSS
'open_workshop_pos/static/src/css/pos.css',
],
},
'installable': True,
'application': False,
'auto_install': False,
}

View File

@ -0,0 +1,2 @@
# -*- coding: utf-8 -*-
# POS-spezifische Modelle (falls benötigt)

View File

@ -7,7 +7,7 @@ import { rpc } from "@web/core/network/rpc";
import { registry } from "@web/core/registry";
export class OwsMachineAccessList extends Component {
static template = 'open_workshop_base.OwsMachineAccessList';
static template = 'open_workshop_pos.OwsMachineAccessList';
setup() {
this.pos = usePos();
@ -68,5 +68,5 @@ export class OwsMachineAccessList extends Component {
registry.category("templates").add("open_workshop_base.OwsMachineAccessList", OwsMachineAccessList);
registry.category("templates").add("open_workshop_pos.OwsMachineAccessList", OwsMachineAccessList);

View File

@ -7,7 +7,7 @@ import { _t } from "@web/core/l10n/translation";
import { ask } from "@web/core/confirmation_dialog/confirmation_dialog";
export class OwsPosCustomerSidebar extends Component {
static template = "open_workshop_base.OwsPosCustomerSidebar";
static template = "open_workshop_pos.OwsPosCustomerSidebar";
setup() {
this.pos = usePos(); // ✅ Holt dir Zugriff auf den zentralen POS-Store

View File

@ -6,6 +6,6 @@ import { OwsPosCustomerSidebar } from "./ows_pos_customer_sidebar";
import { OwsMachineAccessList } from "./ows_machine_access_list";
export class OwsPosSidebar extends Component {
static template = "open_workshop_base.OwsPosSidebar";
static template = "open_workshop_pos.OwsPosSidebar";
static components = { OwsPosCustomerSidebar, OwsMachineAccessList };
}

View File

@ -1,4 +1,4 @@
<t t-name="open_workshop_base.OwsMachineAccessList">
<t t-name="open_workshop_pos.OwsMachineAccessList">
<div class="client-details-grid p-2 small">
<!-- ✅ Sicherheitsbereich -->

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<templates id="template" xml:space="preserve">
<t t-name="open_workshop_base.OwsPosCustomerSidebar" owl="1">
<t t-name="open_workshop_pos.OwsPosCustomerSidebar" owl="1">
<div class="ows-sidebar p-2 bg-light border-end h-100">
<div class="ows-sidebar-header mb-2 d-flex justify-content-between align-items-center">
<button class="btn btn-secondary" t-on-click="openTicketScreen">Orders</button>

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<templates id="template" xml:space="preserve">
<t t-name="open_workshop_base.OwsPosSidebar" owl="1">
<t t-name="open_workshop_pos.OwsPosSidebar" owl="1">
<div class="custompane d-flex flex-column border-end bg-200">
<OwsPosCustomerSidebar />
<OwsMachineAccessList />