Helfertool: Unterschied zwischen den Versionen

Aus Hostsharing Wiki
Zur Navigation springen Zur Suche springen
 
(11 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 16: Zeile 16:
Zuerst das git repo clonen. Ggf. Versionsnummer auf die aktuelle Version anpassen.
Zuerst das git repo clonen. Ggf. Versionsnummer auf die aktuelle Version anpassen.


  git clone --single-branch -b v3.2.2 https://github.com/helfertool/helfertool/
  git clone --single-branch https://github.com/helfertool/helfertool/


Aktuell wird laut src/requirements.txt ein Django in Version 4.2 benötigt.  
Aktuell wird laut src/requirements.txt ein Django in Version 4.2 benötigt.  
Zeile 35: Zeile 35:
Wir installieren zuerst die Dependencies, dafür legen wir uns ein venv an um diese nur lokal zu laden.  
Wir installieren zuerst die Dependencies, dafür legen wir uns ein venv an um diese nur lokal zu laden.  


  cd ~/helfertool
  cd ~
  python3 -m venv venv # initalisierung des venv
  python3 -m venv venv-ht # initalisierung des venv venv-ht
  source venv/bin/activate # aktivierung des venv
  source ~/venv-ht/bin/activate # aktivierung des venv
  # installation der dependencies im venv  
  # installation der dependencies im venv (wichtig! venv-ht muss geladen sein!)
  venv/bin/pip install wheel -r src/requirements.txt -r src/requirements_prod.txt
cd helfertool
  pip install -r src/requirements.txt -r src/requirements_prod.txt


Für den persönlichen Komfort habe ich folgende Zeilen in der ~/.profile hinterlegt.
Für den persönlichen Komfort habe ich folgende Zeilen in der ~/.profile hinterlegt.


  source ~/helfertool/venv/bin/activate
  source ~/venv-ht/bin/activate
export HELFERTOOL_CONFIG_FILE=$HOME/helfertool/src/helfertool.yaml
 


=== Konfiguration ===  
=== Konfiguration ===  
Zeile 51: Zeile 50:
Die Config Datei findet sich unter ~/helfertool/src/helfertool.yml
Die Config Datei findet sich unter ~/helfertool/src/helfertool.yml


Dort muss insbesondere der Datenbankzugang hinterlegt werden.
Dort muss insbesondere der Datenbankzugang hinterlegt werden, die Domain bei Allowed Hosts und die E-Mail
 
ob alles geklappt hat kann mit den folgenden befehlen indirekt getestet werden
 
python ~/helfertool/src/manage.py migrate
python ~/helfertool/src/manage.py createcachetable
python ~/helfertool/src/manage.py loaddata toolsettings


=== Inbetriebnahme ===  
=== Inbetriebnahme ===  


  cd ~/helfertool
  cd ~/helfertool
  venv/bin/python src/manage.py compress --force
  python src/manage.py collectstatic --noinput
  venv/bin/python src/manage.py collectstatic --noinput
  python src/manage.py compress


Der neue Erzeugte static ordner wird der htdocs-ssl ordner in der Entsprechenden Domain:
Der neue Erzeugte static ordner wird der htdocs-ssl ordner in der Entsprechenden Domain:


  cd ~/doms/example.org/
  cd ~/doms/example.org/htdocs-ssl
  rm -r htdocs-ssl
  rm .htaccess
  ln -s ~/helfertool/static htdocs-ssl
ln -s ~/helfertool/static
  ln -s ~/helfertool/media
 
Es sollten dann 2 Links (static und media) in htdocs-ssl liegen die auf die jeweiligen Ordner im git zeigen.
 
Der statische Assetornder halt leider jedoch nich by default die Rechte die Hostsharing braucht, das korrigieren für die Dateien und Ornder jeweils wir mit:
cd ~/helfertool
find static/ -type f -exec chmod 644 {} \;
find static/ -type d -exec chmod 755 {} \;
 
Leider werden neue hochgeladene Inhalte per default auch mit falschen Permissons angelegt. Das lässt sich fixen indem man folgende Datei ändert. Folgend der geänderte Inhalt:
 
~/helfertool/src/helfertool/settings.py
 
  # file permissions for newly uploaded files and directories
  FILE_UPLOAD_PERMISSIONS = 0o644
  FILE_UPLOAD_DIRECTORY_PERMISSIONS = 0o755
 
 
um die Python Anwendung mit Passenger auszuliefern sind jetzt noch 2 Schritte nötig:


Eine htaccess Datei im Domain Ordner app-ssl hinterlegen mit dem Inhalt:
SetEnv PYTHONPATH "/home/pacs/opa02/users/helfertool/helfertool/src"
und die wsgi datei in app-ssl hinterlegen:  
und die wsgi datei in app-ssl hinterlegen:  


  cp ~/helfertool/src/helfertool/wsgi.py ~/doms/example.com/app-ssl/
  ln -s ~/helfertool/src/helfertool/wsgi.py ~/doms/example.com/app-ssl/passenger_wsgi.py
 
Zusätzlich noch im HS Admin den Pfad zum venv hinterlegen
 
Zum Neustart der Anwendung (z.B. um config neu einzulesen) kann der Befehl
 
  passenger-config restart-app
 
verwendet werden
 
=== Customization ===
 
Wenn du, wie wir, dieses sehr gute Grün durch eine andere Farbe ersetzen willst kannst du wie folgt vorgehen:
 
Das zu ersetzende CSS findest du unter <code>~/helfertool/static/compressed/css/</code> mit dem Dateinamen main.<langezahlenfolge>.css diese Datei muss ersetzt werden. Am einfachsten geht das wie folgt:
 
 
  cd ~/helfertool/static/helfertool/theme
  # dort z.b. die Farben ändern
  nano _colors.scss
  # ggf. noch weitere Änderungen vornehmen
  # ...
  # compilieren
  scss helfertool.scss ../../compressed/main.x.css
 


Die Datenbank wird initalisiert:  
In dem o.g. compressed Ordner findet sich dann die neue passende Datei main.x.css, diese einfach über die alte Datei mit der kryptischen Nummer drüber kopieren. Das war es schon :)
 
