3 from question import Question
6 accepted = models.BooleanField(default=False)
7 accepted_at = models.DateTimeField(null=True, blank=True)
8 accepted_by = models.ForeignKey(User, null=True)
10 class Meta(QandA.Meta):
15 return self.question.headline
17 def mark_accepted(self, user):
18 if not self.accepted and not self.question.answer_accepted:
20 self.accepted_at = datetime.datetime.now()
21 self.accepted_by = user
23 self.question.answer_accepted = True
29 def unmark_accepted(self):
33 self.question.answer_accepted = False
39 def _update_question_answer_count(self, diff):
40 self.question.answer_count = self.question.answer_count + diff
43 def activate_revision(self, user, revision):
44 super(Answer, self).activate_revision(user, revision)
45 self.question.update_last_activity(user)
47 def mark_deleted(self, user):
48 if super(Answer, self).mark_deleted(user):
49 self._update_question_answer_count(-1)
51 def unmark_deleted(self):
52 if super(Answer, self).unmark_deleted():
53 self._update_question_answer_count(1)
55 def get_latest_revision(self):
56 return self.revisions.all()[0]
58 def get_question_title(self):
59 return self.question.title
61 def get_absolute_url(self):
62 return '%s#%s' % (self.question.get_absolute_url(), self.id)
64 def save(self, *args, **kwargs):
65 super(Answer, self).save(*args, **kwargs)
68 self._update_question_answer_count(1)
70 def __unicode__(self):
74 class AnswerRevision(NodeRevision):