Source code for webapp.processors

#!/usr/bin/env python
# -*- coding: utf-8 -*-

"""
#TODO: add content descriptions
"""

from __future__ import print_function, division, unicode_literals, absolute_import, generators

import socket

import settings


from webapp.models import *

__author__ = "Pascal Held"
__email__ = "paheld@gmail.com"


[docs]def general_processor(request): """Add some environment settings to the context variable. """ context = { "ANALYTICS_TRACKING_ID": settings.ANALYTICS_TRACKING_ID, "DIMENSION_HOSTNAME_LABEL": settings.DIMENSION_HOSTNAME_LABEL, "DIMENSION_USERNAME_LABEL": settings.DIMENSION_USERNAME_LABEL, "DIMENSION_GROUP_LABEL": settings.DIMENSION_GROUP_LABEL, "DIMENSION_ROUND_LABEL": settings.DIMENSION_ROUND_LABEL, "DIMENSION_DATASET_LABEL": settings.DIMENSION_DATASET_LABEL, "DIMENSION_ALGORITHM_LABEL": settings.DIMENSION_ALGORITHM_LABEL, "VISUALIZATION_DIMENSION_DEFAULT": settings.VISUALIZATION_DIMENSION_DEFAULT, "HOSTNAME": socket.gethostname(), "datasets": {ds.id: ds.get_jsonable(request.user) for ds in Dataset.objects.all()}, "TYPE_TRAINING": settings.TYPE_TRAINING, "TYPE_TEST": settings.TYPE_TEST, "TYPE_VALIDATION": settings.TYPE_VALIDATION, "algorithms": settings.algorithms_jsonable, "distances": settings.distances, "rounds": {r.id: r.get_jsonable() for r in Round.objects.all()}, "ADMIN": request.user.is_superuser, "username": request.user.username } groups = {} user = request.user for group in Group.objects.prefetch_related("users", "round_set").all().order_by("name"): if group.users.filter(pk=user.pk).count(): groups[group.name] = { "name": group.name, "new": False, "url": group.url(), "rounds": group.get_round_ids() } elif group.free_to_enter: groups[group.name] = { "name": group.name, "new": True, "url": group.join_url(), "rounds": group.get_round_ids() } context["groups"] = groups return context