venv/bin/python src/manage.py migrate
Ungetestet: ggf. kann das compilieren auch mit python ~/helfertool/src/manage.py compress ausgelöst werden
venv/bin/python src/manage.py loaddata toolsettings

Aktuelle Version vom 10. Mai 2024, 17:08 Uhr

Helfertool.org

Helfertool ist eine Software, die es erlaubt, die Freiwilligen oder Mitarbeiter für eine Veranstaltung zu verwalten. Sie können sich online für Jobs registrieren und die Verwaltungsoberfläche erlaubt es, die registrierten Personen zu verwalten. Für jeden Job können verschiedene Schichten mit einer Start- und Endzeit und einer begrenzten Anzahl von Helfern erstellt werden.

Sie ist in Python mit Django geschrieben.

Features lt Website:

  • Entscheiden Sie, ob die Registrierung für eine Stelle intern oder öffentlich sichtbar ist.
  • Generieren Sie Ausweise zur Identifizierung und Zugangskontrolle.
  • Verwaltung von Geschenken für Freiwillige: sie können für jede geleistete Schicht ein Geschenk erhalten, die Organisatoren können vermerken, ob ein Freiwilliger das Geschenk für jede einzelne Schicht erhalten hat.
  • Verwaltung von Geschenken für Freiwillige: sie können für jede geleistete Schicht ein Geschenk erhalten, die Organisatoren können vermerken, ob ein Freiwilliger das Geschenk für jede einzelne Schicht erhalten hat.

Mehr Infos auf https://www.helfertool.org

Installation

Zuerst das git repo clonen. Ggf. Versionsnummer auf die aktuelle Version anpassen.

git clone --single-branch https://github.com/helfertool/helfertool/

Aktuell wird laut src/requirements.txt ein Django in Version 4.2 benötigt.

Aktuell wird dafür

Python 3.8, 3.9, 3.10, 3.11, and 3.12 (as of 4.2. 8)

unterstützt. Auf den debian bookworm Maschinen sollte daher das installierte python3 genügen

python3 --version
Python 3.11.2

