This now a multi modul odoo repository, open_workshop moved to open_workshop_base

This commit is contained in:
Matthias Lotz 2025-12-06 20:45:29 +01:00
parent dff2de1755
commit 7cd458b72f
30 changed files with 303 additions and 8 deletions

8
.env
View File

@ -1,8 +0,0 @@
ODOO_VERSION=13.0
CONTAINER_NAME_EXTENSION=13_dev
ODOO_PORT=9013
DB_HOST=hobbyhimmel_odoo_13_dev_db
DB_PORT=5432
DB_USER=odoo
DB_PASSWORD=odoo
DB_NAME=hobbyhimmel

View File

@ -0,0 +1,142 @@
# Empfohlene Modulstruktur für Open_Workshop + öffentliches Website-Modul
## 🎯 Ziel
Du möchtest:
1. Ein **öffentliches Website-Modul**, das Maschineninformationen aus dem Maintenance-Modul anzeigt.
2. Dein gesamtes `open_workshop`-Repository sinnvoll modularisieren.
Diese Antwort beschreibt die optimale Struktur und die Gründe dafür.
---
# ✅ Öffentliches Modul ist sinnvoll
Du möchtest:
- Maschinen anzeigen (Maintenance)
- Zustand sichtbar machen
- Bilder & PDFs anzeigen
- ohne Login (auth="public")
➡️ Dafür ist ein eigenes Modul **open_workshop_website** ideal.
Dieses Website-Modul sollte *nur Anzeige* machen, keine Logik verwalten.
---
# ⭐ Empfohlene Modulstruktur (Best Practice)
```
open_workshop/
├── open_workshop_pos/ # POS-Integration, Einweisungen, Freigaben
├── open_workshop_maintenance/ # Verbindung zu maintenance.equipment
│ # z. B. Modelle, Felder, Extensions
└── open_workshop_website/ # Öffentliche Darstellung, QR-Codes, Website
```
---
# 🧩 Gründe für diese modulare Struktur
## 1⃣ Trennung nach funktionalen Bereichen
Odoo trennt:
- POS
- Maintenance
- Website
Du solltest dasselbe tun.
So bleibt alles klar, logisch und update-sicher.
---
## 2⃣ Bessere Wartbarkeit
Wenn Odoo 19/20 Änderungen bringt:
- POS ändert sich → nur `open_workshop_pos`
- Maintenance ändert sich → nur `open_workshop_maintenance`
- Website ändert sich → nur `open_workshop_website`
Ein großes Sammelmodul wäre schwer zu warten.
---
## 3⃣ Nutzer können auswählen, was sie brauchen
Beispiel:
Ein Kunde will nur Maschinen + Website, aber kein POS.
Dann installiert er:
- `open_workshop_maintenance`
- `open_workshop_website`
🔧 Ohne unnötige POS-Abhängigkeit.
---
## 4⃣ Klare Modulabhängigkeiten
### `open_workshop_pos`
- depends: `point_of_sale`
### `open_workshop_maintenance`
- depends: `maintenance`
### `open_workshop_website`
- depends: `website`
- optional depends: `open_workshop_maintenance`
Alles sauber getrennt.
---
## 5⃣ Erweiterbarkeit bleibt einfach
Dein Projekt wächst schnell:
- QR-Codes
- Maschinenstatus
- API
- Dashboards
- Rollen mit Einweisungssichtbarkeit
Wenn alles in EINEM Modul wäre → unübersichtlich
Wenn modular → perfekt strukturiert
---
# ❌ Warum alles in *einem einzigen Modul* schlecht wäre
- Mischmasch aus POS, Website und Maintenance-Code
- schwerer zu debuggen
- schlechtere Wiederverwendbarkeit
- mehr Merge-Konflikte
- Odoo selbst macht das nie so
---
# 🎉 Fazit
Die modulare Struktur ist optimal und entspricht OCA/Odoo-Best-Practices:
| Modul | Zweck |
|-------|--------|
| **open_workshop_pos** | Einweisung, Freigaben, POS GUI |
| **open_workshop_maintenance** | Maschinenmodellierung, Maintenance-Anbindung |
| **open_workshop_website** | öffentliche Darstellung, QR-Codes |
---
# 📦 Optional: Nächster Schritt
Ich kann dir komplette Modul-Gerüste erstellen:
- Manifest-Dateien
- Controller
- Views
- Templates
- QR-Code-Integration
- Demo-Daten
Sag einfach Bescheid:
👉 *„Bitte erstelle mir das Grundgerüst.“*

