'Sets the solution, and fires any needed events.
Does not check permission of the user making the change.'

def set_solution(self, answer, solver):

    from kitsune.questions.events import QuestionSolvedEvent
    self.solution = answer
    self.save()
    self.add_metadata(solver_id=str(solver.id))
    statsd.incr('questions.solution')
    QuestionSolvedEvent(answer).fire(exclude=self.creator)
    actstream.action.send(solver, verb='marked    as    a    solution', action_object=answer, target=self)
