from forum.settings.base import Setting
from forum.settings.forms import SettingsSetForm
-from forum.models import Activity, Question, Answer, User, Node
-from forum import const
+from forum.models import Question, Answer, User, Node, Action
from forum import settings
def super_user_required(fn):
def index(request):
return render_to_response('osqaadmin/index.html', {
'sets': get_all_sets(),
- 'settings_pack': settings.SETTINGS_PACK,
+ 'settings_pack': unicode(settings.SETTINGS_PACK),
'statistics': get_statistics(),
'recent_activity': get_recent_activity(),
}, context_instance=RequestContext(request))
if set_name in ('minrep', 'badges', 'repgain'):
settings.SETTINGS_PACK.set_value("custom")
+
+ return HttpResponseRedirect(reverse('admin_set', args=[set_name]))
else:
form = SettingsSetForm(set)
return render_to_response('osqaadmin/set.html', {
'form': form,
+ 'markdown': set.markdown,
'sets': get_all_sets(),
}, context_instance=RequestContext(request))
return sorted(Setting.sets.values(), lambda s1, s2: s1.weight - s2.weight)
def get_recent_activity():
- return Activity.objects.filter(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')[0:10]
+ return Action.objects.order_by('-action_date')[0:30]
def get_statistics():
return {
'total_users': User.objects.all().count(),
'users_last_24': User.objects.filter(date_joined__gt=(datetime.now() - timedelta(days=1))).count(),
- 'total_questions': Question.objects.filter(deleted=False).count(),
- 'questions_last_24': Question.objects.filter(deleted=False, added_at__gt=(datetime.now() - timedelta(days=1))).count(),
- 'total_answers': Answer.objects.filter(deleted=False).count(),
- 'answers_last_24': Answer.objects.filter(deleted=False, added_at__gt=(datetime.now() - timedelta(days=1))).count(),
+ 'total_questions': Question.objects.filter(deleted=None).count(),
+ 'questions_last_24': Question.objects.filter(deleted=None, added_at__gt=(datetime.now() - timedelta(days=1))).count(),
+ 'total_answers': Answer.objects.filter(deleted=None).count(),
+ 'answers_last_24': Answer.objects.filter(deleted=None, added_at__gt=(datetime.now() - timedelta(days=1))).count(),
}
@super_user_required
def recalculate_denormalized(request):
for n in Node.objects.all():
n = n.leaf
- n.vote_up_count = n.votes.filter(canceled=False, vote=1).count()
- n.vote_down_count = n.votes.filter(canceled=False, vote=-1).count()
+ n.score = n.votes.aggregate(score=Sum('value'))['score']
+ if not n.score: n.score = 0
n.save()
for u in User.objects.all():
- u.reputation = u.reputes.filter(canceled=False).aggregate(reputation=Sum('value'))['reputation']
+ u.reputation = u.reputes.aggregate(reputation=Sum('value'))['reputation']
u.save()
request.user.message_set.create(message=_('All values recalculated'))