View File

@ -0,0 +1,161 @@
# Maschinen- und Geräteverwaltung im FabLab mit Odoo Maintenance + Open_Workshop
## 🎯 Ausgangssituation
In der Werkstatt existieren viele verschiedene Maschinen und Geräte:
- stationär
- mobil
- elektrisch
- mechanisch
- verschiedene Sicherheits- und Einweisungsanforderungen
Der aktuelle Zustand, Bilder und Bedienungsanleitungen sind unstrukturiert im Wiki gespeichert.
Das Ziel ist:
- eine zentrale, strukturierte Verwaltung in **Odoo**
- Anzeige des Maschinenzustands
- Zugriff für Nutzer auf Bedienungsanleitungen
- ohne Backend-Zugang
- am besten über Website/Portal + QR-Codes
---
## 💡 Die perfekte Lösung: Maintenance-Modul + Open_Workshop + Website
Die optimale Architektur besteht aus drei Komponenten:
1. **Maintenance-Modul**
→ Zentrale Verwaltung aller Maschinen/Devices
2. **Open_Workshop-Modul**
→ Freigaben, Einweisungen, POS-Integration
3. **Website-/Portal-Modul (Custom)**
→ Anzeige für Nutzer: Maschine, Zustand, Anleitung, QR-Codes
Diese Kombination ist robust, klar strukturiert und update-sicher.
---
# ✅ Warum das Maintenance-Modul ideal ist
Das Modell `maintenance.equipment` bietet bereits alles, was du brauchst:
| Feld | Nutzen |
|------|--------|
| `name` | Maschinenname |
| `category_id` | Maschinenbereich |
| `maintenance_state` | Betriebszustand |
| `note` | Beschreibung |
| `image_1920` | Maschinenbild |
| `message_attachment_count` | PDFs & Dateien |
| Anhänge | Bedienungsanleitungen |
Diese Felder machen das Maintenance-Modul zur perfekten **Source of Truth**.
---
# 🧩 Wie du die Daten Nutzern sichtbar machst
Nicht das Backend öffnen.
Nicht `website=True` setzen.
Sondern:
### ✔ Eigener Website-/Portal-Controller
Beispiele:
### Maschinenliste
```
/workshop/machines
```
### Maschinendetailansicht
```
/workshop/machine/<id>
```
Dort sieht der Nutzer:
- Bild
- Betriebszustand
- Kategorie
- Beschreibung
- Bedienungsanleitung (PDF-Download)
- optional: Sicherheitsinfos
- optional: Einweisungsstatus (aus Open_Workshop)
Alles **read-only**, ohne Backend.
---
# 🔒 Zugriffsvarianten
Du entscheidest selbst:
## **Option A: Öffentlich**
- Keine Anmeldung nötig
- Zustand und Anleitung für alle sichtbar
- Ideal für Tablets im FabLab oder QR-Codes an Maschinen
## **Option B: Portal-Zugang**
- Nutzer müssen sich einloggen
- Anleitungen nur für registrierte Mitglieder sichtbar
## **Option C: Hybrid**
- Zustand öffentlich
- Anleitungen nur für eingeloggte Benutzer mit Einweisung
Diese Variante passt besonders gut zu deinem Open_Workshop-Modell.
---
# 🧰 Integration mit Open_Workshop
Die ideale Struktur ist:
```
maintenance.equipment ←→ ows.machine ←→ ows.machine.access
```
Das bedeutet:
- Maintenance = technische Daten
- Open_Workshop = Einweisungsprozesse
- Website = Darstellung
---
# 📲 QR-Codes an den Maschinen
Odoo kann automatisch QR-Codes generieren.
Du platzierst auf jeder Maschine einen QR-Code, z. B.:
```
/workshop/machine/42
```
Der Nutzer scannt ihn und sieht:
- Bild
- Zustand
- Anleitung
- ggf. "Einweisung vorhanden" / "Keine Einweisung"
---
# 🚀 Modularer Vorschlag für deine Architektur
### **1. Maintenance-Modul**
Zentrale Maschinenverwaltung
### **2. Open_Workshop-Modul**
Einweisung, Freigaben, POS
### **3. Custom Website-Modul**
- Maschinenliste
- Detailseiten
- PDF-Downloads
- Einweisungsstatus
- optional QR-Code-Automatik