1 from django.conf import settings
2 from django.contrib.auth import REDIRECT_FIELD_NAME
3 from django.contrib.auth.decorators import login_required
4 from django.core.urlresolvers import reverse
5 from django.http import HttpResponse
6 from django.shortcuts import render
7 from django.utils.http import urlencode
8 from django_openid_auth.views import make_consumer
9 from openid.extensions import ax
10 from pyqcg.qcg import QCG
11 from qcg.models import Task
13 from qcg.utils import update_user_data
17 return render(request, 'qcg/base.html')
20 def openid_begin(request):
21 openid_request = make_consumer(request).begin(settings.OPENID_SSO_SERVER_URL)
23 fetch_request = ax.FetchRequest()
24 for (attr, alias) in [('http://axschema.org/namePerson/friendly', 'nickname'),
25 ('http://axschema.org/contact/email', 'email'),
26 ('http://axschema.org/namePerson', 'fullname'),
27 ('http://openid.plgrid.pl/certificate/proxy', 'proxy'),
28 ('http://openid.plgrid.pl/certificate/userCert', 'userCert'),
29 ('http://openid.plgrid.pl/certificate/proxyPrivKey', 'proxyPrivKey'),
30 ('http://openid.plgrid.pl/POSTresponse', 'POSTresponse')]:
31 fetch_request.add(ax.AttrInfo(attr, alias=alias, required=True))
32 openid_request.addExtension(fetch_request)
34 return_to = request.build_absolute_uri(reverse('openid-complete'))
36 redirect_to = request.GET.get(REDIRECT_FIELD_NAME)
38 return_to += '?' + urlencode({REDIRECT_FIELD_NAME: redirect_to})
40 return HttpResponse(openid_request.htmlMarkup(request.build_absolute_uri('/'), return_to))
44 def jobs_list(request):
46 # update_user_data(request.user, request.session['proxy'])
48 tasks = Task.objects.filter(job__owner=request.user) \
49 .select_related('job').prefetch_related('allocations__nodes') \
50 .order_by('-job__submission_time', '-submission_time')[:25]
52 return render(request, 'qcg/jobs.html', {'tasks': tasks})
55 def job_details(request):
56 return render(request, 'qcg/job.html')