next up previous contents
Nächste Seite: Eingabe-Möglichkeiten von gegliedertem Text Aufwärts: Erstellung von Prototypen Vorherige Seite: Vorlesungs-Seiten   Inhalt

Referenzierung auf Dozenten

In PropertyObjects kann man auch Auswahllisten angeben, von denen der Anwender eine aus mehreren Optionen auswählen muss. Bei den Professoren-Seiten war dies eine der statisch vorhandenen Personen-Kategorien. Bei den Vorlesungs-Seiten hingegen wird eine Auswahlliste für alle angelegten Dozenten benötigt. Diese Liste muss dynamisch aus allen eingegebenen Professoren und Mitarbeitern erzeugt werden.

Dazu wird ein weiteres Python-Script benötigt, das alle Dozenten einsammeln und der Auswahlliste zur Verfügung stellen kann. Das Script ähnelt dem Script von Seite [*] sehr und unterscheidet sich lediglich in folgender Zeile:




Auszug aus Python-Script: /fha/informatik/vorlesungen/getDozentList

    # append to result
    if add_to_data:
        result.append(x.getPersonProperty('Titel') + " " + \
                      x.getPersonProperty('Nachname') + " | " + x.getId() )

Das Script sammelt alle Dozenten aus dem professoren-Verzeichnis ein und merkt sich ihren Titel, Nachnamen und ID. Die ID wird mit einem senkrechten Strich vom Namen abgetrennt, damit man daraus später in einem anderen Script den Link generieren kann.

Die beiden folgende Python-Scripte zerlegen den String in den Namens- bzw. Link-Teil. Sie können direkt von einem Page Template aufgerufen werden.

Hier wird der Name des Dozenten extrahiert:




Python-Script: /fha/informatik/vorlesungen/getDozentName

# get my_data
my_data = context.objectValues()

# create empty result
result=""

for y in my_data:
    # is A_vorlesungsdaten available?
    if y.getId() == "A_vorlesungsdaten":
        temp = y.getProperty('Dozent')
        limiter = temp.find('|')
        
        result = temp[0:limiter-1]

return result

Dieses Script extrahiert die ID und gibt den kompletten Link zurück:




Python-Script: /fha/informatik/vorlesungen/getDozentLink

# get my_data
my_data = context.objectValues()

# create empty result
result=""

for y in my_data:
    # is A_vorlesungsdaten available?
    if y.getId() == "A_vorlesungsdaten":
        temp = y.getProperty('Dozent')
        limiter = temp.find('|')
        
        result = "../../professoren/" + temp[limiter+2:] + "/prof_view"

return result


next up previous contents
Nächste Seite: Eingabe-Möglichkeiten von gegliedertem Text Aufwärts: Erstellung von Prototypen Vorherige Seite: Vorlesungs-Seiten   Inhalt
Reinhard Holler 2003-04-12