- def get_digest_control(self):
- try:
- digest_control = KeyValue.objects.get(key='DIGEST_CONTROL')
- except:
- digest_control = KeyValue(key='DIGEST_CONTROL', value={
- 'LAST_DAILY': datetime.now() - timedelta(days=1),
- 'LAST_WEEKLY': datetime.now() - timedelta(days=1),
- })
-
- return digest_control
-
- def prepare_activity(self, since):
- all_activity = Activity.objects.filter(active_at__gt=since, activity_type__in=(
- const.TYPE_ACTIVITY_ASK_QUESTION, const.TYPE_ACTIVITY_ANSWER,
- const.TYPE_ACTIVITY_COMMENT_QUESTION, const.TYPE_ACTIVITY_COMMENT_ANSWER,
- const.TYPE_ACTIVITY_MARK_ANSWER
- )).order_by('active_at')
-
- question_records = {}
- new_questions = []
-
-
- for activity in all_activity:
- try:
- question = self.get_question_for_activity(activity)
-
- if not question.id in question_records:
- question_records[question.id] = QuestionRecord(question)
-
- question_records[question.id].log_activity(activity)
-
- if activity.activity_type == const.TYPE_ACTIVITY_ASK_QUESTION:
- new_questions.append(question)
- except:
- pass
-
- return new_questions, question_records
-
- def get_question_for_activity(self, activity):
- if activity.activity_type == const.TYPE_ACTIVITY_ASK_QUESTION:
- question = activity.content_object
- elif activity.activity_type == const.TYPE_ACTIVITY_ANSWER:
- question = activity.content_object.question
- elif activity.activity_type == const.TYPE_ACTIVITY_COMMENT_QUESTION:
- question = activity.content_object.content_object
- elif activity.activity_type == const.TYPE_ACTIVITY_COMMENT_ANSWER:
- question = activity.content_object.content_object.question
- elif activity.activity_type == const.TYPE_ACTIVITY_MARK_ANSWER:
- question = activity.content_object.question