Wie schon in meinem ersten Blog bereits erwähnt wurde, soll die von mir zu entwickelnde Web-Applikation die Organisationsstruktur eines Unternehmens grafisch abbilden. Da fast jede Organisationsstruktur hierarchisch aufgebaut ist, ist es sinnvoll, die Datenstruktur eines Verzeichnisdienstes wie OpenLDAP zu nutzen, um die Organisationsstruktur abzubilden.
Im Rahmen dieser Masterarbeit wird beispielweise die Organisationsstruktur einzelner Arbeitsgruppen des Heinz Nixdorf Institut (HNI) abgebildet. Da aber die einzelnen Organisationseinheiten der Organisationsstruktur des HNI ziemlich viele Attribute haben (z. B. HNIStatus, HNI-ID), die im Rahmen dieser Masterarbeit nicht benutzt werden, wird ein „abgespeckte“ Schema der bestehenden Organisationsstruktur angelegt.
Ein Beispiel dieser Struktur ist:
Abbildung 1. LDAP-Struktur eines Benutzers
Da die bestehende LDAP-Struktur des HNI hauptsächlich zum Verteilen von Zugriffsrechten gedacht wurde, ist sie für die hierarchische Abbildung der Organisationsstruktur nicht gut geeignet und muss durch bestimmte Attribute erweitert werden:
- „owner“ – dadurch definiert man den Leiter einer Arbeitsgruppe bzw. eines Teams. Das Attribut wird nur einer Gruppe, bzw. einem Team zugewiesen, das einen Leiter hat (Abbildung 2).
- „businessCategory“ – gibt an, zu welcher Kategorie der Tätigkeit eine Person gehört (Abbildung 1). Dieses Attribut wird gebraucht, um die Mitarbeiter auf mehrere Ebenen zu gliedern.
- „employeeType“ – bezeichnet die Tätigkeit einer Person, wie Leiter, wissenschaftlicher Mitarbeiter, nicht wissenschaftlicher Mitarbeiter, etc. (Abbildung 1).
Abbildung 2. LDAP-Struktur einer Gruppe
Die Erweiterbarkeit des vorhandenen LDAP-Schemas durch eigene Attribute, macht den Einsatz vom LDAP sehr attraktiv.
LDAP-Module in Django
Um die Authentifizierung und Aufbau der Organigramm in der zu entwickelnden Web-Anwendung zu implementieren, werden zwei Module eingesetzt. Das erste Modul ist „django-auth-ldap“ und ermöglicht es, das Django-Projekt gegen einen beliebigen LDAP-Server zu authentifizieren. Das zweite Modul „ldap“ wird für die Abfrage der hierarchischen Struktur des LDAP-Servers benutzt.
Die beiden Module sind in der Standardinstallation von Django nicht verfügbar und sollten extra installiert werden.
Userinterface der Web-Anwendung
Um das User Interface zu gestalten wird CSS-Framework Bootstrap eingesetzt. Das Framework existiert schon als ein Toolkits für Django „django-bootstrap-toolkit“ und lässt sich ziemlich einfach einsetzen. Eine Sammlung von schon fertigen Form-Widgets erleichtert und beschleunigt die Entwicklung einer Benutzeroberfläche.
Darüber hinaus ermöglicht Bootstrap Kompatibilität für die meist benutzten Browser, was dem Entwickler viel Arbeit abnimmt.
Visuelle Hierarchie (Organigramm)
Um das Organigramm im Browser abzubilden, ist der Einsatz vom jQuery Org Chart geplant. Da das PlugIn aber nicht allen Anforderungen entspricht, wird es weiterentwickelt.
Falls jemand andere PlugIns mit ähnlichen Funktionen kennt, wäre ich sehr dankbar!
Schlagwörter: bootstrap, django, jquery, ldap, openldap, organigramm, suteco, Visuelle Hierarchie