diff options
author | Evgeny Fadeev <evgeny.fadeev@gmail.com> | 2013-03-06 20:50:21 -0300 |
---|---|---|
committer | Evgeny Fadeev <evgeny.fadeev@gmail.com> | 2013-03-06 20:50:21 -0300 |
commit | d13ee8aa889304ca95cbd8cc777ab5e957fbed54 (patch) | |
tree | b2f484651b068e5df9c204fdff459633f7cd00e3 /askbot/models | |
parent | fb0df1a738d3a9dc01c5b54619f286148532c6ce (diff) | |
download | askbot-d13ee8aa889304ca95cbd8cc777ab5e957fbed54.tar.gz askbot-d13ee8aa889304ca95cbd8cc777ab5e957fbed54.tar.bz2 askbot-d13ee8aa889304ca95cbd8cc777ab5e957fbed54.zip |
added function to repost answer as comment under the latest previously posted answer
Diffstat (limited to 'askbot/models')
-rw-r--r-- | askbot/models/post.py | 30 | ||||
-rw-r--r-- | askbot/models/question.py | 7 |
2 files changed, 33 insertions, 4 deletions
diff --git a/askbot/models/post.py b/askbot/models/post.py index 66004ce4..322a3759 100644 --- a/askbot/models/post.py +++ b/askbot/models/post.py @@ -581,6 +581,11 @@ class Post(models.Model): def is_reject_reason(self): return self.post_type == 'reject_reason' + def get_last_edited_date(self): + """returns date of last edit or date of creation + if there were no edits""" + return self.last_edited_at or self.added_at + def get_moderators(self): """returns query set of users who are site administrators and moderators""" @@ -589,10 +594,27 @@ class Post(models.Model): user_filter = user_filter & models.Q(groups__in=self.groups.all()) return User.objects.filter(user_filter) - def get_last_edited_date(self): - """returns date of last edit or date of creation - if there were no edits""" - return self.last_edited_at or self.added_at + def get_previous_answer(self, user=None): + """returns a previous answer to a given answer; + only works on the "answer" post types""" + assert(self.post_type == 'answer') + all_answers = self.thread.get_answers(user=user) + + matching_answers = all_answers.filter( + added_at__lt=self.added_at, + ).order_by('-added_at') + + if len(matching_answers) == 0: + return None + + answer = matching_answers[0] + + if answer.id == self.id: + return None + if answer.added_at > self.added_at: + return None + + return answer def has_group(self, group): """true if post belongs to the group""" diff --git a/askbot/models/question.py b/askbot/models/question.py index 2d282fbc..d1fa7cae 100644 --- a/askbot/models/question.py +++ b/askbot/models/question.py @@ -600,6 +600,13 @@ class Thread(models.Model): else: return self.get_answers(user).count() + def get_oldest_answer_id(self, user=None): + """give oldest visible answer id for the user""" + answers = self.get_answers(user=user).order_by('added_at') + if len(answers) > 0: + return answers[0].id + return None + def get_sharing_info(self, visitor=None): """returns a dictionary with abbreviated thread sharing info: * users - up to a certain number of users, excluding the visitor |