blob: 6e51a30b781065a41e27791681d9d4f318123cd7 [file] [log] [blame]
from django.views import generic
from django.views.generic import View
from django.views.generic.edit import CreateView, UpdateView, DeleteView
from django.shortcuts import render, redirect
from django.contrib.auth import authenticate, login
from django.core.urlresolvers import reverse_lazy
from .models import Request
from .forms import UserForm
class IndexView(generic.ListView):
template_name = 'dashboard/index.html'
context_object_name = 'all_requests'
def get_queryset(self):
return Request.objects.all()
class ReviewerView(generic.ListView):
template_name = 'dashboard/reviewer.html'
context_object_name = 'all_requests'
def get_queryset(self):
return Request.objects.all()
class AdminView(generic.ListView):
template_name = 'dashboard/admin.html'
context_object_name = 'all_requests'
def get_queryset(self):
return Request.objects.all()
class DetailView(generic.DetailView):
model = Request
template_name = 'dashboard/detail.html'
class RequestCreate(CreateView):
model = Request
fields = ['request_title', 'request_status', 'request_description', 'allocation_type',
'applications_to_be_used', 'disk_usage_range_per_job', 'document', 'field_of_science',
'keywords', 'max_memory_per_cpu', 'num_cpus_per_job', 'request_reviewed_and_funded_by',
'request_date', 'service_units', 'specific_resource_selection', 'typical_su_per_job']
class RequestUpdate(UpdateView):
model = Request
fields = ['request_title', 'request_status', 'request_description', 'allocation_type',
'applications_to_be_used', 'disk_usage_range_per_job', 'document', 'field_of_science',
'keywords', 'max_memory_per_cpu', 'num_cpus_per_job', 'request_reviewed_and_funded_by',
'request_date', 'service_units', 'specific_resource_selection', 'typical_su_per_job']
class RequestDelete(DeleteView):
model = Request
success_url = reverse_lazy('dashboard:index')
class UserFormView(View):
form_class = UserForm
template_name = 'dashboard/registration_form.html'
# Display a blank form
def get(self, request):
form = self.form_class(None)
return render(request, self.template_name, {'form': form})
# process form data
def post(self, request):
form = self.form_class(request.POST)
if form.is_valid():
user = form.save(commit=False)
# cleaned (normalized) data
username = form.cleaned_data['username']
password = form.cleaned_data['password']
user.set_password(password)
user.save()
# returns user objects if credentials are correct
user = authenticate(username=username, password=password)
if user is not None:
if user.is_active:
login(request, user)
return redirect('dashboard:index')
return render(request, self.template_name, {'form': form})