Siteinfo App¶
The siteinfo
site app enables system administrators and developers to view
site details and statistics gathered from project and backend apps.
Basics¶
The app renders a site which displays information and statistics regarding the
site and installed SODAR apps. Providing app statistics for siteinfo done via
implementing the get_statistics()
function in your app plugins. Currently,
access to the app is limited to site administrators.
Installation¶
Warning
To install this app you must have the django-sodar-core
package
installed and the projectroles
app integrated into your Django site.
See the projectroles integration document
for instructions.
Django Settings¶
The siteinfo app is available for your Django site after installing
django-sodar-core
. Add the app into THIRD_PARTY_APPS
as follows:
THIRD_PARTY_APPS = [
# ...
'siteinfo.apps.SiteinfoConfig',
]
URL Configuration¶
In the Django URL configuration file, add the following line under
urlpatterns
to include siteinfo URLs in your site.
urlpatterns = [
# ...
url(r'^siteinfo/', include('siteinfo.urls')),
]
Migrate Database and Register Plugin¶
To migrate the Django database and register the siteinfo site app plugin, run the following management command:
$ ./manage.py migrate
In addition to the database migration operation, you should see the following output:
Registering Plugin for siteinfo.plugins.SiteAppPlugin
Usage¶
When logged in as a superuser, you can find the “Site Info” link in your user dropdown menu in the top right corner of the site.
This application is not available for users with a non-superuser status.
Providing App Statistics¶
In your project app or backend plugin, implement the get_statistics()
function. It should return a dictionary containing, for each statistics item,
a program friendly key and certain member fields:
label
: Human readable label for the statistics item.value
: The value to be renderedurl
: The url to link to from the value for additional information (optional)description
: Additional information (optional)
Example:
def get_statistics(self):
return {
'stat_id': {
'label': 'Some statistic',
'value': 9000,
'url': reverse('home'),
'description': 'More information here'
}
}