Implementierung

Die Fax-Anwendung ist als eigenständiges Zope-Produkt entwickelt worden. Dieses Produkt kann als eine Art Klasse verstanden werden, deren Instanzen die eigentliche Funktionalität bereitstellen. Die hier beschriebenen Skripte und Methoden sind nur in dem Fax-Produkt sichtbar und können ebenfalls nur im Produkt verändert werden.

Wichtige Datenobjekte

Die wichtigsten Datenobjekte, auf denen innerhalb der Fax-Umgebung gearbeitet bzw. zugegriffen wird, sind die Fax-Objekte und Nutzer-Objekte. An die Fax-Objekte sind neben den rein innhaltlichen Nutzdaten noch Status-Informationen über das jeweilige Fax gebunden. Die Definition der Nutzer-Objekte innerhalb von Zope basiert auf dem LDAP-Verzeichnisdienst, aus dem Nutzer in das Zope-System importiert werden.

Eigenschaften des Fax-Objektes

Jedes Fax-Objekt wird durch einen Ordner im Filesystem repräsentiert, welcher sich innerhalb der Zope-Umgebung ebenfalls als Folder-Objekt darstellt. In diesem Ordner befindet sich das eigentliche Fax in mehreren Formaten: TIFF,PNG,PDF und GZ-Archiv. Für die Interaktion mit dem Nutzer werden nur die Daten im PNG-Format (zur Anzeige im Browser) und im PDF-Format (Download des Faxes) verwendet. Das TIF-Format ist das Quellformat und wird nur für Konvertierungsprozesse verwendet. Das TIFF-File darf nicht entfernt werden, da sonst keine Neuerzeugung bzw. Wiederherstellung des des Faxes möglich ist. Das GZ-Archiv enthält eine Postscript-Datei, deren Inhalt das Ergebnis der Konvertierung des TIFFs zu Postscript ist (Verwendung für Rotation und Wiederherstellung).

Zusätzlich zu den oben genannten Dateien befindet sich noch eine Text-Datei in jedem Fax-Ordner. Diese Textdatei enthält den Inhalt der HylaFax-Log-Datei für das jeweilige Fax.

Dem Fax-Folder werden außerdem verschiedene Attribute zugeordnet, die bestimmte Informationen über das Fax enthalten. Diese Attributierung erfolgt anhand von sogenannten "Properties".

Die Fax-Objekte haben folgende (mit Informationen vom Faxserver vorbelegten) Properties:

Es werden zusätzlich für Fax-Objekte folgende Properties angelegt:

  • manager_viewed (Typ int) - Manager hat die Seite x Seite des Faxes betrachtet

  • user_viewed (Typ boolean) - Hat Nutzer Fax angesehen?

  • rejected (Typ boolean) - Wurde Fax abgewiesen?

  • lock (Typ string) - signalisiert, ob Fax in Bearbeitung und somit gesperrt

  • history (Typ lines) - Journal der (Nutzer-)Aktionen auf dem Fax (ansehen, zuordnen, löschen, wiederherstellen, weiterleiten, abweisen etc.)

  • rotation (Typ int) - Enthält die Grad-Zahl, um die das Fax gedreht wurde