# Open Workshop (open_workshop ows) Dieses Odoo v13.0 Modul erweitert das POS- und Kontakt-Modul um Funktionen für offene Werkstätten (FabLabs, Makerspaces etc.) und dient der Verwaltung von Maschinen, Naschinen Einweisungen Produkten, Maschinen Nutzungsprodukten und Zugangsberechtigungen zu den Maschinen. ## Funktionen ### Erweiterungen an Kontakten (res.partner) - Geburtstagsfeld, RFID-Karte, Haftungsausschluss usw. ausgelagert nach `ows.user` - Automatische Erstellung des `ows.user`-Eintrags beim Anlegen eines Kontakts - Übersichtliche Darstellung aller Maschinenfreigaben im Odoo Kontaktformular ### Maschinen und Bereiche - Modell `ows.machine` mit Gruppierung nach Bereichen (`ows.machine.area`) - Farblich kodierte Bereiche (Hex-Wert aus Datenbank) welche zur Darstellung im POS verwendet werden ### Einweisungen und Nutzungen - Modelle `ows.machine.training` und `ows.machine.product` - Konfigurierbare Produkte für Einweisung/Nutzung direkt im Backend - Zuweisung von Nutzungsprodukten zu Maschinen - Zuweisung von Einweisungsprodukten zu Maschinen ### Maschinenfreigaben - Modell `ows.machine.access` verknüpft Partner und Maschine - Darstellung im POS als tabellarische Übersicht mit Anzeige für eine bestehende Einweisung / Nutzungsberechtigung - Anzeige im POS-Kundendetailsansicht innerhalb der Kundendetailsansicht - Anzeige im Odoo Kontak Modul der Maschineneinweisungen ## Installation 1. Dieses Modul in den Custom-Addons-Ordner kopieren 2. Vor der Installation von open_worshop muss vvow_pos deinstalliert werden. Die Funktionalität von vvow_pos wird durch open_workshop ersetzt und erweitert. 3. ggf. muss die alte Datenbank manuell migiriert werden, es gibt ca 9 gelöscht res.partner auf die Verweise aus POS bestehen. Diese res.parnter müssen wieder hergestellt werden. Dazu gibt es ein Skript unter ```folder scripts/fix_missing_pos_partner.py ``` ```bash opt/odoo/odoo/odoo-bin shell -d hobbyhimmel < scrpts/fix_missing_pos_partner.py ``` 4. Odoo starten mit: ```bash odoo-bin -d deine_datenbank -u open_workshop ``` 5. Alternativ im Backend unter Apps installieren ## Automatische Migrationen Beim ersten Laden des Moduls werden folgende Migrationen durchgeführt: - Bestehende `res.partner` erhalten automatisch `ows.user`-Eintrag (inkl. Übernahme alter Felder wie vvow_birthday, vvow_security, vvow_security_id, vvow_rfid. - Alte Felder mit Maschinenfreigaben (`vvow_holz_*`, `vvow_metall_*`, `vvow_fablab_*`) werden in `ows.machine.access` übertragen - inkl. Übernahme des Änderungsdatum aus `mail.message` wann der Nutzer die Einweisung erhalten hat (ist noch fehlerhaft) ## Entwicklerhinweise ### post_init_hook Die Datei `post_init_hook.py` ruft automatisch nach der Installation folgende Methoden auf: ```python res.partner.migrate_existing_partners() res.partner.migrate_machine_access_from_old_fields() ``` ### Datenimport - Maschinenbereiche, Maschinen werden über `.xml`-Dateien in `data/` geladen - Die Zuordnung von Maschine zu Einweisungsprodukten und Nutzungsprodukten muss derzeit noch manuell erstellt werden. Ein skript dafür folgt. ## ToDos - Bearbeitung der Maschinenfreigaben im Backend - Automatische Erstellung von `mail.message` bei manueller Freigabe - Integration von Fristen (z.B. Ablaufdatum Einweisung) ## Autoren - Matthias Lotz ## Lizenz AGPL-3.0 oder später --- Letzte Aktualisierung: 06.04.2025