Die Übersichtsseite über alle eingetragenen Professoren und andere Mitarbeiter kann nun anhand der erfassten Daten automatisch generiert werden.
Wie bei den anderen Dokumenten auch, muss auch hier zunächst ein Page Template-Dokument angelegt werden, das das Layout der Seite enthält. Das Dokument ist im Anhang D.3 abgedruckt.
Es gibt auf der Übersichtsseite folgende Personengruppen:
Für die Unterscheidung der Personen ist es notwendig, in die Erfassungsmaske ein Auswahlfeld zu integrieren, in dem man den Personentyp auswählen kann. Diese ist in Abbildung 11 ganz unten als ,,Kategorie`` zu sehen.
Für die Auflistung der Professoren auf der Seite wird ein Script benötigt, das alle anzuzeigenden Namen für eine Kategorie ermitteln kann. Scripte werden in Zope in der Regel mit Python realisiert. Es kann aber auch Perl verwendet werden. Mit folgenden Python-Script kann man die Personen zu einer gewählten Kategorie ermitteln.
Python-Script: /fha/informatik/professoren/getPersonList
# get all folder objects my_data = container.objectValues('Folder') # create empty result result = [] for x in my_data: # add this item to result? add_to_data = 0 # go through all PropertyObjects for y in x.objectValues('PropertyObject'): # is A_stammdaten available? if y.getId() == "A_stammdaten": my_vorname = y.getProperty('Vorname') my_property = y.getProperty('Kategorie') if my_vorname != 'mein_vorname' and my_property == person_type: add_to_data = 1 break # append to result if add_to_data: result.append(x) return result
Die Variable ,,person_type`` muss dem Script als Parameter übergeben werden. Die zusätzlich abgeprüfte Bedingung my_vorname != 'mein_vorname' stellt sicher, dass keine Objekte angezeigt werden, die noch nicht abgespeichert worden sind45.
Das gezeigte Script hat in der gezeigten Form noch eine Schwachstelle: die Objekte werden in der Reihenfolge angezeigt, in der sie in der zweiten Zeile im Beispiel-Code von der Funktion objectValues('Folder') zurückliefert. Die Sortierung nach Nachname und Vorname ist etwas komplex, da sie anhand von Attributen eines Objektes, das in dem Verzeichnis enthalten ist, sortieren muss. Aus Zeitmangel wurde diese Funktion nicht mehr implementiert.
Auf der Professoren-Übersichtsseite werden neben dem Namen und dem Titel auch noch Tätigkeitsschwerpunkte angezeigt. Für diesen Inhalt ist das PropertyObjekt C_taetigkeiten zuständig, das lediglich über eine Eingabezeile verfügt, die diese Information aufnehmen kann.