def post_(self, user):
        submission = TerveyskyselySubmission()
        submission.populateFromRequest(self.request.Params)

        if user:
            submission.answered_by = Profile.byUser(user)
        else:
            # Used for validating the submission via email link.
            submission.confirmation_code = uuid.uuid4().hex
            submission.submitter_confirmed = False

        submission.owner_confirmed = False
        submission.Put()

        if user:
            deferred.defer(processSubmission, user.user_id(), user.nickname(), submission.key)
        else:
            deferred.defer(requestEmailConfirmation, submission.key)

        self.jsonReply(submission.hashify())