deferred.defer(requestEmailConfirmation, submission.key)

        self.jsonReply(submission.hashify())


TerveyskyselySubmission.collectionHandler(TerveyskyselySubmissionCollectionHandler)


class TerveyskyselySubmissionHandler (HardenedHandler):
    def get_(self, user, key):
        self.genericIndividualGet(user, key)

    def post_(self, user, key):
        self.genericIndividualPost(user, key)

TerveyskyselySubmission.individualHandler(TerveyskyselySubmissionHandler)


class TerveyskyselyConfirmationHandler(webapp2.RequestHandler):
    def get(self, key):
        logging.info("Confirmation %s" % key)
        submissions = TerveyskyselySubmission.gql("WHERE confirmation_code = :1", key)

        # It is theoretically possible that there are multiple submissions with the
        # same confirmation code, but we simply confirm all of them.
        for submission in submissions:
            submission.confirmation_code = None
            submission.submitter_confirmed = True
            submission.put()

        self.redirect('/#/terveyskysely/kiitos_vastauksesta')