open_workshop/README.md

79 lines
3.3 KiB
Markdown

# 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