Beispiel #1
0
def index(request):
    """
  the page from which one chooses how to log in.
  """

    user = get_user(request)

    # single auth system?
    if len(helios_auth.ENABLED_AUTH_SYSTEMS) == 1 and not user:
        return HttpResponseRedirect(
            reverse(AUTH_START, args=[helios_auth.ENABLED_AUTH_SYSTEMS[0]]) +
            '?return_url=' + request.GET.get('return_url', ''))

    #if helios_auth.DEFAULT_AUTH_SYSTEM and not user:
    #  return HttpResponseRedirect(reverse(start, args=[helios_auth.DEFAULT_AUTH_SYSTEM])+ '?return_url=' + request.GET.get('return_url', ''))

    default_auth_system_obj = None
    if helios_auth.DEFAULT_AUTH_SYSTEM:
        default_auth_system_obj = AUTH_SYSTEMS[helios_auth.DEFAULT_AUTH_SYSTEM]

    #form = password.LoginForm()

    return render_template(
        request, 'index', {
            'return_url': request.GET.get('return_url', '/'),
            'enabled_auth_systems': helios_auth.ENABLED_AUTH_SYSTEMS,
            'default_auth_system': helios_auth.DEFAULT_AUTH_SYSTEM,
            'default_auth_system_obj': default_auth_system_obj
        })
def recent_problem_elections(request):
    user = require_admin(request)

    # elections left unfrozen older than 1 day old (and younger than 10 days old, so we don't go back too far)
    elections_with_problems = Election.objects.filter(
        frozen_at=None,
        created_at__gt=datetime.datetime.utcnow() -
        datetime.timedelta(days=10),
        created_at__lt=datetime.datetime.utcnow() - datetime.timedelta(days=1))

    return render_template(request, "stats_problem_elections",
                           {'elections': elections_with_problems})
def recent_votes(request):
    user = require_admin(request)

    # elections with a vote in the last 24 hours, ordered by most recent cast vote time
    # also annotated with number of votes cast in last 24 hours
    elections_with_votes_in_24hours = Election.objects.filter(
        voter__castvote__cast_at__gt=datetime.datetime.utcnow() -
        datetime.timedelta(days=1)).annotate(
            last_cast_vote=Max('voter__castvote__cast_at'),
            num_recent_cast_votes=Count('voter__castvote')).order_by(
                '-last_cast_vote')

    return render_template(request, "stats_recent_votes",
                           {'elections': elections_with_votes_in_24hours})
Beispiel #4
0
def admin_actions(request):
    user = require_admin(request)
    page = int(request.GET.get('page', 1))
    limit = int(request.GET.get('limit', 25))
    actions = HeliosLog.objects.filter(user=user).order_by('-at')
    actions_paginator = Paginator(actions, limit)
    actions_page = actions_paginator.page(page)

    return render_template(
        request, "stats_admin_actions", {
            'actions': actions_page.object_list,
            'actions_page': actions_page,
            'limit': limit
        })
Beispiel #5
0
def home(request):
    from helios.models import Election
    import heliosinstitution

    user = get_user(request)

    if user and user.user_type == 'shibboleth':
        return HttpResponseRedirect(reverse(heliosinstitution.views.home))
    # load the featured elections
    featured_elections = Election.get_featured()

    create_p = can_create_election(request)

    if create_p:
        elections_administered = Election.get_by_user_as_admin(
            user, archived_p=False, limit=5)
    else:
        elections_administered = None

    if user:
        elections_voted = Election.get_by_user_as_voter(user, limit=5)
    else:
        elections_voted = None

    auth_systems = copy.copy(settings.AUTH_ENABLED_AUTH_SYSTEMS)
    try:
        auth_systems.remove('password')
    except:
        pass

    login_box = auth_views.login_box_raw(request,
                                         return_url="/",
                                         auth_systems=auth_systems)

    return render_template(
        request, "index", {
            'elections': featured_elections,
            'elections_administered': elections_administered,
            'elections_voted': elections_voted,
            'create_p': create_p,
            'login_box': login_box
        })
def elections(request):
    user = require_admin(request)

    page = int(request.GET.get('page', 1))
    limit = int(request.GET.get('limit', 25))
    q = request.GET.get('q', '')

    elections = Election.objects.filter(
        name__icontains=q).order_by('-created_at')
    elections_paginator = Paginator(elections, limit)
    elections_page = elections_paginator.page(page)

    total_elections = elections_paginator.count

    return render_template(
        request, "stats_elections", {
            'elections': elections_page.object_list,
            'elections_page': elections_page,
            'limit': limit,
            'total_elections': total_elections,
            'q': q
        })
Beispiel #7
0
def home(request):
    # load the featured elections
    featured_elections = Election.get_featured()

    user = get_user(request)
    create_p = can_create_election(request)

    if create_p:
        elections_administered = Election.get_by_user_as_admin(
            user, archived_p=False, limit=5)
    else:
        elections_administered = None

    if user:
        elections_voted = Election.get_by_user_as_voter(user, limit=5)
    else:
        elections_voted = None

    auth_systems = copy.copy(settings.AUTH_ENABLED_AUTH_SYSTEMS)
    try:
        auth_systems.remove('password')
    except:
        pass

    login_box = auth_views.login_box_raw(request,
                                         return_url="/",
                                         auth_systems=auth_systems)

    return render_template(
        request, "index", {
            'elections': featured_elections,
            'elections_administered': elections_administered,
            'elections_voted': elections_voted,
            'create_p': create_p,
            'login_box': login_box
        })
Beispiel #8
0
def perms_why(request):
    if request.method == "GET":
        return render_template(request, "perms_why")

    return _do_auth(request)
def home(request):
    user = require_admin(request)
    num_votes_in_queue = CastVote.objects.filter(invalidated_at=None,
                                                 verified_at=None).count()
    return render_template(request, 'stats',
                           {'num_votes_in_queue': num_votes_in_queue})
Beispiel #10
0
def privacy(request):
    return render_template(request, "privacy")
Beispiel #11
0
def faq(request):
    return render_template(request, "faq")
Beispiel #12
0
def docs(request):
    return render_template(request, "docs")
Beispiel #13
0
def about(request):
    return render_template(request, "about")