diff --git a/.env b/.env deleted file mode 100644 index 5dd5229..0000000 --- a/.env +++ /dev/null @@ -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 diff --git a/FEATURE_REQUEST/open_workshop_modulstruktur.md b/FEATURE_REQUEST/open_workshop_modulstruktur.md new file mode 100644 index 0000000..53eace6 --- /dev/null +++ b/FEATURE_REQUEST/open_workshop_modulstruktur.md @@ -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.“* diff --git a/FEATURE_REQUEST/workshop_maintenance_overview.md b/FEATURE_REQUEST/workshop_maintenance_overview.md new file mode 100644 index 0000000..9aea78f --- /dev/null +++ b/FEATURE_REQUEST/workshop_maintenance_overview.md @@ -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/ +``` + +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 + diff --git a/Checkliste.md b/open_workshop_base/Checkliste.md similarity index 100% rename from Checkliste.md rename to open_workshop_base/Checkliste.md diff --git a/LICENSE b/open_workshop_base/LICENSE similarity index 100% rename from LICENSE rename to open_workshop_base/LICENSE diff --git a/__init__.py b/open_workshop_base/__init__.py similarity index 100% rename from __init__.py rename to open_workshop_base/__init__.py diff --git a/__manifest__.py b/open_workshop_base/__manifest__.py similarity index 100% rename from __manifest__.py rename to open_workshop_base/__manifest__.py diff --git a/controllers/__init__.py b/open_workshop_base/controllers/__init__.py similarity index 100% rename from controllers/__init__.py rename to open_workshop_base/controllers/__init__.py diff --git a/controllers/pos_access.py b/open_workshop_base/controllers/pos_access.py similarity index 100% rename from controllers/pos_access.py rename to open_workshop_base/controllers/pos_access.py diff --git a/data/data.xml b/open_workshop_base/data/data.xml similarity index 100% rename from data/data.xml rename to open_workshop_base/data/data.xml diff --git a/models/__init__.py b/open_workshop_base/models/__init__.py similarity index 100% rename from models/__init__.py rename to open_workshop_base/models/__init__.py diff --git a/models/ows_models.py b/open_workshop_base/models/ows_models.py similarity index 100% rename from models/ows_models.py rename to open_workshop_base/models/ows_models.py diff --git a/models/pos_order.py b/open_workshop_base/models/pos_order.py similarity index 100% rename from models/pos_order.py rename to open_workshop_base/models/pos_order.py diff --git a/security/ir.model.access.csv b/open_workshop_base/security/ir.model.access.csv similarity index 100% rename from security/ir.model.access.csv rename to open_workshop_base/security/ir.model.access.csv diff --git a/static/src/css/category_color.css b/open_workshop_base/static/src/css/category_color.css similarity index 100% rename from static/src/css/category_color.css rename to open_workshop_base/static/src/css/category_color.css diff --git a/static/src/css/pos.css b/open_workshop_base/static/src/css/pos.css similarity index 100% rename from static/src/css/pos.css rename to open_workshop_base/static/src/css/pos.css diff --git a/static/src/js/ows_machine_access_list.js b/open_workshop_base/static/src/js/ows_machine_access_list.js similarity index 100% rename from static/src/js/ows_machine_access_list.js rename to open_workshop_base/static/src/js/ows_machine_access_list.js diff --git a/static/src/js/ows_pos_customer_sidebar.js b/open_workshop_base/static/src/js/ows_pos_customer_sidebar.js similarity index 100% rename from static/src/js/ows_pos_customer_sidebar.js rename to open_workshop_base/static/src/js/ows_pos_customer_sidebar.js diff --git a/static/src/js/ows_pos_sidebar.js b/open_workshop_base/static/src/js/ows_pos_sidebar.js similarity index 100% rename from static/src/js/ows_pos_sidebar.js rename to open_workshop_base/static/src/js/ows_pos_sidebar.js diff --git a/static/src/js/ows_product_screen_template_patch.js b/open_workshop_base/static/src/js/ows_product_screen_template_patch.js similarity index 100% rename from static/src/js/ows_product_screen_template_patch.js rename to open_workshop_base/static/src/js/ows_product_screen_template_patch.js diff --git a/static/src/xml/ows_machine_access_list.xml b/open_workshop_base/static/src/xml/ows_machine_access_list.xml similarity index 100% rename from static/src/xml/ows_machine_access_list.xml rename to open_workshop_base/static/src/xml/ows_machine_access_list.xml diff --git a/static/src/xml/ows_pos_customer_sidebar.xml b/open_workshop_base/static/src/xml/ows_pos_customer_sidebar.xml similarity index 100% rename from static/src/xml/ows_pos_customer_sidebar.xml rename to open_workshop_base/static/src/xml/ows_pos_customer_sidebar.xml diff --git a/static/src/xml/ows_pos_sidebar.xml b/open_workshop_base/static/src/xml/ows_pos_sidebar.xml similarity index 100% rename from static/src/xml/ows_pos_sidebar.xml rename to open_workshop_base/static/src/xml/ows_pos_sidebar.xml diff --git a/static/src/xml/ows_product_screen_template_patch.xml b/open_workshop_base/static/src/xml/ows_product_screen_template_patch.xml similarity index 100% rename from static/src/xml/ows_product_screen_template_patch.xml rename to open_workshop_base/static/src/xml/ows_product_screen_template_patch.xml diff --git a/views/assets.xml b/open_workshop_base/views/assets.xml similarity index 100% rename from views/assets.xml rename to open_workshop_base/views/assets.xml diff --git a/views/machine_area_views.xml b/open_workshop_base/views/machine_area_views.xml similarity index 100% rename from views/machine_area_views.xml rename to open_workshop_base/views/machine_area_views.xml diff --git a/views/machine_product_training_views.xml b/open_workshop_base/views/machine_product_training_views.xml similarity index 100% rename from views/machine_product_training_views.xml rename to open_workshop_base/views/machine_product_training_views.xml diff --git a/views/machine_views.xml b/open_workshop_base/views/machine_views.xml similarity index 100% rename from views/machine_views.xml rename to open_workshop_base/views/machine_views.xml diff --git a/views/menu_views.xml b/open_workshop_base/views/menu_views.xml similarity index 100% rename from views/menu_views.xml rename to open_workshop_base/views/menu_views.xml diff --git a/views/res_partner_view.xml b/open_workshop_base/views/res_partner_view.xml similarity index 100% rename from views/res_partner_view.xml rename to open_workshop_base/views/res_partner_view.xml