X-Git-Url: https://git.openstreetmap.org./osqa.git/blobdiff_plain/b1dc5a1a7af5bacdee0e0b8be70bb9e903fa209f..c20ffa09925ec21f3631e6f14f078f2f8b05be70:/forum_modules/updater/base.py
diff --git a/forum_modules/updater/base.py b/forum_modules/updater/base.py
index 75e1a21..c5bac16 100644
--- a/forum_modules/updater/base.py
+++ b/forum_modules/updater/base.py
@@ -13,10 +13,12 @@ import logging
from xml.dom.minidom import parse, parseString
+from forum.startup import get_database_engine
from forum.models import Question, User
-from forum.settings import APP_URL, SVN_REVISION
+from forum.settings import APP_URL, SVN_REVISION, APP_TITLE, APP_DESCRIPTION
from django import VERSION as DJANGO_VERSION
from django.utils import simplejson
+from django.utils.html import escape
from django.utils.encoding import smart_unicode
from django.conf import settings as django_settings
from django.utils.translation import ugettext as _
@@ -36,6 +38,18 @@ def get_site_views():
return views
+# Gets the active users count since the last visit
+def get_active_users():
+ users_count = 0
+
+ try:
+ if settings.LATEST_UPDATE_DATETIME:
+ users_count = User.objects.filter(last_login__gt=settings.LATEST_UPDATE_DATETIME).count()
+ except:
+ pass
+
+ return users_count
+
def get_server_name():
url = '%s/' % APP_URL
@@ -75,12 +89,16 @@ def check_for_updates():
admin_emails_xml += '' % email
admin_emails_xml += ''
+ database_type = get_database_engine()
+
statistics = """
+
+
-
+
@@ -90,12 +108,15 @@ def check_for_updates():
""" % {
'site_key' : settings.SITE_KEY,
'app_url' : APP_URL,
+ 'app_title' : escape(APP_TITLE.value),
+ 'app_description' : escape(APP_DESCRIPTION.value),
'svn_revision' : svn_revision,
'site_views' : get_site_views(),
'server_name' : get_server_name(),
+ 'active_users' : get_active_users(),
'python_version' : ''.join(sys.version.splitlines()),
'django_version' : str(DJANGO_VERSION),
- 'database' : django_settings.DATABASE_ENGINE,
+ 'database' : database_type,
'os' : str(os.uname()),
'emails' : admin_emails_xml,
}
@@ -119,12 +140,17 @@ def check_for_updates():
content = check_response.read()
except urllib2.HTTPError, error:
content = error.read()
+ except:
+ return _("Wasn't able to check to the update server.")
# Read the messages from the Update Server
- messages_xml_url = '%s%s' % (settings.UPDATE_SERVER_URL, '/messages/xml/')
- messages_request = urllib2.Request(messages_xml_url, headers=headers)
- messages_response = urllib2.urlopen(messages_request)
- messages_xml = messages_response.read()
+ try:
+ messages_xml_url = '%s%s' % (settings.UPDATE_SERVER_URL, '/messages/xml/')
+ messages_request = urllib2.Request(messages_xml_url, headers=headers)
+ messages_response = urllib2.urlopen(messages_request)
+ messages_xml = messages_response.read()
+ except:
+ return _("Wasn't able to retreive the update messages.")
# Store the messages XML in a Setting object
settings.UPDATE_MESSAGES_XML.set_value(messages_xml)
@@ -132,7 +158,11 @@ def check_for_updates():
messages_dom = parseString(messages_xml)
messages_count = len(messages_dom.getElementsByTagName('message'))
- return _('%d update messages have been downloaded') % messages_count
+ # Set the latest update datetime to now.
+ now = datetime.datetime.now()
+ settings.LATEST_UPDATE_DATETIME.set_value(now)
+
+ return _('%d update messages have been downloaded.') % messages_count
def update_trigger():
# Trigger the update process
@@ -141,6 +171,4 @@ def update_trigger():
update_status = check_for_updates()
logging.error(smart_unicode("Update process has been triggered: %s" % update_status))
-
- # Set the latest update datetime to now.
settings.LATEST_UPDATE_DATETIME.set_value(now)