Source code for openassembly.pirate_consensus.views
# Create your views here.
from django.http import HttpResponse
import simplejson
import datetime
from pirate_consensus.models import ConfirmRankedVote, RankedVote, Consensus
[docs]def set_ranked_vote(request):
if not request.user.is_authenticated() or not request.user.is_active:
return HttpResponse(simplejson.dumps({'FAIL': True}),
mimetype='application/json')
if request.method == 'POST':
rl = request.POST[u'ranked_list']
object_pk = request.POST[u'object_pk']
cons = Consensus.objects.get(pk=object_pk)
rl = rl.split(',')
rank = 1
rl_ret = []
for cons_id in rl:
if cons_id != '':
rl_ret.append(cons_id)
nom = Consensus.objects.get(pk=cons_id)
try:
rvote = RankedVote.objects.get(parent=cons, nom_cons=nom, user=request.user)
except:
rvote = RankedVote(parent=cons, nom_cons=nom, user=request.user)
rvote.ranked_vote = rank
rank += 1
rvote.save()
#rvote.ranked_list = rl.split(',')
#rvote.save()
results = {'FAIL': False, 'rvote': rl_ret, 'now': 'Ranking Updated: ' + datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")}
else:
results = {'FAIL': True}
if 'application/json' in request.META.get('HTTP_ACCEPT', ''):
return HttpResponse(simplejson.dumps(results),
mimetype='application/json')
[docs]def confirm_ranked_vote(request):
if not request.user.is_authenticated() or not request.user.is_active:
return HttpResponse(simplejson.dumps({'FAIL': True}),
mimetype='application/json')
if request.method == 'POST':
object_pk = request.POST[u'object_pk']
cons = Consensus.objects.get(pk=object_pk)
try:
rvote = ConfirmRankedVote.objects.get(parent=cons,
user=request.user, submit_date=datetime.datetime.now())
rvote.confirm = True
except:
rvote = ConfirmRankedVote(parent=cons,
user=request.user, confirm=True, submit_date=datetime.datetime.now())
rvote.save()
js = "ranked_vote_confirm('" + object_pk + "',false);"
text = """<span id="confirm_button"><a class="red btn_gen" style="margin-left:20px;" onClick=" """ + js + """ ">Delete Your Ranking</a>"""
#rvote.ranked_list = rl.split(',')
#rvote.save()
results = {'FAIL': False, 'confirm_button': text}
else:
results = {'FAIL': True}
if 'application/json' in request.META.get('HTTP_ACCEPT', ''):
return HttpResponse(simplejson.dumps(results),
mimetype='application/json')
[docs]def del_confirm_ranked_vote(request):
if not request.user.is_authenticated() or not request.user.is_active:
return HttpResponse(simplejson.dumps({'FAIL': True}),
mimetype='application/json')
if request.method == 'POST':
object_pk = request.POST[u'object_pk']
cons = Consensus.objects.get(pk=object_pk)
rvote = ConfirmRankedVote.objects.get(parent=cons,
user=request.user)
rvote.confirm = False
js = "ranked_vote_confirm('" + object_pk + "',true);"
text = """<span id="confirm_button"><a class="green btn_gen" style="margin-left:20px;" onClick=" """ + js + """ ">Confirm Your Ranking</a>"""
#rvote.ranked_list = rl.split(',')
#rvote.save()
results = {'FAIL': False, 'confirm_button': text}
else:
results = {'FAIL': True}
if 'application/json' in request.META.get('HTTP_ACCEPT', ''):
return HttpResponse(simplejson.dumps(results),
mimetype='application/json')