-# -*- coding:utf-8 -*-
-# Create your views here.
-
-# Several import from the django facilities
-from django.template import RequestContext
-from django.shortcuts import render, get_object_or_404, render_to_response, redirect
-from django.template import RequestContext
-from django.core.urlresolvers import reverse
-from django.core.files import File
-
-# Import of the forms and models
-from forge.models import *
-from forge.forms import *
-
-# Import of the task and TaskState (used to link task in the database)
-from forge.tasks import *
-from djcelery.models import TaskState
-
-# Import the settings
-from django.conf import settings
-
-import os
-
-# Import class used to create the environment
-from forge.script.request import TransformRawXml
-
-from myslice.theme import ThemeView
-from unfold.loginrequired import FreeAccessView
-
-class CreateCourseViev (FreeAccessView, ThemeView):
- template_name = 'create-course.html'
-
- def get (self, request, slicename, state=None):
- username = self.request.user
- split_slicename = slicename.split('.')
- ple_slicename = split_slicename[0] + '8' + split_slicename[1] + '_' + split_slicename[2]
- if not Course.objects.get(sliceName = ple_slicename).exists():
- if request.method == 'POST':
- form = courseForm(request.POST)
- if form.is_valid():
- result = taskCreateCourse.delay(form)
- else:
- labs = Lab.objects.all()
- form = courseForm()
- return render_to_response(self.template, { 'theme' : self.theme,'slicename':slicename, 'ple_slicename':ple_slicename, 'username':username, 'form': form }, context_instance=RequestContext(request))
-
-def mainView(request):
- return render(request, 'mainView.html', locals())
-
-
-def createLab(request):
- if request.method == 'POST':
- form = LabForm(request.POST, request.FILES)
- if form.is_valid():
- newLab = Lab(
- title = form['title'].value(),
- author = form['author'].value(),
- subject = request.FILES['subject'],
- configurationFile = request.FILES['configurationFile'],
- linkFile = request.FILES['linkFile'],
- )
- newLab.save()
- else:
- form = LabForm()
- labs = Lab.objects.all()
- return render_to_response('createLab.html', {'labs': labs, 'form':form}, context_instance=RequestContext(request))
-
-def labDetails(request, id):
- try:
- lab = Lab.objects.get(id=id)
- except Lab.DoesNotExist:
- raise Http404
- return render(request, 'labDetails.html', locals())
-
-def deleteLab(request, id):
- try:
- lab = Lab.objects.get(id=id)
- except Lab.DoesNotExist:
- raise Http404
- lab.delete()
- return redirect('forge.views.createLab')
-
-def createCourse(request):
- if request.method == 'POST':
- form = courseForm(request.POST)
- if form.is_valid():
- result = taskCreateCourse.delay(form)
- else:
- labs = Lab.objects.all()
- form = courseForm()
- return render(request, 'createCourse.html', locals())
-
-def installEnvironment(request, id):
- task = taskInstallEnvironment.delay(Environment.objects.get(id=id))
- return redirect('forge.views.listCourse')
-
-def renewSlice(request, id):
- task = taskRenewSlice.delay(Course.objects.get(id=id))
- return redirect('forge.views.listCourse')
-
-def deleteCourse(request, id):
- task = taskDeleteCourse.delay(Course.objects.get(id=id))
- return redirect('forge.views.listCourse')
-
-def listCourse(request):
- courses = Course.objects.all()
- environments = Environment.objects.all()
- slices = Slice.objects.all()
- hosts = Host.objects.all()
- services = Service.objects.all()
- renderCourses = []
- for course in courses:
- renderEnvironment = []
- if course.ready:
- for environment in course.environment_set.all():
- renderSlice = []
- for pleSlice in environment.slice_set.all():
- renderHost = []
- for host in pleSlice.host_set.all():
- renderService = []
- for service in host.service_set.all():
- renderService.append(service)
- renderInterface = []
- for interface in host.interface_set.all():
- renderInterface.append(interface)
- renderHost.append([host, renderService, renderInterface])
- renderSlice.append([pleSlice, renderHost])
- renderEnvironment.append([environment, renderSlice])
- renderCourses.append([course, renderEnvironment])
-
-
- return render(request, 'listCourse.html', {'courses': renderCourses})