summaryrefslogtreecommitdiffstats
path: root/askbot/models
diff options
context:
space:
mode:
authorEvgeny Fadeev <evgeny.fadeev@gmail.com>2013-03-06 20:50:21 -0300
committerEvgeny Fadeev <evgeny.fadeev@gmail.com>2013-03-06 20:50:21 -0300
commitd13ee8aa889304ca95cbd8cc777ab5e957fbed54 (patch)
treeb2f484651b068e5df9c204fdff459633f7cd00e3 /askbot/models
parentfb0df1a738d3a9dc01c5b54619f286148532c6ce (diff)
downloadaskbot-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.py30
-rw-r--r--askbot/models/question.py7
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