diff --git a/helios b/helios index d7ed95619a63e1e5745f43427e9dbc0f8df0d028..ef0ee6f5e0fa2307f87998065fd0ff2aa6e29d07 160000 --- a/helios +++ b/helios @@ -1 +1 @@ -Subproject commit d7ed95619a63e1e5745f43427e9dbc0f8df0d028 +Subproject commit ef0ee6f5e0fa2307f87998065fd0ff2aa6e29d07 diff --git a/iacr/urls.py b/iacr/urls.py index b4350418f2fddddd1b6d647a5051c0ae0b44cfe7..a4c2eaafdda9b35162494dfac9615c437d510d3e 100644 --- a/iacr/urls.py +++ b/iacr/urls.py @@ -5,5 +5,6 @@ from views import * urlpatterns = patterns('', (r'^$', home), - (r'^about$', about) + (r'^about$', about), + (r'^cast$', cast) ) diff --git a/iacr/views.py b/iacr/views.py index 7539a5eb4b6429ecae233ff9074f9ed51db90410..84eb39a8b539fb8bd53b19256e92fb7b07f5c892 100644 --- a/iacr/views.py +++ b/iacr/views.py @@ -7,24 +7,40 @@ from auth.security import * from view_utils import * import helios.views +import helios from django.core.urlresolvers import reverse from django.http import HttpResponse, HttpResponseRedirect, Http404, HttpResponseNotAllowed def home(request): - user = get_user(request) - if user: - elections = Election.get_by_user_as_admin(user) - elections_registered = Election.get_by_user_as_voter(user) - else: - elections = [] - elections_registered = [] - - return render_template(request, "index", {'elections' : elections, 'elections_registered' : elections_registered}) + # create the election if need be + election_params = { + 'short_name' : 'iacr09', + 'name' : 'IACR 2009 Election', + 'description' : 'Election for the IACR Board - 2009', + 'uuid' : 'iacr', + 'cast_url' : reverse(cast), + 'self_registration' : False, + 'openreg': False, + 'admin' : helios.ADMIN + } + + election = Election.get_by_key_name(election_params['short_name']) + if not election: + election = Election(key_name = election_params['short_name'], **election_params) + election.put() + + return render_template(request, "index") def about(request): return HttpResponse(request, "about") -def election_shortcut(request, election_short_name): - election = Election.get_by_short_name(election_short_name) - return HttpResponseRedirect(reverse(helios.views.one_election_view, args=[election.uuid])) \ No newline at end of file +@helios.views.election_view(frozen=True) +def cast(request, election): + if request.method == "GET": + encrypted_vote = request.POST['encrypted_vote'] + request.session['encrypted_vote'] = encrypted_vote + return render_template(request, "cast", {'election': election}) + else: + # do the casting + pass diff --git a/settings.py b/settings.py index ba6cbffc39a3a0bfc6eabe4514689b0be2a1eda0..795e7940cabd465a65ed88ab5e3f1141a2944384 100644 --- a/settings.py +++ b/settings.py @@ -127,4 +127,4 @@ TEMPLATE_DEBUG = True URL_HOST = "https://iacr-helios.appspot.com" -IACR_ELECTION_UUID = '2d52d7fd-7d94-11de-b131-ed929ff4d68f' \ No newline at end of file +IACR_ELECTION_UUID = 'iacr' \ No newline at end of file