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})
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 })
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 })
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 })
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})
def privacy(request): return render_template(request, "privacy")
def faq(request): return render_template(request, "faq")
def docs(request): return render_template(request, "docs")
def about(request): return render_template(request, "about")