X-Git-Url: https://git.openstreetmap.org./osqa.git/blobdiff_plain/b7fff853ac74f81021b7da25ee0754e547fb8859..95757b7ab8ad52783347c645dd3bdb37d09740e2:/forum_modules/updates/base.py diff --git a/forum_modules/updates/base.py b/forum_modules/updates/base.py index 51fcdbe..ce5bc8b 100644 --- a/forum_modules/updates/base.py +++ b/forum_modules/updates/base.py @@ -1,3 +1,5 @@ +# -*- coding: utf-8 -*- + import os import sys import platform @@ -15,7 +17,7 @@ import logging from xml.dom.minidom import parse, parseString from forum.base import get_database_engine -from forum.models import Question, User +from forum.models import Question, Answer, Comment, User from forum.settings import APP_URL, SVN_REVISION, APP_TITLE, APP_DESCRIPTION from django import VERSION as DJANGO_VERSION from django.utils import simplejson @@ -92,13 +94,16 @@ def check_for_updates(): database_type = get_database_engine() - statistics = """ + statistics = u""" + + + @@ -114,6 +119,9 @@ def check_for_updates(): 'svn_revision' : svn_revision, 'site_views' : get_site_views(), 'server_name' : get_server_name(), + 'questions_count' : Question.objects.filter_state(deleted=False).count(), + 'answers_count' : Answer.objects.filter_state(deleted=False).count(), + 'comments_count' : Comment.objects.filter_state(deleted=False).count(), 'active_users' : get_active_users(), 'python_version' : ''.join(sys.version.splitlines()), 'django_version' : str(DJANGO_VERSION), @@ -123,6 +131,7 @@ def check_for_updates(): } # Compress the statistics XML dump + statistics = statistics.encode('ascii', 'xmlcharrefreplace') statistics_compressed = bz2.compress(statistics) # Pass the compressed statistics to the update server @@ -169,7 +178,10 @@ def update_trigger(): # Trigger the update process now = datetime.datetime.now() if (now - settings.LATEST_UPDATE_DATETIME) > datetime.timedelta(days=1): - update_status = check_for_updates() - - logging.error(smart_unicode("Update process has been triggered: %s" % update_status)) - settings.LATEST_UPDATE_DATETIME.set_value(now) + try: + update_status = check_for_updates() + logging.log(logging.INFO, smart_unicode("Update process has been triggered: %s" % update_status)) + except Exception, e: + logging.errror(smart_unicode(e)) + finally: + settings.LATEST_UPDATE_DATETIME.set_value(now)