Skip to content
Snippets Groups Projects
Forked from Video AG Infrastruktur / website
78 commits behind the upstream repository.
user avatar
Roman Sebastian Karwacik authored
23dc9287
History

Website der Video AG

Entwicklung

Zum Testen:

Hinweis: diese Variante startet eine lokale Testversion der Website, es sind nicht alle Features verfügbar, z.B. LDAP-Login.

  1. Repo Clonen
  2. Verzeichnis betreten
  3. (optional) config.py.example anpassen und als config.py neu speichern (z.B. DEBUG = True)
  4. Schauen, ob alle Dependencies erfüllt sind (siehe weiter unten)
  5. ./run.py ausführen
  6. Unter http://localhost:5000 ist die Website verfügbar
  7. Moderatorlogin mit user: videoag Passwort: videoag

Alternativ, insbesondere zum Testen der Zugriffsbeschränkungen: Siehe nginx.example.conf.

Unittests

Tests können mittels ./runTests.py ausgeführt werden.

Coverage Tests können mittels rm .coverage; python -m coverage run runTests.py; python -m coverage html ausgeführt werden. Dies erstellt einen Ordner htmlcov in dem HTML Output liegt.

Zum Mitmachen:

  1. Repo für den eigenen User forken, dafür den "Fork-Button" auf der Website verwenden
  2. Sicherstellen, dass der Upstream richtig konfiguriert ist:
    Link Origin stellt hier euren User da, Upstream das Original der Gruppe videoagwebsite
  3. Erstellt euch eine eigene Branch, diese könnt ihr nennen wie ihr wollt, entweder nach der Änderung oder eurem Namen (git branch username), danach switched ihr in diese Branch (git checkout username)
  4. Die Initialisierung ist unter "Zum Testen" bereits erklärt worden
  5. Änderungen machen, committen, upstream mergen (git fetch upstream; git merge upstream/master)
  6. Ins eigene Repo pushen (git push)
  7. Pull-Request an uns, dazu unter "Merge-Requests" einmal auf "New Merge Request" und das Private Repo auswählen; oder ihr geht auf euer privates repo, da taucht dann eine Benachrichtigung über einen möglichen Merge-Request auf
  8. Warten
  9. Wir mergen die Änderungen

Abhängigkeiten

Notwendig:

  • python (Version 3)
  • sqlite3 (Python builtin)
  • python-flask
  • python-requests (wird vom L2P und vom Kalenderimport verwendet, kann nicht optional eingebunden werden)
  • git (zum Anzeigen der aktuellen Version)

Optional (wird für einzelne Features benötigt):

  • python-lxml (Campus- und RO-Import)
  • python-pytz (RO-Import)
  • python-ldap3 (Login mit Fachschaftsaccount)
  • python-icalendar (RO-Import, Kalenderimport für Sitzungsankündigungen)
  • python-mysql-connector (wenn MySQL als Datenbank verwendet werden soll)
  • python-coverage (Für Coverage Tests benötigt)

Kurzform unter Ubuntu: sudo apt install python3 python3-flask sqlite python3-requests python3-lxml python3-ldap3 python3-icalendar python3-mysql.connector

Mit python-eigenem Paketmanager: pip install -r requirements.txt