clean up and Update README.md and todo.md
This commit is contained in:
parent
4f7c1d4288
commit
943d2cfe43
8
.env
8
.env
|
|
@ -1,8 +0,0 @@
|
|||
ODOO_VERSION=17.0
|
||||
CONTAINER_NAME_EXTENSION=17_dev
|
||||
ODOO_PORT=9013
|
||||
DB_HOST=hobbyhimmel_odoo_17_dev_db
|
||||
DB_PORT=5432
|
||||
DB_USER=odoo
|
||||
DB_PASSWORD=odoo
|
||||
DB_NAME=hobbyhimmel
|
||||
|
|
@ -1,69 +0,0 @@
|
|||
name: POS Test Feedback
|
||||
about: Rückmeldung zu einem Test des POS-Systems geben
|
||||
title: "[Feedback] "
|
||||
labels: [feedback, test]
|
||||
assignees: []
|
||||
body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
## 🧪 POS-Test: Feedbackformular
|
||||
|
||||
Bitte gib uns Rückmeldung zu den einzelnen Funktionen. Beschreibe ggf. Probleme oder Auffälligkeiten.
|
||||
|
||||
- type: textarea
|
||||
id: sonstiges
|
||||
attributes:
|
||||
label: Sonstiges Feedback oder Fehler
|
||||
description: Alles andere, was dir beim Test aufgefallen ist (z. B. Layout, Ladezeiten, Fehlermeldungen).
|
||||
|
||||
- type: textarea
|
||||
id: nutzerauswahl
|
||||
attributes:
|
||||
label: Nutzer auswählen
|
||||
description: Funktioniert die Auswahl des Nutzers im POS wie erwartet?
|
||||
placeholder: z.B. Nutzer nicht auffindbar, Anzeige langsam etc.
|
||||
|
||||
- type: textarea
|
||||
id: haftung
|
||||
attributes:
|
||||
label: Haftungsausschluss prüfen
|
||||
description: Wird der Haftungsausschluss korrekt angezeigt bzw. berücksichtigt?
|
||||
|
||||
- type: textarea
|
||||
id: maschinenfreigabe
|
||||
attributes:
|
||||
label: Maschinenfreigabe prüfen
|
||||
description: Wird korrekt angezeigt, ob der Nutzer eine Einweisung für eine Maschine hat?
|
||||
|
||||
- type: textarea
|
||||
id: abrechnung
|
||||
attributes:
|
||||
label: Abrechnung (Bargeld / SumUp)
|
||||
description: Funktioniert die Abrechnung für den Nutzer?
|
||||
|
||||
- type: textarea
|
||||
id: coupon
|
||||
attributes:
|
||||
label: Coupons (erstellen / einlösen)
|
||||
description: Funktionieren Erstellen und Einlösen von Coupons korrekt?
|
||||
|
||||
- type: textarea
|
||||
id: nutzerdaten
|
||||
attributes:
|
||||
label: Nutzerdaten aktualisieren / Haftungsausschluss abwählen
|
||||
description: Lassen sich Nutzerdaten wie RFID oder der Haftungsausschluss korrekt ändern?
|
||||
|
||||
- type: textarea
|
||||
id: einweisung
|
||||
attributes:
|
||||
label: Einweisung verkaufen / prüfen
|
||||
description: Lässt sich eine Einweisung verkaufen und wird sie korrekt zugewiesen?
|
||||
|
||||
- type: textarea
|
||||
id: backend
|
||||
attributes:
|
||||
label: Backend-Funktionen
|
||||
description: Können Maschinen und Einweisungen im Backend wie erwartet verwaltet werden?
|
||||
|
||||
|
||||
|
|
@ -1,154 +0,0 @@
|
|||
name: odoo-restore-open_workshop-install
|
||||
on:
|
||||
schedule:
|
||||
- cron: "43 5 * * *" # Dieser Job wird täglich um 05:43 Uhr UTC ausgeführt.
|
||||
push:
|
||||
branches:
|
||||
- 13.0_dev
|
||||
|
||||
env:
|
||||
URL_RESTORE: http://hobbybackend2.fritz.box:9013
|
||||
|
||||
jobs:
|
||||
run-odoo-backup-in-docker:
|
||||
runs-on: ["hobbybackend2", "ubuntu-latest"] # Gibt an, dass der Job entweder auf 'hobbybackend2' und 'ubuntu-latest' läuft.
|
||||
|
||||
steps:
|
||||
- name: Checkout the repository
|
||||
# Dieser Schritt holt den Code des Repositories in die Action-Umgebung.
|
||||
# Dies ist notwendig, um auf Dateien im Repository wie Skripte oder Konfigurationen zugreifen zu können.
|
||||
uses: actions/checkout@v3
|
||||
|
||||
- name: Load environment variables from .env
|
||||
run: |
|
||||
set -a
|
||||
source .env
|
||||
set +a
|
||||
# Schreibe die Variablen in $GITHUB_ENV für die Verwendung in der YAML
|
||||
while IFS= read -r line; do
|
||||
if [[ ! -z "$line" && "$line" != \#* ]]; then
|
||||
echo "$line" >> $GITHUB_ENV
|
||||
fi
|
||||
done < .env
|
||||
|
||||
- name: Set up Docker container
|
||||
# Dieser Schritt startet einen Docker-Container basierend auf dem "ubuntu:latest" Image.
|
||||
# Er läuft im Hintergrund (`-d`), und wir verwenden `tail -f /dev/null`, um den Container laufend zu halten.
|
||||
# Danach werden benötigte Pakete wie `gnupg`, `openssh-client`, `curl` und `sshpass` installiert.
|
||||
run: |
|
||||
docker run -d --name ${{ github.workflow }} ubuntu:latest tail -f /dev/null
|
||||
docker exec ${{ github.workflow }} apt-get update
|
||||
docker exec ${{ github.workflow }} apt-get install -y gnupg2 openssh-client curl sshpass nano
|
||||
|
||||
- name: Copy SSH keys to the container
|
||||
# In diesem Schritt werden SSH-Schlüssel aus den GitHub Secrets in temporäre Dateien geschrieben.
|
||||
# Diese Dateien werden dann in den Docker-Container kopiert, um SSH-Zugriff innerhalb des Containers zu ermöglichen.
|
||||
# Schließlich werden die Berechtigungen des privaten Schlüssels (id_rsa) auf 600 gesetzt.
|
||||
run: |
|
||||
docker exec ${{ github.workflow }} mkdir -p /root/.ssh
|
||||
echo "${{ secrets.OPENSSH_PRIVATE_KEY }}" > ssh_private_key
|
||||
echo "${{ secrets.OPENSSH_PUBLIC_KEY }}" > ssh_public_key
|
||||
docker cp ssh_private_key ${{ github.workflow }}:/root/.ssh/id_rsa
|
||||
docker cp ssh_public_key ${{ github.workflow }}:/root/.ssh/id_rsa.pub
|
||||
docker exec ${{ github.workflow }} chmod 600 /root/.ssh/id_rsa
|
||||
|
||||
- name: Copy PGP keys to the container
|
||||
# Hier werden die GPG-Schlüssel (PGP-Schlüssel) in den Container kopiert, um Backups verschlüsseln zu können.
|
||||
# Die GPG-Schlüssel werden ebenfalls aus den GitHub Secrets entnommen und temporär in Dateien gespeichert,
|
||||
# die anschließend importiert werden.
|
||||
run: |
|
||||
echo "${{ secrets.PGP_PRIVATE_KEY }}" > pgp_private_key.asc
|
||||
echo "${{ secrets.PGP_PUBLIC_KEY }}" > pgp_public_key.asc
|
||||
docker cp pgp_private_key.asc ${{ github.workflow }}:/root/pgp_private_key.asc
|
||||
docker cp pgp_public_key.asc ${{ github.workflow }}:/root/pgp_public_key.asc
|
||||
docker exec ${{ github.workflow }} gpg --batch --import /root/pgp_private_key.asc
|
||||
docker exec ${{ github.workflow }} gpg --import /root/pgp_public_key.asc
|
||||
rm pgp_private_key.asc pgp_public_key.asc
|
||||
|
||||
- name: Add Host to Known Hosts
|
||||
# In diesem Schritt wird der SSH-Host-Schlüssel des Remote-Servers (ALL_INKL_HOST) zum "known_hosts"-File
|
||||
# des Containers hinzugefügt, um SSH-Verbindungen zum Remote-Server zu ermöglichen, ohne dass Warnungen angezeigt werden.
|
||||
# Der Host-Schlüssel wird mit `ssh-keyscan` gesammelt und in `known_hosts` eingetragen.
|
||||
run: |
|
||||
echo "This is the host: ${{ secrets.ALL_INKL_HOST }}"
|
||||
docker exec ${{ github.workflow }} bash -c "mkdir -p /root/.ssh && touch /root/.ssh/known_hosts && chmod 600 /root/.ssh/known_hosts"
|
||||
docker exec ${{ github.workflow }} bash -c "ssh-keyscan -H '${{ secrets.ALL_INKL_HOST }}' >> /root/.ssh/known_hosts"
|
||||
docker exec ${{ github.workflow }} bash -c "cat /root/.ssh/known_hosts"
|
||||
|
||||
- name: Run the restore script in Docker container
|
||||
# In diesem Schritt wird das Skript `odoo-restore.sh` in den Container kopiert und dort ausgeführt.
|
||||
# Die für das Skript notwendigen Umgebungsvariablen werden mitgegeben.
|
||||
# Das Skript entpackt das Backup-Archiv.
|
||||
# Das Skript löscht die bisherige Datenbank und fügt die neue Datenbank wieder ein.
|
||||
# Anschließend wird das Odoo filestore wiederhergestellt.
|
||||
run: |
|
||||
docker cp ./scripts/odoo-restore.sh ${{ github.workflow }}:/root/odoo-restore.sh
|
||||
docker exec ${{ github.workflow }} chmod +x /root/odoo-restore.sh
|
||||
docker exec -e ADMIN_PASSWORD=${{ secrets.ODOO_ADMIN_PASSWORD }} \
|
||||
-e sftp_host=${{ secrets.SFTP_HOST }} \
|
||||
-e sftp_user=${{ secrets.SFTP_USER }} \
|
||||
-e sftp_password=${{ secrets.SFTP_PASSWD }} \
|
||||
-e gpg_password=${{ secrets.GPG_PASSPHRASE }} \
|
||||
${{ github.workflow }} /bin/bash -c "bash /root/odoo-restore.sh '${{ env.URL_RESTORE }}'"
|
||||
|
||||
- name: Stop and remove Docker container
|
||||
# Nachdem das Restore abgeschlossen ist, wird der Docker-Container gestoppt und entfernt,
|
||||
# um keine Ressourcen auf dem Host unnötig zu verbrauchen.
|
||||
run: |
|
||||
docker stop ${{ github.workflow }}
|
||||
docker rm ${{ github.workflow }}
|
||||
|
||||
- name: Clone or update custom_addons open_workshop repository
|
||||
run: |
|
||||
echo "Container Name Extension: ${{ env.CONTAINER_NAME_EXTENSION }}"
|
||||
docker exec hobbyhimmel_odoo_${{ env.CONTAINER_NAME_EXTENSION }} /bin/bash -c "
|
||||
git config --global pull.ff only && \
|
||||
if [ ! -d /home/odoo/custom_addons/open_workshop ]; then
|
||||
git clone https://gitea:${{ secrets.BUILD_ACTION }}@gitea.lan.hobbyhimmel.de/hobbyhimmel/open_workshop.git /home/odoo/custom_addons/open_workshop;
|
||||
else
|
||||
cd /home/odoo/custom_addons/open_workshop && \
|
||||
git remote set-url origin https://gitea:${{ secrets.BUILD_ACTION }}@gitea.lan.hobbyhimmel.de/hobbyhimmel/open_workshop.git && \
|
||||
git fetch && git checkout ${{ env.ODOO_VERSION }}_dev && git pull;
|
||||
fi"
|
||||
|
||||
- name: Uninstall vvow_pos
|
||||
run: |
|
||||
docker exec -e ODOO_URL=${{ env.URL_RESTORE }} \
|
||||
-e ODOO_DB=${{ env.DB_NAME }} \
|
||||
-e ODOO_USERNAME=${{ secrets.ODOO_HOBBYHIMMEL_ADMIN }} \
|
||||
-e ODOO_PASSWORD=${{ secrets.ODOO_HOBBYHIMMEL_ADMIN_PASSWORD }} \
|
||||
hobbyhimmel_odoo_${{ env.CONTAINER_NAME_EXTENSION }} \
|
||||
/bin/bash -c "
|
||||
cd /home/odoo/custom_addons/open_workshop/scripts && \
|
||||
python3 uninstall_rpc.py vvow_pos"
|
||||
|
||||
- name: Fix Database hobbyhimmel with fix_missing_pos_partner.py
|
||||
# In diesem Schritt wird das Skript `fix_missing_pos_partner.py` ausgeführt, um sicherzustellen, dass alle Partner in der Datenbank korrekt sind.
|
||||
run: |
|
||||
docker exec hobbyhimmel_odoo_${{ env.CONTAINER_NAME_EXTENSION }} /bin/bash -c "
|
||||
cd /home/odoo/custom_addons/open_workshop/scripts && \
|
||||
/opt/odoo/odoo/odoo-bin shell -d ${{ env.DB_NAME }} < fix_missing_pos_partner.py"
|
||||
|
||||
- name: Install open_workshop
|
||||
# Install open_workshop and run necessary migrations
|
||||
run: |
|
||||
docker exec hobbyhimmel_odoo_${{ env.CONTAINER_NAME_EXTENSION }} /bin/bash -c "
|
||||
/opt/odoo/odoo/odoo-bin -d ${{ env.DB_NAME }} -i open_workshop --stop-after-init"
|
||||
docker restart hobbyhimmel_odoo_${{ env.CONTAINER_NAME_EXTENSION }}
|
||||
|
||||
- name: Import Machine to Product and Training relation
|
||||
run: |
|
||||
docker exec hobbyhimmel_odoo_${{ env.CONTAINER_NAME_EXTENSION }} /bin/bash -c "
|
||||
cd /home/odoo/custom_addons/open_workshop/scripts && \
|
||||
/opt/odoo/odoo/odoo-bin shell -d ${{ env.DB_NAME }} < import_machine_products.py"
|
||||
|
||||
- name: Uninstall vvow_einweisungen
|
||||
run: |
|
||||
docker exec -e ODOO_URL=${{ env.URL_RESTORE }} \
|
||||
-e ODOO_DB=${{ env.DB_NAME }} \
|
||||
-e ODOO_USERNAME=${{ secrets.ODOO_HOBBYHIMMEL_ADMIN }} \
|
||||
-e ODOO_PASSWORD=${{ secrets.ODOO_HOBBYHIMMEL_ADMIN_PASSWORD }} \
|
||||
hobbyhimmel_odoo_${{ env.CONTAINER_NAME_EXTENSION }} \
|
||||
/bin/bash -c "
|
||||
cd /home/odoo/custom_addons/open_workshop/scripts && \
|
||||
python3 uninstall_rpc.py vvow_einweisungen"
|
||||
34
README.md
34
README.md
|
|
@ -1,6 +1,6 @@
|
|||
# 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.
|
||||
Dieses Odoo v17.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
|
||||
|
||||
|
|
@ -28,40 +28,10 @@ Dieses Odoo v13.0 Modul erweitert das POS- und Kontakt-Modul um Funktionen für
|
|||
## 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)
|
||||
2. Im Odoo Backend unter Apps installieren
|
||||
|
||||
## 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
|
||||
|
|
|
|||
5
todo.md
5
todo.md
|
|
@ -1,4 +1,3 @@
|
|||
[ ] Help System
|
||||
[ ] Möglichkeit, Einweisungen manuell zu setzen?
|
||||
[ ] Möglichkeit, Einweisungen von Personen im Backend zurückzusetzen (geht im Moment nur über die Datenbank direkt)
|
||||
[ ]
|
||||
[x] Möglichkeit, Einweisungen manuell zu setzen?
|
||||
[x] Möglichkeit, Einweisungen von Personen im Backend zurückzusetzen -> Über Kontak -> bearbeiten -> Tab Offene Werkstatt, In der Liste der Einweisungen die Einweisung über das Mülleimer Symbol den Eintrag löschen
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user