Create a new signup facility in the site store's database.

        @param creator: a unicode string describing the creator of the new
        signup mechanism, for auditing purposes.

        @param signupClass: the item type of the signup mechanism to create.

        @param signupConf: a dictionary of keyword arguments for
        L{signupClass}'s constructor.

        @param product: A Product instance, describing the powerups to be
        installed with this signup.

        @param emailTemplate: a unicode string which contains some text that
        will be sent in confirmation emails generated by this signup mechanism
        (if any)

        @param prompt: a short unicode string describing this signup mechanism,
        as distinct from others.  For example: "Student Sign Up", or "Faculty
        Sign Up"

        @return: a newly-created, database-resident instance of signupClass.

def createSignup(self, creator, signupClass, signupConf,
                     product, emailTemplate, prompt):
        """
        Create a new signup facility in the site store's database.

        @param creator: a unicode string describing the creator of the new
        signup mechanism, for auditing purposes.

        @param signupClass: the item type of the signup mechanism to create.

        @param signupConf: a dictionary of keyword arguments for
        L{signupClass}'s constructor.

        @param product: A Product instance, describing the powerups to be
        installed with this signup.

        @param emailTemplate: a unicode string which contains some text that
        will be sent in confirmation emails generated by this signup mechanism
        (if any)

        @param prompt: a short unicode string describing this signup mechanism,
        as distinct from others.  For example: "Student Sign Up", or "Faculty
        Sign Up"

        @return: a newly-created, database-resident instance of signupClass.
        """

        siteStore = self.store.parent

        booth = siteStore.findOrCreate(TicketBooth, lambda booth: installOn(booth, siteStore))
        signupItem = signupClass(
            store=siteStore,
            booth=booth,
            product=product,
            emailTemplate=emailTemplate,
            prompt=prompt,
            **signupConf)
        siteStore.powerUp(signupItem)
        _SignupTracker(store=siteStore,
                       signupItem=signupItem,
                       createdOn=extime.Time(),
                       createdBy=creator)

        return signupItem