evorepo/isotests/views.py

67 lines
2.5 KiB
Python
Raw Normal View History

from django.http import HttpResponse, HttpResponseRedirect
from django.forms import ModelForm, RadioSelect, CheckboxSelectMultiple
from django.forms import ModelChoiceField
from isotests.models import Iso, Architecture, IsoType, BootType
from isotests.models import HardwareType, InstallType, Source, Test
from isotests.models import ClockChoice, Filesystem, Module, Bootloader
from django.template import Context, loader
from django.views.generic.simple import direct_to_template
class TestForm(ModelForm):
class Meta:
model = Test
widgets = {
"architecture": RadioSelect(),
"iso_type": RadioSelect(),
"boot_type": RadioSelect(),
"hardware_type": RadioSelect(),
"install_type": RadioSelect(),
"source": RadioSelect(),
"clock_choice": RadioSelect(),
"filesystem": RadioSelect(),
"rollback_filesystem": RadioSelect(),
"bootloader": RadioSelect(),
"modules": CheckboxSelectMultiple(),
"rollback_modules": CheckboxSelectMultiple(),
}
iso = ModelChoiceField(queryset=Iso.objects.filter(active=True))
def add_result(request):
if request.method == 'POST':
form = TestForm(request.POST)
if form.is_valid():
form.save()
return HttpResponseRedirect('/isotests')
else:
form = TestForm()
context = {'form': form}
return direct_to_template(request, 'isotests/add.html', context)
def view_results(request):
architecture_list = Architecture.objects.all()
iso_type_list = IsoType.objects.all()
boot_type_list = BootType.objects.all()
hardware_type_list = HardwareType.objects.all()
install_type_list = InstallType.objects.all()
source_list = Source.objects.all()
clock_choice_list = ClockChoice.objects.all()
module_list = Module.objects.all()
filesystem_list = Filesystem.objects.all()
bootloader_list = Bootloader.objects.all()
t = loader.get_template("isotests/results.html")
c = Context({
'architecture_list': architecture_list,
'iso_type_list': iso_type_list,
'boot_type_list': boot_type_list,
'hardware_type_list': hardware_type_list,
'install_type_list': install_type_list,
'source_list': source_list,
'clock_choices_list': clock_choice_list,
'filesystem_list': filesystem_list,
'module_list': module_list,
'bootloader_list': bootloader_list,
})
return HttpResponse(t.render(c))