Vom Helfertool Docker wird aktuell auch Version 3.11 eingesetzt, nachzusehen in deployment/container/etc/uwsgi.conf

Falls das auf deiner Maschine nicht der Fall ist siehe Python für die manuelle Installation einer aktuelleren Version.

Wir installieren zuerst die Dependencies, dafür legen wir uns ein venv an um diese nur lokal zu laden.

cd ~
python3 -m venv venv-ht # initalisierung des venv venv-ht
source ~/venv-ht/bin/activate # aktivierung des venv
# installation der dependencies im venv (wichtig! venv-ht muss geladen sein!)
cd helfertool
pip install -r src/requirements.txt -r src/requirements_prod.txt

Für den persönlichen Komfort habe ich folgende Zeilen in der ~/.profile hinterlegt.

source ~/venv-ht/bin/activate

Konfiguration

Die Config Datei findet sich unter ~/helfertool/src/helfertool.yml

Dort muss insbesondere der Datenbankzugang hinterlegt werden, die Domain bei Allowed Hosts und die E-Mail

ob alles geklappt hat kann mit den folgenden befehlen indirekt getestet werden

python ~/helfertool/src/manage.py migrate
python ~/helfertool/src/manage.py createcachetable
python ~/helfertool/src/manage.py loaddata toolsettings

Inbetriebnahme

cd ~/helfertool
python src/manage.py collectstatic --noinput
python src/manage.py compress

Der neue Erzeugte static ordner wird der htdocs-ssl ordner in der Entsprechenden Domain:

cd ~/doms/example.org/htdocs-ssl
rm .htaccess
ln -s ~/helfertool/static
ln -s ~/helfertool/media

Es sollten dann 2 Links (static und media) in htdocs-ssl liegen die auf die jeweiligen Ordner im git zeigen.

Der statische Assetornder halt leider jedoch nich by default die Rechte die Hostsharing braucht, das korrigieren für die Dateien und Ornder jeweils wir mit:

cd ~/helfertool
find static/ -type f -exec chmod 644 {} \;
find static/ -type d -exec chmod 755 {} \;

Leider werden neue hochgeladene Inhalte per default auch mit falschen Permissons angelegt. Das lässt sich fixen indem man folgende Datei ändert. Folgend der geänderte Inhalt:

~/helfertool/src/helfertool/settings.py

 # file permissions for newly uploaded files and directories
 FILE_UPLOAD_PERMISSIONS = 0o644
 FILE_UPLOAD_DIRECTORY_PERMISSIONS = 0o755


um die Python Anwendung mit Passenger auszuliefern sind jetzt noch 2 Schritte nötig:

Eine htaccess Datei im Domain Ordner app-ssl hinterlegen mit dem Inhalt:

SetEnv PYTHONPATH "/home/pacs/opa02/users/helfertool/helfertool/src"

und die wsgi datei in app-ssl hinterlegen:

ln -s ~/helfertool/src/helfertool/wsgi.py ~/doms/example.com/app-ssl/passenger_wsgi.py

Zusätzlich noch im HS Admin den Pfad zum venv hinterlegen

Zum Neustart der Anwendung (z.B. um config neu einzulesen) kann der Befehl

 passenger-config restart-app

verwendet werden

Customization

Wenn du, wie wir, dieses sehr gute Grün durch eine andere Farbe ersetzen willst kannst du wie folgt vorgehen:

Das zu ersetzende CSS findest du unter ~/helfertool/static/compressed/css/ mit dem Dateinamen main.<langezahlenfolge>.css diese Datei muss ersetzt werden. Am einfachsten geht das wie folgt:


 cd ~/helfertool/static/helfertool/theme
 # dort z.b. die Farben ändern
 nano _colors.scss
 # ggf. noch weitere Änderungen vornehmen
 # ...
 # compilieren
 scss helfertool.scss ../../compressed/main.x.css


In dem o.g. compressed Ordner findet sich dann die neue passende Datei main.x.css, diese einfach über die alte Datei mit der kryptischen Nummer drüber kopieren. Das war es schon :)

Ungetestet: ggf. kann das compilieren auch mit python ~/helfertool/src/manage.py compress ausgelöst werden