Hilfsmethoden

Im weiteren Verlauf sollen Listen der Occurrences in die Ansichten des Registration-Artikeltyps eingeblendet werden. Angemeldete Nutzer sollen so in der Lage sein, für eine bestimmte Occurrence Reservierungen vorzunehmen.

Um jedoch die Views nicht direkt mit der Datenbank kommunizieren zu lassen, werden Hilfsmethoden eingeführt, wobei die Datenbankoperationen abstrahiert werden. Hiermit werden dann auch Tests möglich, die nicht auf eine produktive Datenbank zurückgreifen müssen.

Zunächst werden die Interfaces für die Hilfsmethoden in vs.registration.interfaces definiert:

class IRegistrations(Interface):
    """Searches appropriate occurrences
    """

    def registrations_for_registrant(registrant):
        """Return a list of all registrations of a specific registrant as
        list of dictionaries with keys 'registration_key', 'url' and
        'title'.
        """

    def occurrence_by_key(occurence_key):
        """Get an IOccurrence from an occurrence key
        """

class IReservations(Interface):
    """A utility capable of making reservations
    """

    def __call__(reservation):
        """Make a reservation
        """

Im weiteren Verlauf werden diese Hilfsmethoden dann implementiert und Views erstellt, die diese nutzen.